Visão computacional é um campo da inteligência artificial (IA) que utiliza aprendizado de máquina e redes neurais para ensinar computadores e sistemas a extrair informações relevantes de imagens digitais, vídeos e outros inputs visuais — e a fazer recomendações ou tomar ações ao identificar defeitos ou problemas.
Se a IA permite que os computadores pensem, a Computer Vision permite que eles vejam, observem e entendam.
A Computer Vision funciona da mesma forma que a visão humana, exceto que os humanos têm uma vantagem inicial. A visão humana tem a vantagem de vidas de contexto para treinar como distinguir objetos, a que distância eles estão, se estão se movendo ou se há algo errado com uma imagem.
A visão computacional treina máquinas para executar essas funções, mas precisa fazer isso em muito menos tempo, usando câmeras, dados e algoritmos no lugar de retinas, nervos ópticos e um córtex visual. Como um sistema treinado para inspecionar produtos ou monitorar um ativo de produção pode analisar milhares de produtos ou processos por minuto, identificando defeitos ou problemas imperceptíveis, ele pode rapidamente superar os recursos humanos.
A visão computacional é usada em setores que vão de energia e serviços públicos até manufatura e automotivo — e o mercado continua crescendo. Segundo o analista de mercado Gartner, o mercado global de software, hardware e serviços de visão computacional deverá gerar USD 386 bilhões até 2031, um salto em relação aos USD 126 bilhões registrados em 2022.1
A Computer Vision precisa de muitos dados. Ela executa análises de dados repetidamente até discernir distinções e, finalmente, reconhecer imagens. Por exemplo, para treinar um computador para reconhecer pneus de automóveis, ele precisa ser alimentado com grandes quantidades de imagens de pneus e itens relacionados a pneus para aprender as diferenças e reconhecer um pneu, especialmente um que não tenha defeitos.
Duas tecnologias essenciais são usadas para viabilizar isso: um tipo de aprendizado de máquina chamado deep learning e uma rede neural convolucional (CNN).
O aprendizado de máquina utiliza modelos algorítmicos que permitem que o computador aprenda sozinho sobre o contexto dos dados visuais. Se houver dados suficientes inseridos no modelo, o computador irá “observar” esses dados e ensinar a si mesmo a diferenciar uma imagem da outra. Os algoritmos permitem que a máquina aprenda por conta própria, em vez de alguém programá-la para reconhecer uma imagem.
Uma CNN ajuda um modelo de aprendizado de máquina ou deep learning a "olhar" dividindo as imagens em pixels, que recebem tags ou rótulos. Ela usa os rótulos para realizar convoluções (uma operação matemática em duas funções para produzir uma terceira função) e faz previsões sobre o que está "vendo". A rede neural executa convoluções e verifica a precisão de suas previsões em uma série de iterações até que as previsões comecem a se tornar realidade. Então, passa a reconhecer ou ver imagens de forma semelhante aos humanos.
Semelhante a uma pessoa distinguindo uma imagem à distância, uma CNN primeiro identifica contornos nítidos e formas simples, depois preenche as informações ao executar várias iterações de suas previsões. Uma CNN é usada para interpretar imagens individuais. Uma rede neural recorrente (RNN) é usada de maneira semelhante em aplicações de vídeo, para ajudar os computadores a entenderem como as imagens em uma sequência de quadros se relacionam entre si.
Cientistas e engenheiros vêm tentando desenvolver formas de fazer com que máquinas vejam e compreendam dados visuais há cerca de 60 anos. Os experimentos começaram em 1959, quando neurofisiologistas mostraram uma série de imagens a um gato, tentando correlacionar a resposta em seu cérebro. Eles descobriram que a resposta vinha primeiro a contornos nítidos ou linhas e, cientificamente, isso significava que o processamento de imagens começa com formas simples, como linhas retas.2
Quase na mesma época, a primeira tecnologia de digitalização de imagens por computador foi desenvolvida, permitindo que os computadores digitalizassem e adquirissem imagens. Outro marco foi alcançado em 1963, quando os computadores foram capazes de transformar imagens bidimensionais em formas tridimensionais. Na década de 1960, a IA emergiu como um campo de estudo acadêmico e também marcou o início da busca da IA para resolver o problema da visão humana.
Em 1974, foi introduzida a tecnologia de reconhecimento óptico de caracteres (OCR), que conseguia reconhecer texto impresso em qualquer fonte ou tipo de letra.3 De forma semelhante, o reconhecimento inteligente de caracteres (ICR) podia decifrar texto manuscrito com o uso de redes neurais.4 Desde então, OCR e ICR passaram a ser utilizados no processamento de documentos e faturas, reconhecimento de placas de veículos, pagamentos móveis, conversão por máquina e outras aplicações comuns.
Em 1982, o neurocientista David Marr estabeleceu que a visão funciona hierarquicamente e introduziu algoritmos para máquinas detectarem bordas, cantos, curvas e formas básicas semelhantes. Ao mesmo tempo, a cientista da computação Kunihiko Fukushima desenvolveu uma rede de células capazes de reconhecer padrões. A rede, chamada de Neocognitron, incluía camadas convolucionais em uma rede neural.
Em 2000, o foco dos estudos passou a ser o reconhecimento de objetos; e, em 2001, surgiram as primeiras aplicações de reconhecimento facial em tempo real. A padronização de como os conjuntos de dados visuais são marcados e anotados surgiu ao longo dos anos 2000. Em 2010, o conjunto de dados ImageNet foi disponibilizado. Ele continha milhões de imagens marcadas em mil classes de objetos e serve de base para as CNNs e modelos de deep learning usados atualmente. Em 2012, uma equipe da Universidade de Toronto inscreveu uma CNN em um concurso de reconhecimento de imagens. O modelo, chamado AlexNet, reduziu significativamente a taxa de erro no reconhecimento de imagens. Após esse avanço, as taxas de erro caíram para apenas alguns por cento.5
Há muitas pesquisas em andamento no campo da visão computacional, mas o progresso não para por aí. Aplicações no mundo real demonstram a importância da visão computacional para iniciativas nos negócios, entretenimento, transporte, saúde e na vida cotidiana. Um fator essencial para o crescimento dessas aplicações é o fluxo intenso de informações visuais provenientes de smartphones, sistemas de segurança, câmeras de tráfego e outros dispositivos com instrumentação visual. Esses dados podem ter um papel importante nas operações em diversos setores, mas hoje permanecem sem uso. Essas informações criam um campo de testes para treinar aplicações de visão computacional e uma base de lançamento para que elas se tornem parte de diversas atividades humanas.
Muitas organizações não têm recursos para financiar laboratórios de Computer Vision e criar modelos de deep learning e redes neurais. Elas também podem não ter o poder de computação necessário para processar grandes conjuntos de dados visuais. Empresas como a IBM estão ajudando ao oferecer serviços de desenvolvimento de software de Computer Vision. Esses serviços oferecem modelos de aprendizagem criados previamente disponíveis na nuvem e também facilitam a demanda por recursos de computação. Os usuários se conectam aos serviços por meio de uma interface de programação de aplicativos (API) e os usam para desenvolver aplicações de Computer Vision.
A IBM também introduziu uma plataforma de Computer Vision que lida com preocupações de recursos de desenvolvimento e computação. O IBM Maximo Visual Inspection inclui ferramentas que permitem que especialistas no assunto rotulem, treinem e implementem modelos de visão de deep learning, sem conhecimento especializado em programação ou deep learning. Os modelos de visão podem ser implementados em data centers locais, na nuvem e em dispositivos de edge.
Embora esteja ficando mais fácil obter recursos para desenvolver aplicações de Computer Vision, uma pergunta importante a ser respondida desde o início é: o que exatamente essas aplicações farão? Compreender e definir tarefas específicas de Computer Vision pode concentrar e validar projetos e aplicações e facilitar o início.
Aqui estão alguns exemplos de tarefas de Computer Vision estabelecidas:
1. Emerging Tech: Revenue Opportunity Projection of Computer Vision: Growth Markets, Gartner, 19 de abril de 2024.
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3
3. Optical character recognition, Wikipédia
4. Intelligent character recognition, Wikipédia
5. A Brief History of Computer Vision (and Convolutional Neural Networks), Rostyslav Demush, Hacker Noon, 27 de fevereiro de 2019
6. 7 Amazing Examples of Computer And Machine Vision In Practice, Bernard Marr, Forbes, 8 de abril de 2019
7. The 5 Computer Vision Techniques That Will Change How You See The World, James Le, Heartbeat, 12 de abril de 2018