Dans le cadre de nos activités, nous sommes quotidiennement confrontés au problème de la détermination des priorités de développement. Compte tenu de la dynamique élevée du développement de l'industrie informatique, de la demande toujours croissante de la part des entreprises et de l'État pour de nouvelles technologies, chaque fois, déterminant le vecteur de développement et investissant nos propres ressources et ressources dans le potentiel scientifique de notre entreprise, nous nous assurons que toutes nos recherches et projets sont fondamentaux et interdisciplinaire.
Par conséquent, en développant notre technologie principale - le cadre de reconnaissance des données HIEROGLYPH, nous nous soucions à la fois d'améliorer la qualité de la reconnaissance des documents (notre principal secteur d'activité) et de la possibilité d'appliquer la technologie pour résoudre les problèmes de reconnaissance connexes. Dans l'article d'aujourd'hui, nous expliquerons comment, sur la base de notre moteur de reconnaissance (documents), nous avons fait la reconnaissance d'objets plus grands et stratégiquement importants dans le flux vidéo.
Énoncé du problème
En utilisant l'expérience existante, pour construire un système de reconnaissance de réservoir qui permet de classer un objet, ainsi que de déterminer les paramètres géométriques de base (orientation et distance) dans des conditions mal contrôlées sans utiliser d'équipement spécialisé.
Solution
Comme algorithme principal pour résoudre le problème, nous avons choisi l'approche de l'apprentissage automatique statistique. Mais l'un des principaux problèmes de l'apprentissage automatique est la nécessité d'une quantité suffisante de données d'apprentissage. De toute évidence, les images en nature obtenues à partir de scènes réelles contenant les objets dont nous avons besoin nous sont inaccessibles. Par conséquent, il a été décidé de recourir à la génération des données nécessaires à la formation, car nous avons beaucoup d'expérience dans ce lieu . Et pourtant, il ne semblait pas naturel de synthétiser complètement les données pour cette tâche, donc une disposition spéciale a été préparée pour la modélisation de scènes réelles. Divers objets modelant le paysage sont installés sur le tracé: une couverture paysagère caractéristique, des buissons, des arbres, des barrières, etc. Les images ont été capturées à l'aide d'un appareil photo numérique de petit format. Dans le processus de capture d'images, l'arrière-plan de la scène a changé de manière significative pour assurer une plus grande stabilité des algorithmes aux changements d'arrière-plan.

Quatre modèles de chars de bataille ont été utilisés comme cibles: T-90 (Russie), M1A2 Abrams (États-Unis), T-14 (Russie), Merkava III (Israël). Les objets étaient situés à différentes positions du polygone, élargissant ainsi la liste des angles visibles acceptables de l'objet. Un rôle important a été joué par l'ingénierie des barrières, des arbres, des buissons et d'autres éléments du paysage.

Ainsi, en quelques jours, nous avons réuni un ensemble suffisant pour la formation et l'évaluation ultérieure de la qualité de l'algorithme (plusieurs dizaines de milliers d'images).
Ils ont décidé de diviser la reconnaissance directement en deux parties: la localisation des objets et la classification des objets. La localisation a été effectuée à l'aide du classificateur formé Viola et Jones (après tout, un char est un objet rigide normal, pas pire qu'un visage, donc la méthode "aveugle avec détails" Viola et Jones localise rapidement l'objet cible). Mais nous avons confié la classification et la définition de l'angle au réseau de neurones convolutionnels - dans cette tâche, il est important pour nous que le détecteur identifie avec succès les caractéristiques qui, disons, distinguent le T-90 de Merkava. En conséquence, il a été possible de construire une composition efficace d'algorithmes qui résout avec succès le problème de la localisation et de la classification d'objets du même type.

Ensuite, nous avons lancé le programme résultant sur toutes les plates-formes que nous avons (Intel, ARM, Elbrus, Baïkal, COMDIV), optimisé des algorithmes difficiles à calculer pour améliorer les performances (nous avons déjà écrit à ce sujet dans nos articles, par exemple, ici https: // habr .com / ru / company / smartengines / blog / 438948 / ou https://habr.com/en/company/smartengines/blog/351134/ ) et ont atteint un fonctionnement stable du programme sur l'appareil en temps réel.
À la suite de toutes les actions décrites, nous avons obtenu un produit logiciel à part entière qui possède des caractéristiques tactiques et techniques importantes.
Lecteur de réservoir intelligent
Nous vous présentons donc notre nouveau développement - un programme pour reconnaître les images de réservoir dans le flux vidéo Smart Tank Reader , qui:

- Il résout le problème «ami ou ennemi» pour un ensemble d'objets donné en temps réel;
- Définit des indicateurs géométriques (distance à l'objet, orientation préférée de l'objet);
- Il fonctionne dans des conditions météorologiques incontrôlées, ainsi qu'en cas de chevauchement partiel de l'objet par des objets étrangers;
- Fonctionnement entièrement autonome sur l'appareil cible, y compris en l'absence de communications radio;
- Liste des architectures de processeur prises en charge: Elbrus, Baikal, COMDIV, ainsi que x86, x86_64, ARM;
- La liste des systèmes d'exploitation pris en charge: Elbrus OS, AstraLinux OS, Atlix OS, ainsi que MS Windows, macOS, diverses distributions Linux prenant en charge gcc 4.8, Android, iOS;
- Développement entièrement domestique.
Habituellement, en conclusion de nos articles sur Habré, nous donnons un lien vers le marché, où tous ceux qui souhaitent utiliser leur téléphone mobile peuvent télécharger une version de démonstration de l'application afin d'évaluer réellement les performances de la technologie. Cette fois, en tenant compte des spécificités de l'application résultante, nous souhaitons à tous nos lecteurs de ne jamais être confrontés au problème de déterminer rapidement si un réservoir appartient à un certain côté.