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

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.