Sensor de visión con IA#

Introducción#

El sensor de visión con IA puede detectar y rastrear objetos, colores y AprilTags. Esto permite al robot analizar su entorno, seguir objetos y reaccionar en función de los datos visuales detectados.

A continuación se muestra una lista de los bloques disponibles:

Acciones: Capturar datos del sensor de visión de IA para una firma seleccionada.

  • tomar instantánea – Captura datos para un tipo de objeto específico, como colores, objetos preentrenados o AprilTags.

Ajustes: elige con qué objeto interactuar.

Valores: Acceda y utilice los datos capturados.

Comportamiento#

tomar una instantánea#

El bloque tomar instantánea filtra los datos del fotograma del sensor de visión artificial. El sensor de visión artificial puede detectar firmas que incluyen objetos preentrenados, AprilTags o colores y códigos de color configurados.

Los colores y los códigos de color deben configurarse primero en la utilidad AI Vision antes de poder utilizarlos con este bloque.

El conjunto de datos almacena objetos ordenados de mayor a menor ancho, comenzando en el índice 0. Se puede acceder a las propiedades de cada objeto mediante el bloque Propiedad del objeto AI Vision. Se devuelve un conjunto de datos vacío si no se detectan objetos coincidentes.

El bloque de pila de instantáneas Take.#
[SELECT_A_SIG v]una instantánea de [AIVision 1 v]

Parámetro

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

firma

Filtra el conjunto de datos para incluir solo los datos de la firma dada. Las firmas disponibles son:

Nota: Para que aparezcan las opciones de AprilTag o Clasificación por IA, su detección debe estar habilitada en la Utilidad de Visión por IA.

Ejemplo

