Introducción: una cámara inteligente de seguimiento de objetos con giro e inclinación basada en un dispositivo heterogéneo Zynq

El objetivo del proyecto es crear un sistema de visión capaz de rastrear objetos en movimiento con el posicionamiento de una cámara pan-tilt. El proyecto implica la construcción de un soporte de cámara móvil con el uso de servomecanismos disponibles en el mercado. La tarea consistía en mantener el objeto rastreado en el centro del cuadro colocando los servos.

Como plataforma informática se utilizó la placa de evaluación ZYBO, que contiene un dispositivo Zynq SoC heterogéneo.

El seguimiento automático de objetos se utiliza en asuntos relacionados con la seguridad, la vigilancia o en aplicaciones militares.

Se ha preparado un cortometraje para presentar el estado actual del proyecto.

Paso 1: algoritmo de seguimiento

El seguimiento se diferencia de otros algoritmos de procesamiento de imágenes en que es necesario utilizar información de más de un cuadro de video. Esto es particularmente evidente cuando hay pocos objetos similares al rastreado en el marco. Entonces se requiere información sobre la ubicación de los objetos en el pasado para distinguirlos.

Los problemas importantes con el seguimiento de objetos pueden deberse a un cambio de orientación del objetivo y su alta velocidad en comparación con la frecuencia de los fotogramas. En caso de que la cámara se mueva, los errores pueden deberse además a la imagen borrosa.

Algoritmos de seguimiento ejemplares:

  • Seguimiento por detección
  • Cambio medio
  • Filtro de partículas
  • KLT

Los algoritmos mencionados se probaron en MATLAB con el fin de evaluar su efectividad para las secuencias de prueba grabadas. Los algoritmos elegidos (seguimiento por detección, desplazamiento medio) se implementaron en lógica programable. La salida (posición del objeto) se envió con el uso de la interfaz AXI al sistema del procesador.

Paso 2: Construcción del sistema

La solución construida consta de:

  • Cámara
  • Plataforma informática (placa de desarrollo Zybo)
  • Servomecanismos
  • Controlador de servomecanismos (Maestro)
  • Sensores
  • Fuente de alimentación
  • Puntero

ZYBO está conectado con cámara, servocontrolador y sensores de posición. Para cambiar la posición de las cámaras, se debe enviar un comando al controlador, que envía pulsos de duración adecuada a los servos. El controlador también es capaz de proporcionar suficiente corriente a los motores. Para realizar la comunicación entre el controlador y ZYBO, se tuvo que usar un convertidor de nivel lógico.

Los sensores conectados a la placa son:

  • Acelerómetro
  • Magnetómetro
  • Giroscopio

Con el uso de los sensores mencionados anteriormente, es posible medir la posición de la cámara.

El voltaje aplicado a los motores es de 7,2 V. Dicho voltaje se generó con el uso de un reductor, de una fuente de alimentación de 12V. Se utilizó un puntero láser para visualizar el objetivo de las cámaras.

ZYBO se conecta con la PC a través de la interfaz Bluetooth para brindar la posibilidad de cambiar los parámetros de trabajo en línea, sin tener que reconfigurar el dispositivo.

Paso 3: posicionamiento de la cámara

El centro del objeto rastreado se calcula para cada fotograma. A partir de esta señal, se calcula el error de control y se aplica como entrada al regulador implementado en el sistema del procesador. El regulador tiene que calcular una nueva posición para los servomecanismos. Finalmente, esta posición se envía al controlador.

Para probar el regulador y adquirir los parámetros correctos, se calculó un modelo matemático del sistema. Luego se implementó en Simulink.

En esta etapa del proyecto, aún no se aplicó una retroalimentación de posición del sensor al algoritmo de control. Se decidió que el PID incremental debería utilizarse como regulador. Por lo tanto, se agregó al modelo de Simulink y se probó. En función de las respuestas del modelo, se eligieron los parámetros del regulador:

  • P = 0,4
  • Yo = 0,1
  • D = 0,05

Los parámetros elegidos proporcionaron estabilidad y posicionamiento rápido del sistema.

Paso 4: Implementación

En el archivo .zip adjunto se pueden encontrar 2 proyectos de Vivado (versión 2016.3). El primer proyecto (magisterio) contiene un sistema con seguimiento basado en la detección (utilizando el color de los objetos). El segundo proyecto (magisterium_meanshift) contiene un sistema con algoritmo de cambio medio. Para reproducir el proyecto descrito:

  1. Conecte ZYBO a su computadora.
  2. Conecte ZYBOs MIO de 15 pines y tierra a los controladores rx pin y tierra.
  3. Conecte los servomecanismos al controlador (panorámica al canal 11 e inclinación al canal 12).
  4. Ejecute Xilinx SDK (versión preferida 2016.3).
  5. Ejecute el terminal de comunicación en serie y conéctelo al puerto Zynq.
  6. Programa Lógica Programable (número 1 en la imagen incluida).
  7. Sistema de procesador de programas (número 2 en la imagen incluida).
  8. Si el programa se cargó correctamente, aparecerá un mensaje: “¡El programa se ejecutó correctamente!”.
  9. Envíe los comandos apropiados a través de la interfaz UART a Zynq.

Lista de comandos:

  • Cambio de posiciones de los servomecanismos – 0x00 0xHH 0xLL 0xHH 0xLL
  • Cambio de la velocidad angular máxima – 0x01 0xHH 0xLL 0xHH 0xLL
  • Cambio de par máximo – 0x02 0xHH 0xLL 0xHH 0xLL
  • Inicio del trabajo autónomo (seguimiento) – 0x04 0x– 0x– 0x– 0x–

El primer byte determina el tipo de comando y los 4 siguientes son datos para este comando. Los 2 primeros bytes de datos son para el servo de panorámica y los dos bytes siguientes para el servo de inclinación.

También es posible investigar diseños de bloques utilizados en proyectos. Para hacer esto, ejecute proyectos adjuntos en Vivado y abra el diagrama de bloques. En el diagrama, se pueden cambiar los parámetros de los colores detectados en el seguimiento mediante el algoritmo de detección. Para cambiarlos, haga doble clic en el bloque marcado en la imagen incluida con el diagrama de bloques. Luego, se puede modificar el rango para cada color en formato RGB. Después de cambiar el rango, es necesario generar bitstream y exportarlo a proyectos SDK.

Archivos adjuntos

Paso 5: evaluación

Se grabó una película corta para presentar el estado actual del proyecto. El sistema con seguimiento por algoritmo de detección se presenta primero y el sistema con algoritmo de desplazamiento medio se presenta al final.

Sé el primero en compartir

    Comentarios