Análisis de vídeo de objetos en el transporte por la tecnología ComBox Noviembre de 2020

Hay una gran cantidad de tareas donde el procesamiento debe realizarse “en el borde”, es decir, junto a la fuente de datos (cámaras). En particular, se refiere a las tareas de análisis de video de objetos, por ejemplo, como parte de proyectos para optimizar la infraestructura de transporte.

Consideremos varias soluciones conjuntas del desarrollador de la innovadora plataforma de videovigilancia basada en la nube Larga VideoServer ГК «Ларга» y ComBox Technology, desarrolladores de sistemas de análisis de vídeo de objetos.

Tareas:

1. Implementación de contadores de pasajeros en autobuses para controlar el número de boletos vendidos y obtener estadísticas de tráfico en la ruta.

2. Control del conductor (detección de tabaquismo y uso de teléfonos móviles).

Condiciones:

1. Ejecución de redes neuronales y análisis “en el borde” para minimizar el tráfico de Internet debido a la inestabilidad y el alto costo de la comunicación.

2. La posibilidad de uso conjunto y separado de varios detectores (escalabilidad).

3. Transferencia de datos para su posterior procesamiento mediante conexión móvil.

Como solución nos decidimos por el AAEON VPC-3350S, ya que este dispositivo tiene las siguientes características que son importantes para nosotros:

Módulo Cat 4 LTE con receptor GPS / Glonass integrado en factor de forma mini-PCIe. Ampliable con Intel MyriadX VPU. Intel HD Graphics 500 integrado, en el que puede utilizar decodificadores y codificadores de hardware para procesar transmisiones de video. Muchos puertos LAN para conexión directa de Cámaras de red sin necesidad de un interruptor Amplio rango de temperatura de funcionamiento (-20 + 70) .AAEON VPC-3350S

Consideremos el primer caso de uso separado de detectores. En el ámbito del coche compartido, ya se prevén sanciones por fumar en los salones de los coches alquilados. La cantidad varía de 5 a 15 mil rublos en Rusia (alrededor de $ 70- $ 200), según la empresa. Al comparar el análisis de video de objetos y los sensores de detección de humo, los sensores no atrapan vapores y otros dispositivos para mezclas de fumar, y tampoco son prácticamente sensibles cuando se abren las ventanas del automóvil. Pero no anula el hecho de la violación y, respectivamente, el castigo legal en forma de multa de acuerdo con el contrato.

Además, varias redes neuronales, como la detección de tabaquismo y la detección del hecho / tiempo de uso de un teléfono móvil, se pueden utilizar secuencialmente en el transporte. Obviamente, dichos sistemas se pueden escalar, por ejemplo, con la integración de la telemática y la conexión a la CAN del vehículo para controlar el uso de móviles solo cuando el vehículo está en movimiento, pero estos ya son detalles de integración.

Un buen ejemplo de lo que detectamos específicamente y lo que obtenemos como resultado:

Demostración en bots de Telegram (entrada – imagen de la cámara del teléfono inteligente o de la galería, salida – probabilidad):

Específicamente, nuestra versión de AAEON VPC-3350S está equipada con un procesador Intel Atom x5 E3940. Si es necesario, puede instalar adicionalmente tarjetas de expansión con Intel MyriadX y transferir el funcionamiento de las redes neuronales a la VPU sin modificaciones significativas, ya que se utiliza el marco Intel OpenVINO.

Considere la tasa de inferencia (FP16) en varios dispositivos, incluidos CPU, iGPU (Intel HD) AAEON VPC-3350, Intel Movidius VPU y soluciones de otros fabricantes:

Así, en la iGPU del procesador Intel Atom x5 E3940 obtenemos 54 FPS, y otros 45 FPS sumando la VPU Intel Movidius. Para la detección de humo, 15 FPS / cámara es suficiente y permite procesar hasta 3 transmisiones en la iGPU. Además de asignar y utilizar recursos para la inferencia, es necesario decodificar el flujo RTSP entrante. Considere las pruebas del decodificador:

Con la carga máxima del procesador y los gráficos, decodificamos 30 transmisiones 720p a 15 FPS, es decir, obtenemos 450 cuadros para 720p. Para 1080p, esto es aproximadamente 150 cuadros.

Considere el kit para usar en vehículos compartidos y los pasos básicos del procesamiento de datos:

