Como melhorar o desempenho de visão computacional com dados sintéticos

Como a Neural Pocket reduz os custos e acelera em 95% o treinamento em visão computacional

Neural Pocket: um caso de estudo do Unity Computer Vision

Treinar modelos de visão computacional para atingir qualidade de nível de produção não é algo fácil e sempre exigiu que as equipes coletassem e anotassem cuidadosamente dados reais, um processo intensivo do ponto de vista de tempo e recursos. A Neural Pocket está utilizando conjuntos de dados sintéticos gerados com o Unity Computer Vision para superar esses desafios em tarefas de visão computacional.

  • O desafio

    Gere grandes quantidades de dados rapidamente com anotações perfeitas para treinamento de modelos de visão computacional

  • Produtos

    Unity Pro, pacote Perception do Unity Computer Vision

  • Membros da equipe

    11 (1 engenheiro de simulação, 10 engenheiros de IA)

  • Local

    Tóquio, Japão

Treinamento de visão computacional mais rápido, melhor e mais acessível

Com sede em Tóquio, a Neural Pocket oferece soluções de IA ponta a ponta de cidade inteligente para grandes empresas e órgãos governamentais no Japão e em outros países. Utilizando a plataforma de desenvolvimento em 3D em tempo real da Unity e o pacote Perception do Unity Computer Vision, a equipe da Neural Pocket está treinamento modelos de visão computacional com mais rapidez, custos reduzidos e mais eficiência.

Os resultados

  • Redução de 95% no tempo dos ciclos de treinamento de modelos de visão computacional (em média uma semana contra até seis meses)
  • Redução de 95% nos custos atrelados a coleta de dados, anotação e treinamento
  • Melhoria do desempenho de modelos de visão computacional
  • Melhoria dos recursos para assumir vários projetos e aumentar a receita
Infographic

Resultados por uma fração do tempo e custo

A combinação entre os desafios da coleta e anotação de dados reais e a natureza iterativa do treinamento de modelos de visão computacional pode ser onerosa e exaustiva. Para a Neural Pocket, o treinamento de um modelo com dados reais costuma exigir diversas iterações, frequentemente atingindo cerca de 30 ciclos de treinamento. 

Cada um desses ciclos exige a captura de dados reais (por exemplo, captura por vídeo, foto e/ou drone), anotação (isto é, rotulagem manual por uma equipe de anotadores), treinamento e, por fim, avaliação, o que leva em média uma semana por ciclo. Para projetos que atingem 30 ciclos, os custos podem chegar na casa dos US$ 150 mil e os cronogramas podem se estender durante seis meses até a implantação de um modelo pronto para a produção.

Utilizando o Unity e o pacote Perception do Unity Computer Vision, a equipe da Neural Pocket reduziu significativamente a quantidade de iterações e os custos associados ao treinamento de modelos de visão computacional, ao mesmo tempo que aumentou o desempenho geral dos modelos. A equipe usa as ferramentas da Unity para gerar imagens sintéticas que são automaticamente rotuladas e anotadas para treinamento iterativo de modelos de visão computacional em uma combinação entre dados reais e simulados.

Ao usar dados sintéticos criados com o pacote Perception do Unity Computer Vision e um único ciclo de treinamento com dados reais, é possível criar um modelo mais eficiente em pouco mais de uma semana, o que representa, em média, uma economia de cerca de 95% em tempo e dinheiro.

Vamos conferir como a equipe utilizou o pacote Perception do Unity Computer Vision de diversas formas para dois projetos relacionados à segurança.

Projeto 1: detecção de objetos para armas

Para este projeto, um dos parceiros da Neural Pocket queria oferecer um ambiente mais seguro em um de seus escritórios. Ele acionou a Neural Pocket para o desenvolvimento de um modelo de visão computacional para seu sistema de câmeras de segurança inteligentes a fim de detectar corretamente objetos perigosos. 

Com o intuito de coletar dados reais para o treinamento de visão computacional, a Neural Pocket preparou uma gravação de vídeo e filmou participantes portando armas como facas, tacos e pistolas em diversas situações que variavam de fáceis a difíceis de detectar. Depois, a Neural Pocket criou cerca de 1.000 imagens estáticas a partir dos vídeos e identificou as armas por meio de sua equipe interna de anotadores que rotularam manualmente cada imagem.

Depois de usar esses dados para o ciclo de treinamento inicial, a taxa de detecção foi de 27% para facas e 80% para tacos e pistolas.

Combinação vencedora: dados reais e sintéticos

Para impulsionar o desempenho, a Neural Pocket escolheu o pacote Perception do Unity Computer Vision a fim de gerar conjuntos de dados em grande escala para treinamento e validação de visão computacional.

“O pacote Perception do Unity Computer Vision possibilita a criação de fluxo e estrutura organizados, e é altamente reutilizável em qualquer projeto de detecção”, disse Romain Angénieux, líder de simulação na Neural Pocket. “Com um conjunto de componentes personalizáveis, como cenários, randomizadores, tags, rótulos e câmeras inteligentes, ele nos permitiu configurar randomizações de uma forma muito direta e flexível pela IU.”

