Menu fechado

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

Visão Computacional e a Inteligência Artificial (IA) têm revolucionado uma variedade de setores, como a medicina, a segurança pública, os transportes, entre muitas outras áreas. No campo da visão computacional especificamente, existem alguns termos que são muito utilizados na área e que podem causar um pouco de confusão em quem está aventurando na área. Sendo assim, nesse artigo tratar-se-á dos termos: “detecção“, “segmentação” e “reconhecimento“.

Detecção

detecção é um conceito fundamental na visão computacional. 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

segmentação envolve a subdivisão de uma imagem em regiões ou segmentos significativos. Imagine uma cena complexa com vários objetos sobrepostos, com a segmentação é 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… Se o algoritmo de segmentação traz mais informação, por que eu não deveria utilizá-lo sempre? E a resposta para isso é tão simples quanto parece, 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, além de poder se executado em dispositivos mais modestos em termos de memória e capacidade de processamento – uma vez que 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 tem 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 restritiva em termos de desempenho e usabilidade.

Reconhecimento

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

Observe abaixo na figura 03 um exemplo associado a 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! Pois é, é ai que entra 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.

Além do campo de reconhecimento de caracteres, um outro campo muito relevante é o de reconhecimento facial. Nesse caso em específico, é feita uma segmentação do rosto do indivíduo – e esse algoritmo de segmentação pode ser feito de diversas formas diferentes, 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.