Detección de objetos
Introducción
Robobo puede detectar caras mediante el procesado de la imagen de la cámara.
Este módulo no está implementado en el simulador.
Elementos de programación
1. Clase DetectedObject
Representa un objeto detectado por Robobo.
Atributos:
-
-
-
- x (int): La coordenada X del centro del bounding box del objeto, medida en píxeles desde el lado izquierdo de la pantalla. Es un valor positivo.
- y (int): La coordenada Y del centro del bounding box del objeto, medida en píxeles desde el lado superior de la pantall
-
-
2. Método startObjectRecognition()
| startObjectRecognition() |
|
Habilita el reconocimiento de objetos.
El reconocimiento de objetos está deshabilitado por defecto. Este cambio es persistente. |
3. Método stopObjectRecognition()
| startObjectRecognition() |
|
Habilita el reconocimiento de objetos.
El reconocimiento de objetos está deshabilitado por defecto. Este cambio es persistente. |
4. Método readDetectedObject()
| readDetectedObject() |
|
Lee el último objeto detectado por Robobo.
Devuelve: |
5. Método whenAnObjectIsDetected
| whenAnObjectIsDetected(callback) |
|
Establece la función callback que se llama cuando se detecta un objeto.
Parámetros: |
Ejemplo de Uso
El siguiente programa hace que Robobo active la detección de objetos haciendo uso del método startObjectRecognition y coloque el motor TILT en una posición adecuada para ver lo que hay en el entorno. Luego, hace que Robobo diga en voz alta de forma continuada la etiqueta del objeto detectado y su nivel de confianza. De este modo, informa qué objeto se ha detectado y con qué intervalo de confianza.
from robobopy.Robobo import Robobo
rob = Robobo('localhost')
rob.connect()
rob.startObjectRecognition()
rob.moveTiltTo(85, 30)
def say_object():
obj = rob.readDetectedObject()
if obj.label is not None:
rob.sayText(f'Se ha detectado el objeto {obj.label} con una confianza del {obj.confidence:.2f}')
rob.whenAnObjectIsDetected(say_object)
# el programa se mantiene en ejecución continua
while True:
rob.wait(0.1)