Saltar al contenido principal

Analizando la detección de objetos

Al investigar problemas de detección o seguimiento de objetos, puede ser útil reproducir un vídeo exportado como una "cámara ficticia" temporal. Esto te permite reproducir problemas localmente, iterar sobre la configuración (detecciones, zonas, ajustes de enriquecimiento) y capturar registros y clips para su análisis.

Cuándo usarlo

  • Reproducir un clip exportado para reproducir detecciones incorrectas
  • Probar cambios de configuración (ajustes del modelo, rastreadores, filtros) contra un clip conocido
  • Recopilar registros y grabaciones deterministas para depuración o informes de problemas

Configuración de ejemplo

Coloca el clip que quieres reproducir en una ubicación accesible para SecureVu (por ejemplo /media/securevu/ o la carpeta debug/ del repositorio cuando estés desarrollando). Luego añade una cámara temporal a tu config/config.yml de esta manera:

cameras:
test:
ffmpeg:
inputs:
- path: /media/securevu/car-stopping.mp4
input_args: -re -stream_loop -1 -fflags +genpts
roles:
- detect
detect:
enabled: true
record:
enabled: false
snapshots:
enabled: false
  • -re -stream_loop -1 le indica a ffmpeg que reproduzca el archivo en tiempo real y lo repita indefinidamente, lo cual es útil para sesiones de depuración largas.
  • -fflags +genpts ayuda a generar marcas de tiempo de presentación cuando no están presentes en el archivo.

Pasos

  1. Exporta o copia el clip que quieres reproducir al host de SecureVu (p. ej., /media/securevu/ o debug/clips/). Dependiendo de lo que quieras depurar, a menudo es útil añadir algo de tiempo de "pre-captura" (donde el objeto rastreado aún no es visible) al clip al exportarlo.
  2. Añade la cámara temporal a config/config.yml (ejemplo anterior). Usa un nombre único como test o replay_camera para que sea fácil de eliminar después.
    • Si estás depurando una cámara específica, copia los ajustes de esa cámara (velocidad de fotogramas, ajustes del modelo/enriquecimiento, zonas, etc.) en la cámara temporal para que la reproducción se acerque al entorno original. Deja record y snapshots deshabilitados a menos que estés depurando específicamente el comportamiento de grabación o instantáneas.
  3. Reinicia SecureVu.
  4. Observa la vista de Depuración en la interfaz y los registros mientras se reproduce el clip. Observa las detecciones, zonas o cualquier función que estés depurando, y anota los errores en los registros para reproducir el problema.
  5. Itera en los ajustes de la cámara o de enriquecimiento (modelo, fps, zonas, filtros) y vuelve a verificar la reproducción hasta que el comportamiento se resuelva.
  6. Elimina la cámara temporal de tu configuración después de depurar para evitar telemetría o grabaciones espurias.

Variables a considerar en el seguimiento de objetos

  • El vídeo exportado no siempre coincidirá exactamente con cómo se procesó originalmente en SecureVu (ni siquiera con el último bucle). En la reproducción pueden usarse fotogramas diferentes, lo que puede cambiar las detecciones y el seguimiento.
  • La detección de movimiento depende de los fotogramas utilizados; pequeños desplazamientos de fotogramas pueden cambiar las regiones de movimiento y, por tanto, lo que se envía al detector.
  • La detección de objetos no es determinista: los modelos y el postprocesamiento pueden producir resultados diferentes entre ejecuciones, por lo que es posible que no obtengas detecciones idénticas o los mismos IDs de seguimiento cada vez.

Al depurar, trata la reproducción como una aproximación cercana y no como una reproducción byte a byte. Captura múltiples ejecuciones, habilita la grabación si es útil y examina los registros y los clips de eventos guardados para comprender la variabilidad.

Solución de problemas

  • Sin vídeo: verifica que la ruta sea correcta y accesible desde el proceso/contenedor de SecureVu.
  • Errores de FFmpeg: revisa la salida del registro para ver los flags específicos de FFmpeg y ajusta input_args según corresponda para tu archivo/contenedor. También puede ser necesario deshabilitar la aceleración por hardware (hwaccel_args: "") para la cámara ficticia.
  • Sin detecciones: confirma que los roles de la cámara incluyan detect y que la configuración del modelo/detector esté habilitada.