cuando empezó
[Drive forward if an AprilTag is detected.]
para siempre
[AprilTags v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVIsion1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶

Clasificaciones de IA#

El sensor de visión con IA puede detectar diferentes objetos según determinadas clasificaciones de IA. Dependiendo del modelo de clasificación de IA seleccionado al configurar el sensor de visión con IA en la ventana Dispositivos, se detectarán diferentes objetos. Los modelos disponibles actualmente son:

Objetos del aula

  • Bola azul

  • Bola verde

  • Bola Roja

  • Anillo Azul

  • Anillo Verde

  • Anillo rojo

  • BlueCube

  • GreenCube

  • RedCube

V5RC Empuje hacia atrás

  • Bloque Azul

  • Bloque rojo

V5RC: Grandes apuestas

  • Objetivo móvil

  • Anillo rojo

  • Anillo Azul

Firmas de color#

Una firma de color es un color único que el sensor de visión artificial puede reconocer. Estas firmas permiten al sensor detectar y rastrear objetos según su color. Una vez configurada una firma de color, el sensor puede identificar objetos con ese color específico dentro de su campo de visión.

Las firmas de color se utilizan en el bloque tomar instantánea para procesar y detectar objetos de color en tiempo real. Se pueden configurar hasta 7 firmas de color a la vez.

La utilidad de visión artificial muestra un sensor de visión conectado que detecta dos objetos de color. El lado izquierdo muestra una transmisión de cámara en vivo con un cuadro azul a la izquierda y un cuadro rojo a la derecha, cada uno delineado con cuadros blancos. Las etiquetas negras muestran sus respectivos nombres, coordenadas y dimensiones. El lado derecho contiene la configuración de firma de color, con controles deslizantes para el rango de tono y saturación tanto para el cuadro rojo como para el azul. Los botones para agregar colores, congelar el video, copiar y guardar la imagen se encuentran en la parte inferior, junto con un botón de cerrar en la esquina inferior derecha.

Ejemplo

cuando empezó
[Display if any objects matching the RED_BOX signature is detected.]
para siempre
Coloque el cursor en la fila [1] columna [1] en la pantalla
Limpiar la fila [1] de la pantalla
[Change the signature to any configured Color Signature.]
[RED_BOX v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
imprimir [Color detected!] en la pantalla ▶

Códigos de colores#

Un código de color es un patrón estructurado compuesto por entre 2 y 4 firmas de color dispuestas en un orden específico. Estos códigos permiten que el sensor de visión artificial reconozca patrones de color predefinidos.

Los códigos de color son especialmente útiles para identificar objetos complejos, alinearlos con elementos del juego o crear marcadores únicos para la navegación autónoma. Se pueden configurar hasta 8 códigos de color a la vez.

La interfaz de la utilidad de visión artificial muestra un sensor de visión conectado que detecta dos objetos adyacentes: un cuadro azul a la izquierda y un cuadro rojo a la derecha, agrupados en un único cuadro delimitador blanco etiquetado como AzulRojo. La información de detección incluye el ángulo (A:11°), las coordenadas (X:143, Y:103), el ancho (W:233) y la altura (H:108). En el panel derecho, se muestran tres firmas de color: Rojo_Caja, Azul_Caja y AzulRojo, con rangos/_static/img/AiVision/color_code.png tono y saturación ajustables. La firma AzulRojo combina Azul_Caja y Rojo_Caja. Debajo de la transmisión de video se encuentran los botones Congelar video, Copiar imagen, Guardar imagen y Cerrar.

Ejemplo

cuando empezó
[Display if any objects matching the RED_BLUE code is detected.]
para siempre
Coloque el cursor en la fila [1] columna [1] en la pantalla
Limpiar la fila [1] de la pantalla
[Change the signature to any configured Color Code.]
[RED_BLUE v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
imprimir [Code detected!] en la pantalla ▶

Ajustes#

establecer elemento de objeto de Visión por IA#

El bloque establecer elemento de objeto de AI Vision establece qué elemento del conjunto de datos se debe utilizar.

El bloque de pila de elementos del objeto Set AI Vision.#
Establecer el elemento de objeto [AIVision 1 v] en (1)

Parámetros

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

artículo

El número del elemento en el conjunto de datos que se utilizará.

Ejemplo

Una pila de bloques que comienza con un bloque “cuando se inicia”, seguido de un bloque de comentarios que dice “Mostrar el ID de AprilTag detectado más grande”. Dentro de un bucle infinito, un bloque “tomar una instantánea de AI Vision” captura una imagen de AprilTags. Un bloque “si” comprueba si existe un objeto de AI Vision. Si es así, un bloque “establecer elemento de objeto de AI Vision” asigna el recuento de objetos a una variable, y un bloque “imprimir” muestra el ID de la etiqueta del objeto detectado en la pantalla.#
cuando empezó
[Display the largest detected AprilTag ID.]
para siempre
[AprilTags v]una instantánea de [AIVision 1 v]
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
si <¿Existe [AIVision 1 v] objeto?> entonces
Establecer el elemento de objeto [AIVision 1 v] en ([AIVision 1 v]object count)
imprimir ([AIVision 1 v] objeto [ID de etiqueta v]) en la pantalla ▶

Valores#

¿Existe algún objeto de visión artificial?#

El bloque AI Vision object exists devuelve un valor booleano que indica si se ha detectado algún objeto en el conjunto de datos.

  • Verdadero: el conjunto de datos incluye un objeto detectado.

  • Falso: el conjunto de datos no incluye ningún objeto detectado.

El objeto AI Vision existe como bloque booleano.#
<¿Existe [AIVision 1 v] objeto?>

Parámetros

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

Ejemplo

cuando empezó
[Drive forward if an object is detected.]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
unidad [adelante v] para [10] [mm v] ▶

¿Qué es el objeto de Visión por IA?#

El bloque ¿El objeto de AI Vision es? devuelve un valor booleano que indica si un objeto detectado coincide con una clasificación específica.

  • Verdadero: el elemento en el conjunto de datos es el objeto específico.

  • Falso: el elemento en el conjunto de datos no es el objeto específico.

La clasificación de IA de visión artificial es un bloque booleano de objetos.#
<[AIVision1 v] object is [BlueBall v]?>

Parámetro

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

objeto

¿Con qué Clasificación de IA comparar el elemento?

Ejemplo

cuando empezó
[Display if a Blue Cube is detected.]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[AIVision1 v] object is [BlueCube v]?> entonces
imprimir [Cube detected!] en la pantalla ▶
esperar [0.5] segundos

¿El objeto de AI Vision es el ID de AprilTag?#

El bloque ¿El objeto AI Vision es un ID de AprilTag? devuelve un valor booleano que indica si un AprilTag detectado coincide con un ID específico.

  • Cierto: el ID de AprilTag es el número.

  • Falso: el ID de AprilTag no es el número.

La IA Vision detectó que AprilTag es un bloque booleano.#
<[AIVision 1 v] objeto es AprilTag [1]?>

Parámetros

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

Número de etiqueta de abril

El número que se comparará con el número de identificación de AprilTag detectado.

Ejemplo:

cuando empezó
[Report if AprilTag ID 3 is detected.]
para siempre
pantalla clara
Coloque el cursor en la fila [1] columna [1] en la pantalla
[AprilTags v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[AIVision 1 v] objeto es AprilTag [3]?> entonces
imprimir [That is 3!] en la pantalla ▶
demás
imprimir [That isn't 3!] en la pantalla ▶
fin
fin
esperar [0.1] segundos

Recuento de objetos de AI Vision#

El bloque Recuento de objetos de AI Vision devuelve el número de objetos detectados en el conjunto de datos como un número entero.

El bloque de pila de elementos del objeto Set AI Vision.#
([AIVision 1 v] recuento de objetos)

Parámetros

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

Ejemplo

cuando empezó
[Display the total amount of cubes, rings, and balls.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
imprimir ([AIVision 1 v] recuento de objetos) en la pantalla ▶
fin
esperar [0.5] segundos

Propiedad del objeto AI Vision#

Hay nueve propiedades que se incluyen con cada objeto (que se muestra a continuación) almacenadas después de que se utiliza el bloque tomar instantánea.

El bloque de informe de propiedades del objeto AI Vision.#
([AIVision 1 v] objeto [amplitud v])

Algunos valores de propiedad se basan en la posición del objeto detectado en la vista del sensor de visión de IA en el momento en que se utilizó el bloque tomar instantánea. El sensor de visión de IA tiene una resolución de 320 por 240 píxeles.

Parámetro

Descripción

dispositivo

¿Qué sensor de visión artificial utilizar?

propiedad

¿Qué propiedad del objeto detectado utilizar?:

ancho#

El parámetro width devuelve el ancho del objeto detectado en píxeles como un número entero entre 1 y 320.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en ancho.#
([AIVision 1 v] objeto [amplitud v])

Ejemplo

cuando empezó
[Drive towards an object until its width is larger than 100 pixels.]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [amplitud v]) [math_less_than v] [100]> entonces
unidad [adelante v]
demás
deja de conducir
fin

altura#

La función height devuelve la altura del objeto detectado en píxeles como un número entero entre 1 y 240.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en altura.#
([AIVision 1 v] objeto [altura v])

Ejemplo

cuando empezó
[Drive towards an object until its height is larger than 100 pixels.]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [altura v]) [math_less_than v] [100]> entonces
unidad [adelante v]
demás
deja de conducir
fin

centroX#

centerX devuelve la coordenada x del centro del objeto detectado en píxeles como un número entero entre 0 y 320.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en centerX.#
([AIVision 1 v] objeto [centroX v])

Ejemplo

cuando empezó
[Turn slowly until an object is centered in front of the robot.]
establecer la velocidad de giro a [30] [% v]
turno [derecha v]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[140] [math_less_than v] ([AIVision 1 v] objeto [centroX v]) [math_less_than v] [180]> entonces
deja de conducir

centroY#

centerY devuelve la coordenada y del centro del objeto detectado en píxeles como un número entero entre 0 y 240.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en centerY.#
([AIVision 1 v] objeto [centroY v])

Ejemplo

cuando empezó
[Drive towards an object until its center y-coordinate is more than 140 pixels.]
para siempre
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [centroY v]) [math_less_than v] [140]> entonces
unidad [adelante v]
demás
deja de conducir
fin

ángulo#

El parámetro angle devuelve la orientación del código de color o AprilTag detectado como un número entero en grados, de 0 a 359.

El bloque de pila de propiedades del objeto AI Vision con su parámetro establecido en ángulo.#
([AIVision 1 v] objeto [ángulo v])

Ejemplo

cuando empezó
[Slide left or right depending on how the Color Code is rotated.]
para siempre
[RED_BLUE v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <[50] [math_less_than v] ([AIVision 1 v] objeto [ángulo v]) [math_less_than v] [100]> entonces
unidad [derecha v]
de lo contrario si <[270] [math_less_than v] ([AIVision 1 v] objeto [ángulo v]) [math_less_than v] [330]> entonces
unidad [izquierda v]
demás
deja de conducir
fin
demás
deja de conducir

origenX#

originX devuelve la coordenada x de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 320.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en originX.#
([AIVision 1 v] objeto [origenX v])

Ejemplo

cuando empezó
[Display if an object is to the left or the right.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [origenX v]) [math_less_than v] [160]> entonces
imprimir [To the left!] en la pantalla ▶
demás
imprimir [To the right!] en la pantalla ▶
fin
esperar [0.5] segundos

origenY#

originY devuelve la coordenada y de la esquina superior izquierda del cuadro delimitador del objeto detectado en píxeles como un número entero de 0 a 240.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en originY.#
([AIVision 1 v] objeto [origenY v])

Ejemplo

cuando empezó
[Display if an object is close or far from the robot.]
para siempre
Limpiar la fila [1] de la pantalla
Coloque el cursor en la fila [1] columna [1] en la pantalla
[AI Classifications v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [origenY v]) [math_less_than v] [80]> entonces
imprimir [Far!] en la pantalla ▶
demás
imprimir [Close!] en la pantalla ▶
fin
esperar [0.5] segundos

ID de etiqueta#

tagID devuelve el número de identificación de la etiqueta AprilTag detectada como un número entero.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en tagID.#
([AIVision 1 v] objeto [ID de etiqueta v])

Ejemplo

cuando empezó
[Drive forward when AprilTag ID 0 is detected.]
para siempre
[AprilTags v]una instantánea de [AIVision 1 v]
si <¿Existe [AIVision 1 v] objeto?> entonces
si <([AIVision 1 v] objeto [ID de etiqueta v]) [math_equal v] [0]> entonces
unidad [adelante v]
demás
deja de conducir
fin
esperar [0.5] segundos

puntaje#

La puntuación indica el grado de confianza del modelo en la clasificación de IA detectada, expresado como un porcentaje del 70 % al 100 %.

El bloque de la pila de propiedades del objeto AI Vision con su parámetro establecido en tagID.#
([AIVision 1 v] objeto [score v])