Funciones avanzadas y seguimiento
Este capítulo describe en detalle las funciones de seguimiento automático del sistema, incluidos el seguimiento de color, el seguimiento facial y el seguimiento de códigos QR, así como el mecanismo de bloqueo de objetivo y el ajuste de parámetros.
Resumen de los modos de seguimiento automático
El sistema admite tres modos de seguimiento automático:
- Seguimiento de color: seguir objetos de un color específico
- Seguimiento facial: seguir rostros
- Seguimiento de códigos QR: seguir códigos QR
Seguimiento de color
Selección de color
El sistema admite el seguimiento de varios colores:
- Rojo
- Verde
- Azul En el programa puedes cambiar de color con las teclas:
X: seleccionar rojoY: seleccionar verdeZ: seleccionar azul
Flujo de uso del seguimiento de color
- Pulsa
Cpara conectar el cardán - Pulsa
2para entrar en el modo de seguimiento de color - Coloca el objeto del color objetivo en el centro de la imagen
- Pulsa
Tpara bloquear el objetivo - Mueve el objetivo y observa el efecto de seguimiento del cardán
Ejemplo simple de seguimiento de color
También puedes usar el programa de ejemplo de seguimiento de color simple:
python examples/04_color_track_simple.py --camera 0 --port COM3 --color redEste programa ofrece la función de seguimiento de color más básica; es ideal para aprender.
Seguimiento facial
Principio del seguimiento facial
El sistema utiliza el clasificador en cascada Haar de OpenCV para la detección de rostros. Tras detectar un rostro, el sistema calcula automáticamente la posición del objetivo y controla el cardán para que lo siga.
Flujo de uso del seguimiento facial
- Pulsa
Cpara conectar el cardán - Pulsa
1para entrar en el modo de seguimiento facial - Coloca el rostro en el centro de la imagen
- Pulsa
Tpara bloquear el objetivo - Mueve el rostro y el cardán lo seguirá automáticamente
Consejos para mejorar la tasa de éxito de la detección de rostros
- Mantén una iluminación suficiente y evita la contraluz
- El rostro debe estar de frente a la cámara
- Mantén una distancia adecuada (se recomienda 1-3 metros)
- Evita escenas con varios rostros, o usa el mecanismo de bloqueo para fijar el objetivo del seguimiento
Seguimiento de códigos QR
El modo de seguimiento de códigos QR utiliza el QRCodeDetector de OpenCV para el reconocimiento y la localización de códigos QR. El uso es similar a los dos modos anteriores:
- Conecta el cardán y entra en el modo de seguimiento de códigos QR
- Coloca el código QR en el centro de la imagen y pulsa
Tpara bloquearlo - Mueve el código QR y observa el efecto de seguimiento del cardán
Mecanismo de bloqueo de objetivo
Función del bloqueo
El mecanismo de bloqueo de objetivo es una función clave del sistema; sus funciones incluyen:
- Registrar la posición central y el tamaño del objetivo en el momento del bloqueo
- Cuando aparecen varios objetivos, priorizar el más cercano al punto de bloqueo
- Evitar saltos frecuentes entre objetivos y mantener la estabilidad del seguimiento
Flujo de bloqueo
- Coloca el objeto objetivo en el centro de la imagen
- Pulsa
Tpara bloquearlo - Una vez bloqueado, el sistema dará prioridad al objetivo más similar al del momento del bloqueo
- Pulsa
Spara cancelar el bloqueo y detener el seguimiento
Lógica de selección al bloquear
Tras el bloqueo, el sistema tiene en cuenta dos factores al seleccionar el objetivo:
- Distancia: lejanía del centro del objetivo respecto al punto de bloqueo (peso 70%)
- Tamaño: similitud del tamaño del objetivo con el del momento del bloqueo (peso 30%)
- El sistema elige para el seguimiento el objetivo con la puntuación global más alta
Ajuste de los parámetros de control del seguimiento
En src/trackers/tracking_controller.py hay los siguientes parámetros ajustables:
| Parámetro | Valor predeterminado | Descripción |
|---|---|---|
| kp_pan | 0.08 | Ganancia proporcional del seguimiento izquierda-derecha |
| kp_tilt | 0.12 | Ganancia proporcional del seguimiento arriba-abajo |
| dead_zone | 30 | Zona muerta (píxeles); dentro de este rango el cardán no se mueve |
| min_move_interval | 0.15 | Intervalo mínimo de movimiento (segundos); limita la frecuencia de movimiento del cardán |
Cómo ajustar los parámetros
- Seguimiento demasiado lento: aumenta
kp_panykp_tilt - Seguimiento demasiado sensible que provoca vibración: reduce
kp_panykp_tilt, aumentamin_move_intervalo aumentadead_zone - Ajustes finos frecuentes que provocan vibración: aumenta
dead_zone - Dirección invertida: cambia el signo de
delta_panodelta_tilten el métodocalculate_move
Ejemplo completo de uso del seguimiento
A continuación se muestra un ejemplo completo del flujo de uso:
- Inicia el programa:
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red- Pulsa
Cpara conectar el cardán - Pulsa
2para seleccionar el modo de seguimiento de color - Coloca el objeto rojo en el centro de la imagen
- Pulsa
Tpara bloquear el objetivo - Mueve el objeto y observa el efecto de seguimiento del cardán
- Si quieres cambiar a verde, pulsa
Yy vuelve a pulsarTpara bloquear - Pulsa
Spara detener el seguimiento yRpara centrar - Pulsa
Qpara salir
Consejos para desarrollo avanzado
Si necesitas personalizar funciones o desarrollar sobre el proyecto, puedes consultar:
src/sc_servo.py: capa de bajo nivel de comunicación del servosrc/gimbal.py: control del cardánsrc/trackers/tracking_controller.py: controlador de seguimientosrc/detectors/: diversos detectores de objetivos

