Skip to main content

Seguimiento de objetos con reTerminal y cámara Pi usando OpenCV

Introducción

El seguimiento de objetos (Object tracking) consiste en ubicar de forma coherente un objeto específico a través de fotogramas consecutivos en un video. En el ámbito de los rastreadores de objeto único (single object trackers), el primer fotograma sirve como referencia, marcando el objeto de interés con un rectángulo delimitador (bounding box). Posteriormente, los fotogramas siguientes utilizan algoritmos de seguimiento para seguir y trazar el movimiento del objeto. Por lo general, estos rastreadores se utilizan junto con detectores de objetos en aplicaciones del mundo real, combinando las fortalezas de ambas tecnologías para lograr mayor precisión y eficiencia.

Comenzando

Antes de iniciar este proyecto, podría ser necesario preparar tu hardware y software como se describe a continuación.

Preparación de Hardware

Preparación de Software

Recomendamos instalar la versión Bullseye o Bookworm del sistema operativo Raspberry Pi de 64 bits desde su sitio web oficial. Si prefieres instalar un nuevo sistema operativo Raspbian, sigue los pasos descritos en esta guía.

note

Recomendamos encarecidamente revisar nuestro tutorial anterior sobre Introducción a OpenCV, ya que este tutorial es una continuación de nuestra serie.

Seguimiento vs. Detección

En wikis anteriores, cubrimos la detección de rostros y la detección de color, pero notamos su naturaleza intermitente. Aquí tienes una comparación rápida:

  1. Ventaja de Velocidad: El seguimiento (tracking) es más rápido que la detección. Al aprovechar los datos del fotograma anterior, los algoritmos de seguimiento predicen las ubicaciones del objeto. Por su parte, los algoritmos de detección a menudo comienzan desde cero en cada fotograma.
  2. Manejo de Fallos: Si un detector de rostros falla debido a oclusión, los algoritmos de seguimiento ofrecen ventajas. Pueden gestionar obstrucciones parciales y brindar un rendimiento sólido cuando la detección no es suficiente.
  3. Persistencia de Identidad: La detección de objetos proporciona únicamente rectángulos de los objetos detectados pero carece de persistencia de identidad. El seguimiento sobresale al mantener una identidad de objeto consistente en los fotogramas, algo crucial en muchas aplicaciones del mundo real.

¿Cuáles son los algoritmos en el ámbito del seguimiento?

A continuación, algunos de los algoritmos más importantes de seguimiento de objetos, con sus pros y contras:

BOOSTING

  • Pros: Sencillo y en tiempo real. Buen rendimiento con movimiento uniforme.
  • Contras: Dificultades con movimientos complejos y oclusiones.
  • Velocidad: Rápida.
  • Precisión: Moderada.

MIL (Multiple Instance Learning)

  • Pros: Eficaz ante oclusiones y cambios en la apariencia del objeto.
  • Contras: Puede ser sensible al ruido y al desorden del fondo.
  • Velocidad: Moderada.
  • Precisión: Buena.

KCF (Kernelized Correlation Filter)

  • Pros: Alto rendimiento en velocidad. Resistente ante variaciones de escala.
  • Contras: Sensible a escenarios fuera de visión (out-of-view).
  • Velocidad: Rápida.
  • Precisión: De Moderada a Alta.

TLD (Tracking, Learning, and Detection)

  • Pros: Se autoactualiza y puede redetectar objetos perdidos.
  • Contras: Propenso a errores de deriva (drift) y dificultades con movimiento rápido.
  • Velocidad: Moderada.
  • Precisión: Moderada.

MEDIANFLOW

  • Pros: Robusto ante cambios bruscos de movimiento y oclusiones.
  • Contras: Puede tener problemas con cambios significativos en la apariencia del objeto.
  • Velocidad: Rápida.
  • Precisión: Moderada.

MOSSE (Minimum Output Sum of Squared Error)

  • Pros: Extremadamente rápido y adecuado para aplicaciones en tiempo real.
  • Contras: Robusteza limitada en condiciones desafiantes.
  • Velocidad: Muy rápida.
  • Precisión: Moderada.

CSRT (Channel and Spatial Reliability Tracker)

  • Pros: Alta precisión y robustez incluso en escenarios complejos.
  • Contras: Más costoso computacionalmente.
  • Velocidad: Moderada.
  • Precisión: Alta.

Ejecutar el código

Asegúrate de estar en la carpeta correcta. Si no:

cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam

Luego, o si lo prefieres, puedes usar Thonny IDE para ejecutar el script de Python:

python Tracking.py

El script de Python anterior está diseñado para rastrear rostros. El siguiente fragmento de código maneja el escenario en el que el seguimiento falla, haciendo que el sistema inicie un nuevo proceso de detección y viceversa.

python DetectandTrack.py

Soporte técnico

¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ponemos a tu disposición varios canales de comunicación para adaptarnos a tus preferencias y necesidades.

Loading Comments...