IA 101
Como Funciona a Classificação de Imagens?

Como o seu telefone pode determinar o que é um objeto apenas tirando uma foto dele? Como os sites de mídia social etiquetam automaticamente as pessoas nas fotos? Isso é realizado por meio do reconhecimento e classificação de imagens impulsionados por IA.
O reconhecimento e classificação de imagens são o que possibilitam muitos dos feitos mais impressionantes da inteligência artificial. No entanto, como os computadores aprendem a detectar e classificar imagens? Neste artigo, vamos cobrir os métodos gerais que os computadores usam para interpretar e detectar imagens e, em seguida, vamos examinar alguns dos métodos mais populares de classificação dessas imagens.
Classificação Baseada em Pixels vs. Classificação Baseada em Objetos
As técnicas de classificação de imagens podem ser principalmente divididas em duas categorias diferentes: classificação baseada em pixels e classificação baseada em objetos.
Os pixels são as unidades básicas de uma imagem, e a análise de pixels é a maneira principal como a classificação de imagens é feita. No entanto, os algoritmos de classificação podem usar apenas as informações espectrais dentro de pixels individuais para classificar uma imagem ou examinar informações espaciais (pixels próximos) juntamente com as informações espectrais. Os métodos de classificação baseados em pixels utilizam apenas informações espectrais (a intensidade de um pixel), enquanto os métodos de classificação baseados em objetos levam em conta tanto as informações espectrais dos pixels quanto as informações espaciais.
Há diferentes técnicas de classificação usadas para a classificação baseada em pixels. Essas incluem distância mínima para a média, máxima verossimilhança e distância mínima de Mahalanobis. Esses métodos exigem que as médias e variâncias das classes sejam conhecidas, e todos operam examinando a “distância” entre as médias das classes e os pixels alvo.
Os métodos de classificação baseados em pixels são limitados pelo fato de que não podem usar informações de pixels próximos. Em contraste, os métodos de classificação baseados em objetos podem incluir outros pixels e, portanto, também usam informações espaciais para classificar itens. Observe que “objeto” se refere apenas a regiões contíguas de pixels e não se refere a haver ou não um objeto-alvo dentro daquela região de pixels.
Pré-processamento de Dados de Imagem para Detecção de Objetos
Os sistemas de classificação de imagens mais recentes e confiáveis primariamente usam esquemas de classificação de nível de objeto, e para essas abordagens, os dados de imagem devem ser preparados de maneiras específicas. Os objetos / regiões precisam ser selecionados e pré-processados.
Antes que uma imagem e os objetos / regiões dentro daquela imagem possam ser classificados, os dados que compõem a imagem devem ser interpretados pelo computador. As imagens precisam ser pré-processadas e preparadas para entrada no algoritmo de classificação, e isso é feito por meio da detecção de objetos. Esta é uma parte crítica do preparo dos dados e preparo das imagens para treinar o classificador de aprendizado de máquina.
A detecção de objetos é feita com uma variedade de métodos e técnicas. Para começar, se há vários objetos de interesse ou um único objeto de interesse afeta como a pré-processamento de imagem é tratado. Se houver apenas um objeto de interesse, a imagem passa por localização de imagem. Os pixels que compõem a imagem têm valores numéricos que são interpretados pelo computador e usados para exibir as cores e matizes adequadas. Um objeto conhecido como caixa delimitadora é desenhado em torno do objeto de interesse, o que ajuda o computador a saber qual parte da imagem é importante e quais valores de pixel definem o objeto. Se houver vários objetos de interesse na imagem, uma técnica chamada detecção de objetos é usada para aplicar essas caixas delimitadoras a todos os objetos dentro da imagem.