A Neural Pocket obteve modelos 3D de armas na Unity Asset Store e em outros marketplaces, e integrou esses modelos facilmente nas ferramentas de visão computacional da Unity para detecção de objetos personalizados. A equipe randomizou diversos aspectos da simulação entre quadros capturados, como a renderização de imagens com mãos segurando armas e apenas armas isoladas.

O Unity Computer Vision oferece uma solução escalável para a criação de milhares (até milhões) de imagens sintéticas. A Neural Pocket gerou 5.100 quadros simulados, cinco vezes mais do que a quantidade de quadros reais. Depois de treinar o modelo em uma combinação de dados reais e sintéticos, os resultados alcançaram níveis de qualidade de produção: a taxa de detecção de facas saltou de 27% para 87%, e a taxa para tacos e pistolas saltou de 80% para um desempenho perfeito de 100%. 

“Tivemos uma surpresa extremamente agradável ao obter ótimos resultados logo de cara”, afirmou Alex Daniels, especialista sênior e líder da equipe da incubadora de tecnologias. “Com a capacidade de mudar os parâmetros com facilidade e rapidez para gerar novos conjuntos de dados melhorados, sem nenhuma dependência com a coleta de dados reais, nosso processo de criação de conjuntos de dados pôde ser significativamente otimizado.”

Projeto 2: detecção de objetos para smartphones

Em outro projeto, um parceiro da Neural Pocket buscou treinar uma IA para detectar pessoas tirando fotos com seus smartphones, para aumentar a proteção de informações confidenciais, como números de cartões de crédito.

Se por um lado a equipe usou o pacote Perception do Unity Computer Vision sem nenhuma alteração para o projeto de detecção de objetos perigosos, neste projeto mais complexo eles aproveitaram a capacidade de extensão do pacote e a base de código aberto. 

“O uso da configuração padrão do pacote Perception é suficiente para obter um impulso consequente em termos de desempenho de visão computacional, mas pode-se criar muito mais com base nas ferramentas existentes para atender ao maior domínio possível”, disse Angénieux.

A equipe criou uma série de randomizações personalizadas para superar os seguintes desafios técnicos relacionados ao reconhecimento de smartphones:

  • Uma ampla gama de modelos: design de um método lógico para combinação de vários componentes de base (por exemplo, logotipos, câmeras) a fim de gerar modelos 3D realistas de smartphones característicos do mercado.
  • Um número infinito de possíveis designs de capas de smartphone: execução de mapeamentos de textura para que qualquer imagem da API Google Images pudesse ser mapeada para as capas de smartphone.
  • Nas mãos e parcialmente coberto por dedos de diversas formas: criação de mãos modulares em diversas posições e variações de pele.
  • Vários objetos poderiam ser confundidos com um smartphone: criação de objetos falsos não anotados, ou seja, objetos com formato e estilo semelhantes aos de smartphones, mas que não devem ser detectados, o que introduziu a ideia de que “nem todo objeto retangular nas mãos é necessariamente um smartphone” e reduziu os falso-positivos.

Simulação impulsiona o desempenho mais uma vez

A Neural Pocket capturou 20.540 imagens reais e gerou 27.478 imagens sintéticas. Somente com os dados reais, a taxa de detecção foi de 89,8%; usando os conjuntos de dados reais e de simulação, a taxa aumentou para 92,9%.

“Embora essa melhoria pareça pequena, como a detecção de smartphones é executada em uma série de quadros de vídeo, um ganho de 3% em imagens estáticas pode gerar um ganho significativo nas taxas de detecção de smartphones como um todo”, disse Daniels.

Próximos passos

Como a Unity ajudou a Neural Pocket a aumentar significativamente seu rendimento, a equipe agora pode assumir mais trabalho e ampliar seu potencial de receita. A Neural Pocket continua usando as ferramentas de visão computacional da Unity em diversos projetos: confira esta publicação do blog para ver mais exemplos. 

No futuro, a Neural Pocket planeja reduzir sua dependência em relação aos dados reais e usar dados sintéticos como até 90% dos dados de treinamento. A confiança da equipe nos recursos de visão computacional da Unity é um fator essencial para impulsionar essa mudança.

“Com seu desenvolvimento ativo focado nas necessidades dos usuários, esperamos que o pacote Perception do Unity Computer Vision continue melhorando ao longo do tempo, tornando-se uma referência para tarefas de percepção e um ponto de partida para os nossos projetos de percepção”, disse Angénieux.

Romain Angénieux, Head of Simulation, Neural Pocket

“As ferramentas de visão computacional da Unity nos permitem trabalhar de forma mais rápida e econômica. Como resultado, conseguimos treinar e implantar nossos modelos de visão computacional em uma fração do tempo e do custo usuais.”

Romain Angénieux, Head of Simulation, Neural Pocket
Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

“Com o aumento na variação dos dados que o Unity Computer Vision oferece, a necessidade pela coleta de dados reais diminuiu. O desempenho dos modelos de visão computacional também melhorou, resultando em produtos de melhor qualidade.”

Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

Conceitos básicos do Unity Computer Vision

Confira nossas ofertas para descobrir como a nossa equipe de especialistas pode ajudar você a gerar dados sintéticos personalizados para as necessidades do seu modelo de visão computacional.

Usamos cookies para garantir a melhor experiência no nosso site. Visite nossa página da política de cookies para obter mais informações.

Eu entendi