Menu fechado

Introdução à Visão Computacional com Inteligência Artificial: uma guia com os termos mais utilizados

A Visão Computacional com Inteligência Artificial (IA) tem revolucionado uma variedade de setores, como a medicina, a segurança pública, os transportes, entre muitos outros. No campo em que a PanOps trabalha, existem alguns termos essenciais da visão computacional com IA sendo muito utilizados e que podem causar um pouco de confusão em quem está se aventurando na área. Sendo assim, nesse artigo, trataremos dos termos: “detecção”, “segmentação” e “reconhecimento”. Esses conceitos são fundamentais para entender como a visão computacional transforma dados visuais em informações úteis.

Detecção

A detecção é um conceito fundamental e, consequentemente, um dos termos essenciais da visão computacional com IA mais repetidos. Apesar disso, talvez não esteja claro para todos o que significa.

Trata-se da capacidade do modelo de delimitar a localização de um determinado objeto de interesse através de uma caixa delimitadora (termo conhecido em inglês como bounding box) utilizando 4 pontos no plano cartesiano (um retângulo). Esse tipo de ferramenta é uma das mais utilizadas na visão computacional, já que fornece uma boa referência para a localização dos objetos em uma imagem. Observe o exemplo abaixo, na figura 01, que exemplifica a utilização de um modelo de detecção.

Figura 01: Exemplo da utilização de um modelo de detecção em cachorros.

Segmentação na Visão Computacional com IA

A segmentação envolve a subdivisão de uma imagem em regiões ou segmentos significativos. Em suma, imagine uma cena complexa com vários objetos sobrepostos. Com a segmentação, é possível separar esses objetos, destacando-os individualmente através de vários pontos com uma localização quase exata desses objetos. Observe abaixo na figura 02 e compare com a tarefa de detecção.

Figura 02: Exemplo da utilização de um modelo de segmentação em cachorros.

Antes de continuarmos com o conceito de reconhecimento, você pode estar se perguntando que, se o algoritmo de segmentação traz mais informação, por que eu não deveria utilizá-lo sempre? Às vezes a resposta é simples até em assuntos complexos: a questão aqui é o desempenho desses modelos.

Se considerarmos modelos com a mesma escala de precisão, o modelo de detecção pode ser até 4 vezes mais rápido dependendo do dispositivo. Como resultado, é um modelo que roda em dispositivos mais modestos em termos de memória e capacidade de processamento. Normalmente, apresentam um menor número de camadas. Mas como mensurar isso?

No framework de visão computacional yolov8, por exemplo, modelos equiparáveis de precisão têm 195 e 168 camadas de rede neural, respectivamente para os modelos de segmentação e de detecção, diferença que para máquinas de menor porte pode ser restritiva em termos de desempenho e usabilidade.

Reconhecimento na Visão Computacional com IA

Partindo para o conceito de reconhecimento, ele parte de um ponto inicial diferente dos conceitos de detecção e de segmentação. No reconhecimento, o objetivo normalmente não é o de localizar um objeto, mas o de associá-lo a uma entidade única. Se por um lado, na detecção e na segmentação, o nosso interesse é saber se temos ou não aquela pessoa, no reconhecimento, o nosso objetivo é saber quem é aquela pessoa. Vamos explorar alguns exemplos.

Observe abaixo na figura 03 um exemplo associado à detecção, segmentação e ao reconhecimento de caracteres. Note que utilizando-se segmentação e detecção, eu consigo saber onde está o meu caractere, mas não consigo saber que caractere é aquele! Logo após a segementação, entra o em cena o reconhecimento, que é basicamente a junção de um algoritmo de detecção ou de segmentação com algum outro algoritmo que associa o objeto com alguma entidade já conhecida. Note que essa classe precisa ser específica. Se ela só for capaz de reconhecer uma classe generalista, esse algoritmo não é chamado de reconhecimento. Pois é, esse exemplo de reconhecimento é conhecido como Reconhecimento Óptico de Caracteres (do inglês Optical Character Recognition – OCR).

Figura 03: Exemplo de um modelo de reconhecimento de caracteres, conhecido como OCR.

Reconhecendo Faces

Além do campo de reconhecimento de caracteres, um outro campo muito relevante é o de reconhecimento facial. Nesse caso específico, segmentação do rosto do indivíduo acontece – e esse algoritmo de segmentação tem diversas possibilidades de execução. Como resultado, existem algumas abordagens mais complexas. Após a segmentação do rosto, o próximo passo é extrair características distintas do rosto detectado, um processo conhecido como extração de características.

É nesta etapa que se aplicam técnicas de reconhecimento. As características extraídas podem incluir pontos de referência faciais, como a posição dos olhos, nariz e boca, bem como texturas da pele e padrões de rugas. Estas características são então usadas para criar uma representação única do rosto, que pode ser comparada com representações de rostos conhecidos para identificação ou verificação. Abaixo, na figura 04, tem-se uma exemplificação gráfica desse processo.

Figura 04: Funcionamento simplificado típico das etapas para o reconhecimento facial.

E por hoje é só pessoal! Não esquece de nós acompanhar para aqui para receber mais posts sobre tecnologia.