Foto: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
Outro método de pré-processamento é a segmentação de imagens. A segmentação de imagens funciona dividindo a imagem inteira em segmentos com base em recursos semelhantes. Diferentes regiões da imagem terão valores de pixel semelhantes em comparação com outras regiões da imagem, então esses pixels são agrupados em máscaras de imagem que correspondem à forma e limites dos objetos relevantes dentro da imagem. A segmentação de imagens ajuda o computador a isolar os recursos da imagem que ajudarão a classificar um objeto, muito como as caixas delimitadoras, mas fornecem rótulos de nível de pixel mais precisos.
Depois que a detecção de objetos ou a segmentação de imagens for concluída, rótulos são aplicados às regiões em questão. Esses rótulos são alimentados, juntamente com os valores dos pixels que compõem o objeto, nos algoritmos de aprendizado de máquina que aprenderão padrões associados aos diferentes rótulos.
Algoritmos de Aprendizado de Máquina
Uma vez que os dados foram preparados e rotulados, os dados são alimentados em um algoritmo de aprendizado de máquina, que é treinado nos dados. Vamos cobrir alguns dos algoritmos de classificação de imagens de aprendizado de máquina mais comuns abaixo.
Vizinhos Mais Próximos (K-Nearest Neighbors)
O K-Nearest Neighbors é um algoritmo de classificação que examina os exemplos de treinamento mais próximos e olha para seus rótulos para determinar o rótulo mais provável para um exemplo de teste determinado. Quando se trata de classificação de imagens usando KNN, os vetores de recursos e rótulos das imagens de treinamento são armazenados e apenas o vetor de recursos é passado para o algoritmo durante o teste. Os vetores de recursos de treinamento e teste são comparados entre si para semelhança.
Os algoritmos de classificação baseados em KNN são extremamente simples e lidam facilmente com várias classes. No entanto, o KNN calcula a semelhança com base em todos os recursos igualmente. Isso significa que pode ser propenso a erros de classificação quando fornecido com imagens em que apenas um subconjunto dos recursos é importante para a classificação da imagem.
Máquinas de Vetor de Suporte (Support Vector Machines)
As Máquinas de Vetor de Suporte são um método de classificação que coloca pontos no espaço e, em seguida, desenha linhas divisórias entre os pontos, colocando objetos em diferentes classes dependendo de qual lado do plano divisório os pontos caem. As Máquinas de Vetor de Suporte são capazes de realizar classificação não linear por meio da técnica conhecida como truque do kernel. Embora os classificadores SVM sejam frequentemente muito precisos, uma desvantagem significativa dos classificadores SVM é que tendem a ser limitados tanto em tamanho quanto em velocidade, com a velocidade sofrendo à medida que o tamanho aumenta.
Perceptrons Multicamada (Redes Neurais)
Os perceptrons multicamada, também chamados de modelos de rede neural, são algoritmos de aprendizado de máquina inspirados no cérebro humano. Os perceptrons multicamada são compostos por várias camadas que são conectadas entre si, muito como os neurônios no cérebro humano são conectados. As redes neurais fazem suposições sobre como os recursos de entrada estão relacionados às classes dos dados e essas suposições são ajustadas ao longo do treinamento. Os modelos de rede neural simples, como o perceptron multicamada, são capazes de aprender relações não lineares e, como resultado, podem ser muito mais precisos do que outros modelos. No entanto, os modelos MLP sofrem de alguns problemas notáveis, como a presença de funções de perda não convexas.
Algoritmos de Aprendizado Profundo (CNNs)

Foto: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
O algoritmo de classificação de imagens mais comumente usado nos tempos recentes é a Rede Neural Convolucional (CNNs). As CNNs são versões personalizadas de redes neurais que combinam as redes neurais multicamada com camadas especializadas que são capazes de extrair os recursos mais importantes e relevantes para a classificação de um objeto. As CNNs podem descobrir, gerar e aprender automaticamente os recursos das imagens. Isso reduz significativamente a necessidade de rotular e segmentar manualmente as imagens para prepará-las para os algoritmos de aprendizado de máquina. Elas também têm uma vantagem sobre as redes MLP porque podem lidar com funções de perda não convexas.
As Redes Neurais Convolucionais recebem seu nome do fato de que elas criam “convoluções”. As CNNs operam pegando um filtro e deslizando-o sobre uma imagem. Você pode pensar nisso como olhar para seções de uma paisagem por meio de uma janela móvel, concentrando-se apenas nos recursos que estão visíveis através da janela em qualquer momento. O filtro contém valores numéricos que são multiplicados com os valores dos pixels em si. O resultado é um novo quadro, ou matriz, cheio de números que representam a imagem original. Esse processo é repetido para um número escolhido de filtros e, em seguida, os quadros são unidos em uma nova imagem que é ligeiramente menor e menos complexa do que a imagem original. Uma técnica chamada pooling é usada para selecionar apenas os valores mais importantes dentro da imagem, e o objetivo é para que as camadas convolucionais eventualmente extraiam apenas as partes mais salientes da imagem que ajudarão a rede neural a reconhecer os objetos na imagem.
As Redes Neurais Convolucionais são compostas por duas partes diferentes. As camadas convolucionais são as que extraem os recursos da imagem e os convertem em um formato que as camadas da rede neural possam interpretar e aprender. As camadas convolucionais iniciais são responsáveis por extrair os elementos mais básicos da imagem, como linhas e limites simples. As camadas convolucionais do meio começam a capturar formas mais complexas, como curvas e cantos simples. As camadas convolucionais mais profundas e posteriores extraem os recursos de nível superior da imagem, que são os que são passados para a parte da rede neural das CNNs e são os que o classificador aprende.












