Como as máquinas enxergam? Conheça o conceito de visão computacional na Inteligência Artificial

A visão computacional é o domínio da Inteligência Artificial que possibilita um computador enxergar e ter noção do mundo visual. Atualmente, a visão computacional é muito usada para carros autônomos.

Visão computacional: o conceito que possibilita que computadores enxerguem.
Visão computacional: o conceito que possibilita que computadores enxerguem.

Um das aplicações mais conhecidas de inteligência artificial é o uso nos carros autônomos. Empresas, como a Tesla, investem cada vez mais em produzir carros que não necessita de um condutor e seria dirigido totalmente por uma inteligência artificial. Isso é algo que já é realidade em algumas cidades dos Estados Unidos.

Mas como que uma máquina consegue enxergar o que está ao redor? Como o software responsável pelos carros autônomos conseguem ver pedestres, sinalizações e até outros carros? Essa é uma das aplicações que necessita que máquinas sejam capazes de enxergar o mundo e compreendam o mundo visual.

Essa é um dos objetivos da área conhecida como visão computacional. A visão computacional permite que máquinas tenham acesso de forma visual ao mundo através de dados como imagens ou vídeos. É um conjunto de técnicas e métodos que analisam imagens ou vídeos e conseguem extrair informação útil.

História da visão computacional

Na década de 60, o matemático Seymour Papert criou o The Summer Vision Project onde uma das atividades era colocar uma câmera em um computador e fazê-lo descrever o que via. Durante o projeto, o matemático e os alunos do curso perceberam que a tarefa era muito mais difícil do que se imaginava. Esse foi um dos primeiros marcos do nascimento da visão computacional.

O matemático Seymour Papert
O matemático Seymour Papert foi um dos pioneiros no conceito de visão computacional. Crédito: MIT

Nas décadas seguintes, diversos cientistas da computação e outros pesquisadores focaram suas pesquisas para a tarefa de fazer um computador extrair informação de uma imagem. Grande parte das técnicas que são utilizadas hoje, como as redes neurais convolucionais, nasceram nessa corrida que aconteceu no final do século XX.

Foi já nos anos 2000, com avanço de hardwares, que a visão computacional foi levada para outro nível. Reconhecimento facial, aplicações na Medicina, na indústria automobilística e até em mídia começaram a ficar cada vez mais comuns devido à área.

O que é visão computacional?

A visão computacional é um campo dentro da inteligência artificial. A ideia é que computadores sejam capazes de extrair informação de imagens e vídeos. Um exemplo é se você alimentar a foto de um cachorro para um computador, ele seria capaz de reconhecer que na foto se trata de um cachorro.

youtube video id=0PrOA2JK6GQ

Hoje em dia, a visão computacional não concentra apenas imagens mas também vídeos. Com o uso de técnicas e métodos, a máquina conseguiria compreender e interpretar o que está sendo mostrado. Isso é extremamente útil visto que a informação visual ou em vídeo é um dos tipos principais como informações estão codificadas.

Relação de machine learning com visão computacional

Atualmente, a visão computacional tem uma relação próxima com o aprendizado de máquina ou machine learning. A principal forma que um computador aprende a interpretar imagens e vídeos é através de observação de dados. É comum o uso com aprendizado supervisionado aonde imagens são dadas como entrada e também é dada uma saída pro modelo aprender.

Na área de aprendizado supervisionado, uma imagem é alimentada a um algoritmo e uma resposta como saída também é alimentada como comparação para realizar uma tarefa.

Um exemplo é o uso em reconhecimento de padrões. Onde o modelo é treinado a realizar tarefas como classificação ou regressão. Um exemplo seria classificação de animais onde uma grande quantidade de fotos é inserida no algoritmo junto com os rótulos - os nomes dos animais. O algoritmo através de técnicas matemáticas após observar os dados diversas vezes.

Redes neurais convolucionais

Uma das técnicas mais conhecidas é o uso de redes neurais convolucionais. Essas redes foram introduzidas no final do século passado e elas são baseadas em convoluções. Em uma rede neural convolucional, há também outras camadas que são utilizadas para facilitar e melhorar o aprendizado.

A convolução é uma ferramenta matemática que envolve a aplicação de filtros em uma imagem para extrair características.

Para treinar uma rede neural convolucional é comum o uso de aprendizado supervisionado ao alimentar exemplos rotulados à rede. Dessa forma, os pesos que estão nos filtros de convolução são ajustados para minimizar o erro entre o resultado da rede e a resposta esperada. O uso de camadas convolutivas permite que a rede aprenda desde bordas simples até características mais complexas,

Como funciona um algoritmo de visão computacional?

Um algoritmo de visão computacional possui algumas etapas essenciais como preparação dos dados, treinamento e análise. Cada uma dessas etapas podem ser dividias em subetapas mais detalhadas. A forma como os dados são alimentados para uma máquina é determinante no aprendizado.

  • Preparação dos dados: A parte principal é o tratamento dos dados antes de serem colocados na máquina. Nessa etapa, as imagens ou vídeos são transformados em informação numérica. Um possível preparação é separar as matrizes RGB de imagens. É com a informação numérica de matrizes e tensores que a rede aprende.
  • Treinamento: No treinamento, para um aprendizado supervisionado, os dados de entrada e saída são alimentados para a rede. Os dados de entradas são processados da camada de entrada para as camadas seguintes onde convoluções e funções são aplicadas. Ao final, a rede retorna um resultado que é comparado com o valor esperado. A comparação é feita através de uma função de erro que atualiza os pesos dos filtros para aproximar o resultado do esperado. Essa atualização é chamada de treinamento.
  • Análise: Por fim, de maneira geral, tem a parte da análise onde testes são feitos para quantificar o poder de generalização do modelo. A análise é feita com dados que a rede não foi apresentada durante o treinamento.

Mais etapas podem ser necessárias dependendo da aplicação. Mas a base do aprendizado é essa em geral: apresentação de dados que são mapeados da entrada à saída através de uma função. Encontrar os melhores parâmetros da função é a essência.

Aplicações

A visão computacional tem uma série de aplicações no dia a dia. A mais comum é através do reconhecimento facial que alguns smartphones atuais possuem. A visão computacional também está presente nas áreas como Medicina onde serve para fazer diagnóstico por imagem.

Talvez a aplicação mais famosa é o uso em carros autônomos. Os carros utilizam um modelo treinado de visão computacional que é capaz de reconhecer o que está acontecendo aos arredores. Além disso, biblioteca de fotos também usam o poder da visão computacional para classificar imagens.