Programa de detección con IA

El programa de detección consiste en tres partes:

  • Escaneo de los streams de video a analizar (StreamScanner).

  • Filtro de coordenadas para cada dron (CoordinatesFilter).

  • Detección de objetos en los frames de video (Detector).

StreamScanner es el programa principal que se encarga de lanzar los módulos de filtro de coordenadas (CoordinatesFilter) para cada dron, y este es el que lanza el módulo de detección de objetos (Detector) en caso de que el dron se encuentre dentro de una zona de detección.

Nota

Para que el programa de detección funcione correctamente, es necesario que el servidor de streaming janus-testing tenga configurado nginx para servir los archivos sdp y las configuraciones para cada dron. Este programa se ejecuta en el servidor ai-verification.

Advertencia

Como trabajo futuro, se debe de cambiar el módulo de filtro de coordenadas para utilizar WebSockets en lugar de hacer peticiones HTTP a la API de Thingsboard, ya que esto provoca que al lanzar el programa para más de dos drones, este comienza a tener errores por el número de peticiones que se hace a la API.

Para mantener el programa como un servicio, se debe de crear un archivo de configuración en /etc/systemd/system/, actualmente este se encuentra de la siguiente manera en /etc/systemd/system/detection-test.service:

[Unit]
Description=Prueba del script de detección
After=multi-user.target

[Service]
WorkingDirectory=/etc/robox/robox-ai/DetectionHost
ExecStart=/bin/sh -c "/etc/robox/.venv/bin/python StreamScanner.py"
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target