Saltearse al contenido

Resumen de detección por IA

ARGUS tiene tres fuentes de detección que convergen en el mismo pipeline de overlay, de modo que a la UI no le importa cuál produjo un determinado cuadro delimitador. Verás las mismas cajas y etiquetas de color sobre el vídeo independientemente de si la fuente fue YOLO en la nube, DJI SEI desde la propia aeronave o el simulador de entrenamiento.

Las tres fuentes

Agente en la nube YOLO11

Un worker argus-agent se une a la sala como participante bot, se suscribe a las pistas de vídeo del drone, ejecuta inferencia YOLO11 a ~30 fps y publica detecciones en el canal de datos de LiveKit como { type: 'detections', participantIdentity, detections[] }. Cada detección lleva left/top/right/bottom (normalizados 0-1), trackingId (BoT-SORT de corto plazo, se reinicia con oclusión), persistentId (re-ID con DINOv2 + FAISS, estable a través de oclusiones — formato p_xxxx) y un mapa de confianzas multi-etiqueta.

DJI SEI (a bordo de la aeronave)

Las aeronaves DJI Dock 3 incrustan detecciones en la carga útil SEI de H.264 mientras transmiten. Nuestro parser en el navegador, dji-sei-parser.ts, elimina los bytes de prevención de emulación, decodifica la longitud SEI multi-byte, identifica el marcador de transporte (0xF5 para WebRTC, 0x65 para el Agora heredado) y devuelve cuadros delimitadores normalizados a 0-1.

Simulador de detección

El PolygonSimService ejecuta simulaciones de trayectoria de drone con salida sintética de detecciones. Se usa para entrenamiento, demos y pruebas E2E de los flujos de watchlist / alertas de copiloto sin aeronaves en vivo.

Cómo convergen

Las tres fluyen hacia DjiAiDetectionsService, que expone:

  • detections$ — stream RxJS del último frame por drone.
  • currentDetections() — snapshot sincrónico para renderizadores de overlay dirigidos por rAF (el overlay del tile de stream del drone usa esto para evitar tearing).
  • El histórico está limitado a 500 frames para que un stream de 30 Hz durante 5 minutos no reviente la heap.

El overlay del tile de stream del drone se suscribe y renderiza cada detección como un cuadro delimitador con etiqueta de clase + chip de confianza. Consulta overlays del tile de stream.

Auto-flagging (la versión honesta)

El auto-flagging dirigido por watchlist (detectar X → soltar flag / disparar alerta) no está actualmente cableado — la infraestructura subyacente existe, pero el listener de copilot_alerts filtra específicamente por type='cas' ahora mismo. El comportamiento más cercano hoy es el agente CAS: la lógica de evitación de colisiones escribe alertas cuando la separación entre aeronaves cae por debajo de los umbrales configurados. Otros auto-flags dirigidos por detección están planificados.

Umbralización

Dos lugares filtran la confianza de detección:

  1. Pestaña de IA por drone en el drawer de ajustes del drone — deslizador 0-1, por defecto 0.3. Las cajas por debajo de este umbral no se renderizan.
  2. Confianza del modelo — el pre-filtro propio YOLO del agente. No expuesto en la UI; se configura en el deployment del agente.

El filtrado por clase (p. ej., “mostrar solo personas”) no está expuesto en la UI. Obtienes cada clase que produce el modelo, coloreada por categoría.

Relacionado