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

Hay una gran cantidad de tareas en las que el procesamiento y procesamiento de contenido debe realizarse "en el borde", es decir, en las inmediaciones de la fuente de datos (cámaras). En particular, esto también se aplica a las tareas de análisis de video de objetos, por ejemplo, en el marco de proyectos para optimizar la infraestructura de transporte.

Consideremos varias soluciones conjuntas del integrador ruso Larga Group y los desarrolladores de sistemas de análisis de video de objetos, ComBox Technology.

Una tarea:

Implementación de contadores de pasajeros en autobuses para controlar el número de boletos vendidos y obtener estadísticas de congestión del tráfico en el contexto de la ruta Control de las acciones del conductor (detección de tabaquismo y uso de teléfonos móviles).

Condiciones:

Inferencia de redes neuronales y ejecución de analíticas "en el borde" para minimizar el tráfico y debido a la inestabilidad y alto costo de los canales de comunicación. Posibilidad de uso conjunto y separado de varios detectores (escalabilidad). Transmisión de datos para su posterior procesamiento vía canales de comunicación móvil.

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

Módulo LTE integrado; VPU expandible con acelerador Intel MyriadX; Intel HD Graphics 500 integrado que puede usar decodificadores y codificadores de hardware para procesar transmisiones de video; Múltiples puertos LAN para la conexión directa de cámaras de red sin la necesidad de un interruptor; Amplio rango de temperatura de operación ( -20 + 70) .AAEON VPC-3350S

Consideremos el primer caso de aplicación separada de detectores. En el ámbito del coche compartido, ya existen sanciones en forma de multas por fumar en los salones de coches alquilados. El monto de la multa varía de 5 a 15 mil rublos según la empresa. En comparación con el análisis de video de objetos y los sensores de detección de humo, los sensores no detectan vapores y otros dispositivos para mezclas de fumar, y también son prácticamente insensibles cuando las ventanas del automóvil están abiertas. Pero esto no niega el hecho de la violación y, en consecuencia, el castigo legal en forma de multa de acuerdo con el contrato.

Además, se pueden aplicar en cascada (secuencialmente) varias redes neuronales en el transporte, como la detección del tabaquismo y la detección del hecho / tiempo de uso de un teléfono móvil. Está claro que aún más tales sistemas deberían ampliarse, por ejemplo, con la integración de la telemática y la conexión al bus CAN del automóvil para rastrear el uso de teléfonos solo cuando el vehículo está en movimiento, pero estos ya son detalles de integración.

Un ejemplo ilustrativo de lo que detectamos exactamente y lo que obtenemos como resultado:

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

Específicamente, nuestra versión del 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 la inferencia de redes neuronales a la VPU sin modificaciones significativas, ya que se utiliza el marco Intel OpenVINO.

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

Velocidad de inferencia (FP16) en varios dispositivos, incluidos CPU, iGPU (Intel HD) AAEON VPC-3350, VPU Intel Movidius y soluciones de terceros

Por lo tanto, en los gráficos iGPU del procesador Intel Atom x5 E3940, obtenemos 54 FPS, y complementando el dispositivo Intel Movidius VPU, otros 45 FPS. Para detectar el tabaquismo, 15 FPS / cámara es suficiente, lo que permitirá procesar hasta 3 hilos en un gráfico de procesador. También debe tenerse en cuenta que además de asignar y utilizar recursos para la inferencia, es necesario decodificar el flujo RTSP entrante. Considere las pruebas del decodificador:

Prueba del decodificador AAEON VPC 3350

Con la carga máxima de CPU y gráficos, decodificamos 30 secuencias de 720p a 15 FPS, es decir, obtenemos 450 cuadros para 720p. Para 1080p, son unos 150 fotogramas.

Consideremos la composición del kit para su uso en vehículos compartidos y los pasos principales del procesamiento de datos:

El automóvil está equipado con cámaras IP alimentadas por Ethernet, PoE (una para el conductor o dos: conductor, pasajero). Los datos de las cámaras se envían directamente a la computadora, en este caso AAEON NVR 3350. La computadora realiza la decodificación y el corte de la transmisión de video en cuadros. con un divisor dado de la velocidad de fotogramas son procesados ​​por una red neuronal 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 forma secuencial. Si uno de ellos dio una probabilidad más alta, condicionalmente, 50%, entonces la foto y un registro sobre esto se registran en una tabla temporal en la base de datos (en la memoria). Según el número de eventos recurrentes, se registra el tiempo de acción / violación. Si el tiempo de acción excede una constante dada (10 segundos), el hecho del evento se registra en la base de datos. El evento incluye la siguiente información: fecha, hora, foto 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

Además, los datos sobre eventos sobre la disponibilidad de 3G / LTE se transmiten al servidor de procesamiento de datos central con integración con el sistema de información existente de uso compartido de automóviles para operaciones de facturación.

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

Trabajo preparatorio (probar cámaras, elegir una distancia focal, establecer las condiciones de límite del problema):

Marcado de 600 fotogramas de varias cámaras con diferentes distancias focales Entrenamiento de una red neuronal en nVidia GPU, 10 mil pasos Probar un modelo usando un conjunto de datos de validación Conversión de un modelo a Intel OpenVINO Probar el modelo resultante en Intel OpenVINO usando un conjunto de datos de validación, comparando calidad y velocidad con un modelo antes de la conversión Generación de un informe de modelo consolidado sobre el rendimiento y parámetros de calidad, coordinación de los equipos necesarios para la ejecución (cámaras, CPU, VPU)

Etapas del trabajo realizado:

Construyendo una arquitectura de solución (edge ​​+ analítica centralizada en DC) Marcado de contenido, 20 mil cuadros Entrenamiento de una red neuronal en nVidia GPU Conversión de un modelo a OpenVINO Desarrollo de un algoritmo de análisis de trayectoria para resaltar eventos únicos Desarrollo de software para contar y descargar eventos: Recibir y cortar flujos en cuadros teniendo en cuenta un divisor velocidad de fotogramas usando gstreamer / ffserver Interfaz personalizable para configurar cámaras conectadas (zona, direccionamiento, lista de fuentes, parámetros de transmisión a DC) Almacenamiento de eventos en mongoDB / PostgreSQL REST API para integración

Siguiente: adaptación de la solución a la base de hardware para inferencia en el centro de datos y "en el borde"

Directamente, el proceso de aprendizaje:

La interfaz de la cuenta personal del Grupo Larga para clientes con visualización de informes sobre el tráfico de pasajeros:

La interfaz de la cuenta personal del Grupo Larga para clientes con visualización de informes sobre el tráfico de pasajeros Cuenta personal para clientes con visualización de informes sobre el tráfico de pasajeros El proceso de detección de personas en el área de entrada de autobuses y marcado de zonas

Algoritmo de operación de contador:

Corte del flujo RTSP en cuadros Detección de cabeza en cada cuadro Análisis de trayectoria (manteniendo la cabeza en el cuadro mientras se mueve) Análisis de la dirección del movimiento basado en la secuencia de intersección de 3 zonas premarcadas Grabación de eventos en una base de datos local teniendo en cuenta la dirección del movimiento (entrada / salida) Proporcionar acceso vía REST API a sistemas de información y sistemas de informes de terceros

Dado que originalmente se asumió una solución híbrida para la inferencia de redes neuronales (borde y procesamiento de parte de los datos en el centro de datos), consideraremos los pros y los contras de ambos enfoques:

De esta forma, obtenemos el costo mínimo del flujo en el centro de datos con procesamiento centralizado, pero altos requisitos para la disponibilidad de canales de comunicación rápidos y de alta calidad. Para soluciones de borde: un costo más alto, pero requisitos mínimos para los canales de comunicación y sin requisitos para su reserva.