1. En los automóviles, las cámaras IP se alimentan a través de Ethernet, PoE (uno para el conductor o dos: conductor y pasajero).

2. Los datos de las cámaras pasan directamente al dispositivo, en nuestro caso AAEON NVR 3350.

3. La computadora decodifica y divide el flujo de video en cuadros.

4. Los fotogramas, con una velocidad de fotogramas ajustada, son procesados ​​por una red neuronal.

5. La red neuronal devuelve la probabilidad de un evento (fumar o tener un teléfono en la mano). Cada imagen pasa a través de estas redes neuronales de manera constante. Si uno de ellos da una probabilidad superior al 50%, entonces la foto y un registro al respecto se fijan en una tabla temporal en la base de datos (en la memoria).

6. Según el número de eventos iterativos, se registra el tiempo de la acción / violación.

7. Si el tiempo de acción excede una constante dada (10 segundos), entonces el hecho del evento se registra en la base de datos. El evento incluye la siguiente información:

fecha, marca de tiempo, foto del hecho de la infracción, duración del evento en segundos, identificador del vehículo (GUID estático), número de cámara (0, 1), tipo de evento

8. Cuando 3G / LTE está disponible, los datos del evento se transmiten a un servidor de procesamiento de datos central con la integración del sistema de información para las operaciones de facturación.

Regresemos al segundo caso de uso de AAEON VPC-3350S: detección y contador de pasajeros en autobuses:

Etapas de trabajo:

1. Trabajo preparatorio (prueba de la cámara, selección de la distancia focal, establecimiento de las condiciones limitantes del problema):

1.1. Marcado de 600 fotogramas de varias cámaras con diferentes distancias focales

1.2. Entrenamiento de redes neuronales en nVidia GPU, 10 mil pasos

1.3. Probar el modelo usando el conjunto de datos de validación

1.4. Conversión de modelo a Intel OpenVINO

1.5. Probar el modelo resultante en Intel OpenVINO mediante un conjunto de datos de validación, comparando la calidad y la velocidad con el modelo antes de la conversión

1.6. Realización de un informe resumen sobre la velocidad del modelo y parámetros de calidad, compilación de un equipo necesario para el desempeño (cámaras, CPU, VPU)

2. Creación de una arquitectura de solución (análisis perimetral + centralizado en DC)

3. Marcando el contenido, 20 mil cuadros

4. Entrenamiento de redes neuronales en nVidia GPU

5. Conversión del modelo a OpenVINO

6.Desarrollo de un algoritmo de análisis de trayectoria para seleccionar eventos únicos

7. Desarrollo de software para contar y proporcionar acceso a eventos a través de la API REST.

7.1. Recibir y dividir transmisiones en cuadros con divisor de velocidad de cuadros usando gstreamer / ffserver.

7.2. Interfaz portátil para configurar cámaras conectadas (zona, direccionamiento, lista de fuentes, parámetros de transmisión en el centro de datos)

7.3. Almacenamiento de eventos en mongoDB / PostgreSQL

7.4. API REST para integración

8. Adaptación de la solución a la base de hardware para inferencia en el centro de datos y "en el borde"

El proceso de formación en sí:

Entrenamiento de redes neuronales Mobilenet v.2 para la detección de pasajeros en vehículos por cabeza La interfaz de Larga de las cuentas personales del cliente con la visualización de informes de flujo de pasajeros

Algoritmo de operación de contador:

1. División de la transmisión RTSP en cuadros

2. Detección de cabeza en cada cuadro

3. Análisis de trayectoria (captura de la cabeza en el marco cuando se mueve)

4. Análisis de la dirección del movimiento basado en la secuencia de intersección de 3 zonas premarcadas

5. Registro de eventos en la base de datos local considerando la dirección del movimiento (entrada / salida)

6. Proporcionar acceso API REST a sistemas de información y sistemas de informes de terceros

Dado que inicialmente se envió una solución híbrida para la inferencia de redes neuronales (borde y procesamiento de datos en el DC), consideremos los pros y los contras de ambos enfoques:

Por lo tanto, tenemos un costo principal mínimo por flujo en DC si el procesamiento de datos centralizado, pero altos requisitos para canales de comunicación rápidos y de alta calidad. Para soluciones “Edge”: mayor costo principal, pero requisitos mínimos para los canales de comunicación y sin requisitos para su reserva.