En el proceso de nuestras actividades, diariamente enfrentamos el problema de determinar las prioridades de desarrollo. Dada la alta dinámica del desarrollo de la industria de TI, la demanda cada vez mayor por parte de las empresas y el estado de nuevas tecnologías, cada vez que determina el vector de desarrollo e invierte nuestros propios recursos y recursos en el potencial científico de nuestra empresa, nos aseguramos de que todas nuestras investigaciones y proyectos sean fundamentales. e interdisciplinario.
Por lo tanto, al desarrollar nuestra tecnología principal, el marco de reconocimiento de datos HIEROGLYPH, nos preocupamos tanto por mejorar la calidad del reconocimiento de documentos (nuestra línea principal de negocios) como por la posibilidad de aplicar la tecnología para resolver problemas de reconocimiento relacionados. En el artículo de hoy, diremos cómo, en base a nuestro motor de reconocimiento (documentos), hicimos el reconocimiento de objetos más grandes y estratégicamente importantes en la transmisión de video.
Declaración del problema.
Utilizando la experiencia existente, para construir un sistema de reconocimiento de tanques que permita clasificar un objeto, así como determinar parámetros geométricos básicos (orientación y distancia) en condiciones mal controladas sin el uso de equipos especializados.
Solución
Como el algoritmo principal para resolver el problema, elegimos el enfoque del aprendizaje automático estadístico. Pero uno de los problemas clave del aprendizaje automático es la necesidad de una cantidad suficiente de datos de aprendizaje. Obviamente, las imágenes en especie obtenidas de escenas reales que contienen los objetos que necesitamos son inaccesibles para nosotros. Por lo tanto, se decidió recurrir a generar los datos necesarios para la capacitación, ya que tenemos mucha experiencia en este lugar . Y, sin embargo, no parecía natural sintetizar completamente los datos para esta tarea, por lo que se preparó un diseño especial para modelar escenas reales. En el diseño se instalan varios objetos que modelan el campo: una cubierta de paisaje característica, arbustos, árboles, barreras, etc. Las imágenes fueron capturadas usando una cámara digital de pequeño formato. En el proceso de captura de imágenes, el fondo de la escena cambió significativamente para garantizar una mayor estabilidad de los algoritmos a los cambios en el fondo.

Se utilizaron cuatro modelos de tanques de batalla como objetivos: T-90 (Rusia), M1A2 Abrams (EE. UU.), T-14 (Rusia), Merkava III (Israel). Los objetos se ubicaron en diferentes posiciones del polígono, ampliando así la lista de ángulos visibles aceptables del objeto. Las barreras de ingeniería, los árboles, los arbustos y otros elementos del paisaje desempeñaron un papel importante.

Por lo tanto, en un par de días hemos recopilado un conjunto suficiente para el entrenamiento y la evaluación posterior de la calidad del algoritmo (varias decenas de miles de imágenes).
Decidieron dividir el reconocimiento directamente en dos partes: localización de objetos y clasificación de objetos. La localización se llevó a cabo utilizando el clasificador entrenado Viola y Jones (después de todo, un tanque es un objeto rígido normal, no peor que una cara, por lo tanto, el método "ciego con detalles" Viola y Jones localiza rápidamente el objeto objetivo). Pero confiamos la clasificación y definición del ángulo con la red neuronal convolucional; en esta tarea, es importante para nosotros que el detector identifique con éxito esas características que, por ejemplo, distinguen al T-90 de Merkava. Como resultado, fue posible construir una composición efectiva de algoritmos que resuelva con éxito el problema de localización y clasificación de objetos del mismo tipo.

Luego, lanzamos el programa resultante en todas las plataformas que tenemos (Intel, ARM, Elbrus, Baikal, COMDIV), algoritmos optimizados computacionalmente difíciles para mejorar el rendimiento (ya hemos escrito sobre esto en nuestros artículos, por ejemplo, aquí https: // habr .com / ru / company / smartengines / blog / 438948 / o https://habr.com/en/company/smartengines/blog/351134/ ) y han logrado un funcionamiento estable del programa en el dispositivo en tiempo real.
Como resultado de todas las acciones descritas, hemos obtenido un producto de software completo que tiene características tácticas y técnicas significativas.
Lector inteligente de tanques
Por lo tanto, le presentamos nuestro nuevo desarrollo: un programa para reconocer imágenes de tanques en la transmisión de video de Smart Tank Reader , que:

- Resuelve el problema de "amigo o enemigo" para un conjunto dado de objetos en tiempo real;
- Define indicadores geométricos (distancia al objeto, orientación preferida del objeto);
- Funciona en condiciones climáticas no controladas, así como en el caso de superposición parcial del objeto por objetos extraños;
- Operación totalmente autónoma en el dispositivo de destino, incluso en ausencia de comunicaciones de radio;
- Lista de arquitecturas de procesador compatibles: Elbrus, Baikal, COMDIV, así como x86, x86_64, ARM;
- La lista de sistemas operativos compatibles: Elbrus OS, AstraLinux OS, Atlix OS, así como MS Windows, macOS, varias distribuciones de Linux que admiten gcc 4.8, Android, iOS;
- Desarrollo completamente doméstico.
Por lo general, en conclusión a nuestros artículos sobre Habré, damos un enlace al mercado, donde todos los que quieran usar su teléfono móvil pueden descargar una versión demo de la aplicación para evaluar realmente el rendimiento de la tecnología. Esta vez, teniendo en cuenta los detalles de la aplicación resultante, deseamos que todos nuestros lectores nunca enfrenten el problema de determinar rápidamente si un tanque pertenece a un lado determinado.