No decorrer das nossas atividades, enfrentamos diariamente o problema de determinar prioridades de desenvolvimento. Considerando a alta dinâmica de desenvolvimento da indústria de TI, a demanda cada vez maior por parte das empresas e do governo por novas tecnologias, cada vez que determinamos o vetor de desenvolvimento e investimos nossas próprias forças e recursos no potencial científico de nossa empresa, garantimos que todas as nossas pesquisas e projetos são de natureza fundamental e interdisciplinar.
Portanto, ao desenvolver nossa principal tecnologia - o framework de reconhecimento de dados HIEROGLYPH, nos preocupamos tanto em melhorar a qualidade do reconhecimento de documentos (nossa principal linha de negócios) quanto na possibilidade de utilizar a tecnologia para resolver problemas de reconhecimento relacionados. No artigo de hoje contaremos como, com base em nosso mecanismo de reconhecimento (documentos), fizemos o reconhecimento de objetos maiores e estrategicamente importantes em um stream de vídeo.
Formulação do problema
Utilizando os desenvolvimentos existentes, construir um sistema de reconhecimento de tanques que permita classificar um objeto, bem como determinar indicadores geométricos básicos (orientação e distância) em condições mal controladas sem a utilização de equipamentos especializados.
Solução
Escolhemos a abordagem estatística de aprendizado de máquina como algoritmo principal para resolver o problema. Mas um dos principais problemas do aprendizado de máquina é a necessidade de ter uma quantidade suficiente de dados de treinamento. Obviamente, imagens naturais obtidas de cenas reais contendo os objetos de que necessitamos não estão disponíveis para nós. Portanto, optou-se por recorrer à geração dos dados necessários ao treinamento, felizmente
Os objetos alvo foram 4 modelos de tanques de batalha: T-90 (Rússia), M1A2 Abrams (EUA), T-14 (Rússia), Merkava III (Israel). Os objetos foram localizados em diferentes posições do polígono, expandindo assim a lista de ângulos visíveis aceitáveis do objeto. Barreiras de engenharia, árvores, arbustos e outros elementos paisagísticos desempenharam um papel significativo.
Assim, em alguns dias coletamos um conjunto suficiente para treinamento e posterior avaliação da qualidade do algoritmo (várias dezenas de milhares de imagens).
Eles decidiram dividir o reconhecimento em duas partes: localização de objetos e classificação de objetos. A localização foi realizada usando um classificador treinado de Viola e Jones (afinal, um tanque é um objeto rígido normal, não pior que um rosto, então o método “cego aos detalhes” de Viola e Jones localiza rapidamente o objeto alvo). Mas confiamos a classificação e determinação do ângulo a uma rede neural convolucional - nesta tarefa é importante para nós que o detector identifique com sucesso aquelas características que, digamos, distinguem o T-90 do Merkava. Como resultado, foi possível construir uma composição eficaz de algoritmos que resolve com sucesso o problema de localização e classificação de objetos do mesmo tipo.
Em seguida, lançamos o programa resultante em todas as nossas plataformas existentes (Intel, ARM, Elbrus, Baikal, KOMDIV), otimizamos algoritmos computacionalmente difíceis para aumentar o desempenho (já escrevemos sobre isso várias vezes em nossos artigos, por exemplo aqui
Como resultado de todas as ações descritas, obtivemos um produto de software completo com características táticas e técnicas significativas.
Leitor de tanque inteligente
Assim, apresentamos a vocês nosso novo desenvolvimento - um programa para reconhecimento de imagens de tanques em um stream de vídeo Leitor de tanque inteligente, qual:
- Resolve o problema “amigo ou inimigo” para um determinado conjunto de objetos em tempo real;
- Determina parâmetros geométricos (distância ao objeto, orientação preferencial do objeto);
- Funciona em condições climáticas não controladas, bem como em caso de bloqueio parcial do objeto por objetos estranhos;
- Operação totalmente autônoma no dispositivo alvo, inclusive na ausência de comunicação por rádio;
- Lista de arquiteturas de processador suportadas: Elbrus, Baikal, KOMDIV, bem como x86, x86_64, ARM;
- Lista de sistemas operacionais suportados: Elbrus OS, AstraLinux OS, Atlix OS, bem como MS Windows, macOS, várias distribuições Linux com suporte para gcc 4.8, Android, iOS;
- Desenvolvimento totalmente doméstico.
Normalmente, na conclusão de nossos artigos sobre Habré, disponibilizamos um link para o marketplace, onde qualquer pessoa que utilize seu celular pode baixar uma versão demo do aplicativo para realmente avaliar o desempenho da tecnologia. Desta vez, tendo em conta as especificidades da aplicação resultante, desejamos que todos os nossos leitores nunca na vida enfrentem o problema de determinar rapidamente se um tanque pertence a um determinado lado.
Fonte: habr.com