Cientista desenvolve um algoritmo de reconhecimento de imagem que funciona 40% mais rápido do que os análogos

Crédito CC0: domínio público

Um cientista da HSE University desenvolveu um algoritmo de reconhecimento de imagem que funciona 40% mais rápido do que os análogos. Ele pode acelerar o processamento em tempo real de sistemas de reconhecimento de imagem baseados em vídeo. Os resultados do estudo foram publicados na revista Information Sciences.

Redes neurais convolucionais (CNNs), que incluem uma sequência de camadas convolucionais, são amplamente utilizadas na visão computacional. Cada camada em uma rede possui uma entrada e uma saída. A descrição digital da imagem vai para a entrada da primeira camada e é convertida em um conjunto diferente de números na saída. O resultado vai para a entrada da próxima camada e assim por diante até que o rótulo da classe do objeto na imagem seja previsto na última camada. Por exemplo, esta classe pode ser uma pessoa, um gato ou uma cadeira. Para isso, um CNN é treinado em um conjunto de imagens com rótulo de classe conhecido. Quanto maior o número e a variabilidade das imagens de cada classe no conjunto de dados, mais precisa será a rede treinada.

Se houver apenas alguns exemplos no conjunto de treinamento, o treinamento adicional (ajuste fino) da rede neural será usado. A CNN é treinada para reconhecer imagens de um conjunto de dados semelhante que resolve o problema original. Por exemplo, quando uma rede neural aprende a reconhecer rostos ou seus atributos (emoções, gênero, idade), ela é treinada preliminarmente para identificar celebridades a partir de suas fotos. A rede neural resultante é então ajustada no pequeno conjunto de dados disponível para identificar os rostos de familiares ou parentes em sistemas de vigilância por vídeo doméstico. Quanto mais profundidade (número) de camadas houver em uma CNN, mais precisamente ela prevê o tipo de objeto na imagem. No entanto, se o número de camadas aumentar, será necessário mais tempo para reconhecer os objetos.

O autor do estudo, Professor Andrey Savchenko do Campus HSE em Nizhny Novgorod, foi capaz de acelerar o trabalho de uma rede neural convolucional pré-treinada com arquitetura arbitrária, consistindo de 90-780 camadas em seus experimentos. O resultado foi um aumento na velocidade de reconhecimento de até 40%, enquanto controlava a perda de precisão para não mais do que 0,5-1%. O cientista confiou em métodos estatísticos, como análise sequencial e comparações múltiplas (teste de múltiplas hipóteses).

“A decisão no problema de reconhecimento de imagem é feita por um classificador – um algoritmo matemático especial que recebe uma matriz de números (recursos / embeddings de uma imagem) como entradas e produz uma previsão sobre a qual classe a imagem pertence. O classificador pode ser aplicado alimentando-o com as saídas de qualquer camada da rede neural. Para reconhecer imagens ‘simples’, o classificador só precisa analisar os dados (saídas) das primeiras camadas da rede neural.

Não há necessidade de perder mais tempo se já estivermos confiantes na confiabilidade da decisão tomada. Para fotos ‘complexas’, as primeiras camadas claramente não são suficientes – você precisa passar para a próxima. Portanto, classificadores foram adicionados à rede neural em várias camadas intermediárias. Dependendo da complexidade da imagem de entrada, o algoritmo proposto decidiu se continuaria o reconhecimento ou concluí-lo. Como é importante controlar os erros em tal procedimento, apliquei a teoria das comparações múltiplas: apresentei muitas hipóteses, em que camada intermediária parar, e testei sequencialmente essas hipóteses “, explicou o professor Savchenko.

Se o primeiro classificador já produziu uma decisão que foi considerada confiável pelo procedimento de teste de hipóteses múltiplas, o algoritmo parou. Se a decisão fosse declarada não confiável, os cálculos na rede neural continuavam para a camada intermediária e a verificação de confiabilidade era repetida.

Como o cientista observa, as decisões mais precisas são obtidas para as saídas das últimas camadas da rede neural. As primeiras saídas da rede são classificadas com muito mais rapidez, o que significa que é necessário treinar simultaneamente todos os classificadores para acelerar o reconhecimento enquanto controla a perda de precisão. Por exemplo, para que o erro devido a uma parada anterior não seja superior a 1%.

“Alta precisão é sempre importante para o reconhecimento de imagem. Por exemplo, se uma decisão em sistemas de reconhecimento de rosto for tomada incorretamente, alguém de fora pode obter acesso a informações confidenciais ou, inversamente, o acesso será negado repetidamente ao usuário, porque a rede neural não pode identificar A velocidade pode ser sacrificada às vezes, mas é importante, por exemplo, em sistemas de vigilância por vídeo, onde é altamente desejável tomar decisões em tempo real, ou seja, não mais do que 20-30 milissegundos por quadro. Para reconhecer um objeto em um quadro de vídeo aqui e agora, é muito importante agir rapidamente, sem perder a precisão “, disse o professor Savchenko.


Publicado em 15/05/2021 15h20

Artigo original:

Estudo original: