Visão computacional e IA: transformando a compreensão visual

Publicados: 2025-01-15

A visão computacional é um dos subdomínios fundamentais da inteligência artificial (IA). Este guia explica a visão computacional, como funciona, onde é aplicada e suas vantagens e desvantagens.

Índice

  • O que é visão computacional?
  • História e evolução da visão computacional
  • Como funciona a visão computacional
  • Aplicações de visão computacional
  • Vantagens da visão computacional
  • Desvantagens da visão computacional
  • Conclusão

O que é visão computacional?

O domínio da visão computacional abrange todas as técnicas de IA que utilizam sistemas computacionais para analisar dados visuais, como dados em vídeos e fotos. O campo existe oficialmente desde a década de 1960, e os primeiros aplicativos de visão computacional usavam correspondência de padrões e outras heurísticas para melhorar imagens em biomédica, física avançada e outros campos de pesquisa de ponta. Quase todos os sistemas recentes de visão computacional dependem exclusivamente de algoritmos de aprendizado de máquina (ML) (mais especificamente, algoritmos de aprendizado profundo) para realizar seu trabalho, uma vez que são muito mais eficazes do que as técnicas mais antigas.

Trabalhe de maneira mais inteligente com Grammarly
O parceiro de redação de IA para qualquer pessoa com trabalho a fazer

História e evolução da visão computacional

A visão computacional tem suas raízes em experimentos conduzidos por neurofisiologistas que buscavam entender como as imagens produzidas pelo olho são processadas no cérebro. Durante as primeiras décadas de seu desenvolvimento, a visão computacional baseou-se fortemente e foi inspirada por pesquisas sobre visão humana e animal.

Embora seja difícil identificar um ano de início exato, 1959 é frequentemente considerado o início da área. Naquele ano, dois conceitos centrais de análise de imagens foram estabelecidos: (1) que a análise de imagens deveria se concentrar primeiro na identificação dos subcomponentes de uma imagem e (2) que esses componentes deveriam então ser analisados ​​hierarquicamente.

A lista abaixo destaca alguns dos principais marcos entre a descoberta desses conceitos fundamentais e a recente explosão nos avanços na visão computacional. Hoje, os sistemas de visão computacional dependem de algoritmos complexos de aprendizagem profunda para processar, compreender, editar e criar imagens realistas em tempo real.

Principais marcos no desenvolvimento da visão computacional

1959:Estudos de cérebros de animais mostraram que componentes simples de uma imagem (como bordas e linhas) eram detectados primeiro e depois processados ​​hierarquicamente. Esses insights se tornaram dois dos conceitos fundamentais em visão computacional e são reconhecidos como o início oficial do campo.

Década de 1960:Começaram os primeiros esforços oficiais de IA e visão computacional. Os avanços incluíram sistemas que transformavam automaticamente partes de fotografias em objetos tridimensionais equivalentes.

Década de 1970:O foco na pesquisa e educação em visão computacional produziu muitos algoritmos básicos de visão computacional ainda em uso hoje, incluindo aqueles para detecção de padrões, estimativa de movimento, detecção de bordas, rotulagem de linhas e modelagem geométrica de componentes de imagem.

Década de 1980:As redes neurais convolucionais (CNNs) foram desenvolvidas significativamente ao longo da década. Em 1989, a primeira CNN foi aplicada com sucesso a um problema de visão, detectando automaticamente códigos postais em imagens.

Década de 1990:As câmeras inteligentes tornaram-se cada vez mais populares e foram amplamente utilizadas em ambientes industriais. A crescente demanda por ferramentas para processar grandes quantidades de imagens digitais levou a uma explosão no investimento comercial, avançando ainda mais no campo. A indústria de visão computacional nasceu e métodos formais para avaliar a qualidade dos sistemas de visão computacional foram desenvolvidos.

2000:No final dos anos 1990 e início dos anos 2000, os pesquisadores estabeleceram o conceito de cegueira para mudanças. Eles demonstraram que os humanos muitas vezes perdem mudanças substanciais ao observar dados visuais. Essa descoberta ajudou a estabelecer outro par de conceitos – as ideias de atenção e processamento parcial – como elementos centrais da visão computacional.

2011:Pela primeira vez, uma equipe na Suíça demonstrou que CNNs aplicadas em GPUs eram um sistema de ML de visão computacional definitivamente eficiente. Esses sistemas foram revolucionários, quebrando vários recordes de visão e superando os humanos pela primeira vez. Os sistemas de visão computacional começaram a fazer a transição para implementações baseadas em CNN.

2015:Uma implementação de aprendizagem profunda de CNNs venceu a competição ImageNet pela primeira vez, marcando o início da era moderna da visão computacional.

Como funciona a visão computacional

O trabalho de visão computacional geralmente envolve três partes, que descrevemos a seguir. Os detalhes da implementação de nível inferior podem ser muito complexos, muitas vezes envolvendo etapas repetidas, conforme descrito na terceira parte abaixo. Mesmo quando os detalhes da implementação são complicados, o trabalho geralmente segue estes padrões.

1 Aquisição de imagem

Como outros sistemas de ML, os sistemas de processamento de dados visuais dependem da quantidade e da qualidade dos dados que podem acessar. Quando um sistema de visão computacional é projetado, é dada muita atenção a quando e como os dados de origem e as imagens são obtidos para melhorar a qualidade do processamento. Vários fatores devem ser considerados e otimizados, incluindo:

  • Sensores:O número e tipos de sensores em uso. Os sistemas de visão computacional usam sensores para obter dados de seu ambiente, incluindo câmeras de vídeo, lidar (detecção e alcance de luz), radar e sensores infravermelhos.
  • Implantação:A disposição e orientação dos sensores para minimizar pontos cegos e otimizar o uso das informações do sensor.
  • Dados do sensor:Diferentes tipos e quantidades de dados devem ser processados ​​e interpretados de forma diferente. Por exemplo, dados de ressonância magnética, raios X e vídeo têm requisitos especializados de processamento, armazenamento e interpretação.

Idealmente, um sistema de visão computacional deve ter acesso apenas a dados de imagem suficientes. Com poucos dados, ele não será capaz de ver informações suficientes para resolver os problemas que foi projetado para resolver. Muitos dados irrelevantes irão maximizar os recursos do sistema, torná-lo mais lento e tornar sua operação cara. A otimização cuidadosa do estágio de aquisição de imagens é crucial para a construção de sistemas eficazes de visão computacional.

2 (pré)processamento de imagem

Os mesmos dados visuais de duas fontes diferentes podem significar coisas diferentes. Detalhes sobre o contexto em que uma imagem foi tirada (como luz ambiente, temperatura e movimento da câmera) também podem indicar que a imagem deve ser interpretada de forma diferente.

O pré-processamento de imagens envolve muito trabalho para facilitar a compreensão e a análise das imagens. Por exemplo, as imagens podem ser normalizadas, o que significa que propriedades como tamanho, cor, resolução e orientação são ajustadas para serem consistentes entre as imagens. Outras propriedades também podem ser ajustadas durante o pré-processamento para ajudar os algoritmos de visão a detectar recursos específicos do domínio. Por exemplo, o contraste pode ser melhorado para tornar alguns objetos ou características mais visíveis.

Ajustes personalizados podem ser feitos para compensar diferenças nos sensores, danos nos sensores e trabalhos de manutenção relacionados. Por fim, alguns ajustes poderão ser feitos para otimizar a eficiência e o custo do processamento, levando em consideração detalhes específicos sobre como as imagens serão analisadas.

3 Processamento e análise de imagens: extração de características, reconhecimento de padrões e classificação

Os atuais sistemas de visão computacional são hierárquicos, considerando partes de cada imagem de forma independente. Cada camada em uma hierarquia normalmente é especializada para executar uma das três coisas:

  • Extração de recursos:uma camada de extração de recursos encontra componentes de imagem interessantes. Por exemplo, pode identificar onde as linhas retas podem ser encontradas na imagem.
  • Reconhecimento de padrões:Uma camada de reconhecimento de padrões analisa como vários recursos se combinam em padrões. Pode identificar, por exemplo, quais combinações de linhas na imagem formam polígonos.
  • Classificação:Após repetições suficientes de extração de características e reconhecimento de padrões, o sistema pode ter aprendido o suficiente sobre uma determinada imagem para responder a uma pergunta de classificação, como “Há algum carro nesta imagem?” Uma camada de classificação responde a essas perguntas.

O diagrama abaixo mostra como isso é implementado em uma arquitetura de sistema de visão computacional construída com CNNs. A entrada (geralmente uma imagem ou vídeo) que o sistema analisa está na extremidade esquerda do diagrama. Uma CNN, implementada como uma rede neural profunda, alterna camadas convolucionais, que se destacam na extração de características, com camadas de pooling, que se destacam no reconhecimento de padrões. Os detalhes da imagem são processados ​​da esquerda para a direita e pode haver muito mais repetições das duas camadas do que as mostradas abaixo.

Arquitetura de rede neural convolucional (CNN)

Depois que uma análise suficientemente profunda é concluída, uma camada de neurônios totalmente conectada considera todos os padrões e recursos de dados de forma agregada e resolve um problema de classificação (como “Tem um carro na foto?”).

Aplicações de visão computacional

A visão computacional é onipresente. À medida que os sistemas se tornaram mais poderosos e fáceis de aplicar, o número de aplicações explodiu. Aqui estão alguns dos aplicativos mais conhecidos.

Reconhecimento facial

Uma das aplicações mais onipresentes e avançadas da visão computacional envolve a detecção e o reconhecimento de rostos. Smartphones, sistemas de segurança e dispositivos de controle de acesso usam uma combinação de sensores, câmeras e redes neurais treinadas para identificar quando as imagens contêm rostos e transformar quaisquer rostos encontrados para que possam ser analisados.

Um sistema de reconhecimento facial verifica regularmente rostos próximos. Dados de sensores rápidos e baratos, como uma fonte de luz infravermelha e uma câmera de baixa resolução, mas de alto contraste, são passados ​​por um modelo de ML que identifica a presença de rostos.

Se algum rosto potencial for detectado, uma câmera mais lenta, mais cara e de maior resolução pode ser apontada para ele e então fazer uma gravação curta. Um sistema de processamento visual pode então transformar a gravação em reconstruções 3D para ajudar a validar a presença de um rosto. Um classificador facial pode então decidir se as pessoas na imagem fazem parte de um grupo que tem permissão para desbloquear um telefone ou acessar um prédio.

Veículos autônomos

É difícil construir um sistema que possa controlar um veículo, navegar pelo mundo e reagir em tempo real às mudanças no seu ambiente. Os sistemas de visão computacional são apenas uma tecnologia central que permite veículos autônomos.

Esses sistemas de visão aprendem a identificar estradas, sinais de trânsito, veículos, obstáculos, pedestres e muitas outras coisas que podem encontrar enquanto dirigem. Antes de poderem ser eficazes, devem analisar grandes quantidades de dados obtidos sob todos os tipos de condições de condução.

Para serem úteis em condições reais, os sistemas de visão computacional usados ​​para veículos autônomos devem ser muito rápidos (para que o veículo autônomo tenha tempo máximo para reagir às mudanças nas condições), precisos (já que um erro pode colocar vidas em perigo) e poderosos (já que o problema é complexo – o sistema tem que identificar objetos em todas as condições climáticas e de iluminação). As empresas de veículos autônomos estão investindo pesadamente no ecossistema. Os volumes de dados disponíveis estão a crescer exponencialmente e as técnicas utilizadas para os processar estão a melhorar rapidamente.

Realidade aumentada

Óculos inteligentes e câmeras de telefones atuais dependem de sistemas de visão computacional para fornecer experiências de realidade aumentada aos seus usuários. Sistemas bem treinados, semelhantes aos usados ​​para habilitar veículos autônomos, identificam objetos enquadrados por uma câmera ou um conjunto de óculos inteligentes e a posição dos objetos em relação uns aos outros no espaço 3D.

Sistemas avançados de geração de imagens se conectam a essas informações para aumentar o que a câmera ou os óculos mostram ao usuário de várias maneiras. Por exemplo, podem criar a ilusão de que os dados são projetados em superfícies ou mostrar como objetos como móveis podem caber no espaço 3D.

Vantagens da visão computacional

Os sistemas de visão computacional podem ajudar a aumentar a visão humana, aprimorar os sistemas de segurança e analisar dados em escala. Os principais benefícios de usá-los incluem o seguinte:

Velocidade e escala de reconhecimento de objetos

Sistemas de visão computacional de última geração podem identificar objetos com muito mais rapidez e em um volume muito maior do que os humanos. Uma linha de montagem, por exemplo, avançará mais rapidamente quando um sistema automatizado de visão computacional auxiliar seu supervisor. Os veículos autônomos podem operar em modo de assistência ao motorista, ajudando os motoristas a estarem cientes das informações ao seu redor que não detectarão rapidamente. Eles também podem assumir totalmente o controle e tomar decisões mais rápidas e seguras do que um ser humano sem ajuda.

Precisão

Sistemas de visão computacional bem treinados são mais precisos do que humanos nas tarefas para as quais são treinados. Por exemplo, eles podem identificar defeitos em objetos com mais precisão ou detectar crescimentos cancerígenos mais cedo em imagens médicas.

Grande volume de processamento de dados

Os sistemas de visão podem identificar anomalias e ameaças em grandes quantidades de imagens e vídeos com muito mais rapidez e precisão do que os humanos. Sua capacidade de processar informações está correlacionada ao poder computacional disponível e pode ser ampliada indefinidamente.

Desvantagens da visão computacional

Sistemas de visão computacional de alto desempenho são difíceis de produzir. Alguns dos desafios e desvantagens incluem o seguinte:

Sobreajuste

Os atuais sistemas de visão computacional são construídos em redes e algoritmos de aprendizagem profunda. Eles dependem do acesso a grandes quantidades de dados anotados durante o treinamento. Atualmente, os dados de treinamento visual não estão disponíveis nos grandes volumes vistos em outras aplicações, e gerá-los é desafiador e caro. Como resultado, muitos sistemas de visão computacional são treinados com dados insuficientes e irão se ajustar demais – eles precisarão de ajuda para generalizar para situações novas e invisíveis.

A privacidade é difícil de garantir em grande escala

Os sistemas de visão computacional podem observar e aprender com grandes quantidades de dados privados ou protegidos. Quando estiverem em campo, eles também poderão observar dados arbitrários em seu ambiente. É difícil garantir que os dados de formação estejam isentos de informações privadas e é ainda mais difícil impedir que um sistema no terreno incorpore informações privadas na sua formação.

Computacionalmente complexo

Os sistemas que utilizam visão computacional tendem a ser aplicados a alguns dos problemas mais desafiadores no campo da IA. Como consequência, são caros e complexos e podem ser difíceis de construir e montar corretamente.

Conclusão

Muitos dos problemas mais interessantes e desafiadores em ML e IA envolvem o uso e aplicação de sistemas de visão computacional. Eles são onipresentemente úteis, inclusive em sistemas de segurança, veículos autônomos, análise de imagens médicas e outros lugares. Dito isto, os sistemas de visão computacional são caros e difíceis de construir.

Dependem da demorada recolha de dados em grande escala, requerem recursos personalizados ou dispendiosos antes de poderem ser utilizados de forma eficaz e levantam questões de privacidade. Extensas pesquisas estão em andamento nesta área-chave do ML, que está avançando rapidamente.