toco Como funciona a classificação de imagens? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

Como funciona a classificação de imagens?

mm
Atualização do on

Como seu telefone pode determinar o que é um objeto apenas tirando uma foto dele? Como os sites de mídia social marcam automaticamente as pessoas nas fotos? Isso é feito por meio de reconhecimento e classificação de imagens com tecnologia AI.

O reconhecimento e classificação de imagens é o que permite muitas das realizações mais impressionantes da inteligência artificial. No entanto, como os computadores aprendem a detectar e classificar imagens? Neste artigo, abordaremos os métodos gerais que os computadores usam para interpretar e detectar imagens e, em seguida, examinaremos alguns dos métodos mais populares de classificação dessas imagens.

Nível de pixel vs. classificação baseada em objeto

As técnicas de classificação de imagens podem ser divididas principalmente 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 principal forma de classificação da imagem. No entanto, os algoritmos de classificação podem usar apenas as informações espectrais dentro de pixels individuais para classificar uma imagem ou examinar as informações espaciais (pixels próximos) junto 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 consideração tanto as informações espectrais de pixels quanto as informações espaciais.

Existem diferentes técnicas de classificação usadas para classificação baseada em pixels. Estes incluem distância mínima para média, probabilidade máxima e distância mínima de Mahalanobis. Esses métodos requerem que as médias e variâncias das classes sejam conhecidas, e todos eles 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 não poderem usar informações de outros 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” refere-se apenas a regiões contíguas de pixels e não se há ou não um objeto de destino nessa região de pixels.

Pré-processamento de dados de imagem para detecção de objetos

Os sistemas de classificação de imagem mais recentes e confiáveis ​​usam principalmente esquemas de classificação em 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 dessa imagem possam ser classificados, os dados que compõem essa imagem devem ser interpretados pelo computador. As imagens precisam ser pré-processadas e preparadas para entrada no algoritmo de classificação, e isso é feito através da detecção de objetos. Esta é uma parte crítica da preparação dos dados e 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, a existência ou não de vários objetos de interesse ou um único objeto de interesse afeta a maneira como o pré-processamento da imagem é tratado. Se houver apenas um objeto de interesse, a imagem sofre localização de imagem. Os pixels que compõem a imagem possuem valores numéricos que são interpretados pelo computador e usados ​​para exibir as cores e matizes adequados. Um objeto conhecido como caixa delimitadora é desenhado ao redor 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 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 imagem. A segmentação de imagens funciona dividindo toda a imagem 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, portanto, esses pixels são agrupados em máscaras de imagem que correspondem à forma e aos limites dos objetos relevantes na imagem. A segmentação de imagem ajuda o computador a isolar os recursos da imagem que o ajudarão a classificar um objeto, assim como as caixas delimitadoras, mas fornecem rótulos em nível de pixel muito mais precisos.

Após a conclusão da detecção do objeto ou segmentação da imagem, os 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 os padrões associados aos diferentes rótulos.

Algoritmos de aprendizado de máquina

Uma vez que os dados tenham sido preparados e rotulados, os dados são inseridos em um algoritmo de aprendizado de máquina, que treina os dados. Abordaremos alguns dos tipos mais comuns de aprendizado de máquina algoritmos de classificação de imagens abaixo.

Vizinhos mais próximos

K-Nearest Neighbors é um algoritmo de classificação que examina os exemplos de treinamento mais próximos e analisa seus rótulos para determinar o rótulo mais provável para um determinado exemplo de teste. Quando se trata de classificação de imagem 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 então comparados uns com os outros quanto à similaridade.

Os algoritmos de classificação baseados em KNN são extremamente simples e lidam com várias classes com bastante facilidade. No entanto, o KNN calcula a similaridade 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

As Support Vector Machines 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 divisor os pontos caem. As máquinas de vetores de suporte são capazes de fazer classificação não linear por meio do uso de uma técnica conhecida como truque do kernel. Embora os classificadores SVM geralmente sejam muito precisos, uma desvantagem substancial dos classificadores SVM é que eles tendem a ser limitados tanto pelo tamanho quanto pela velocidade, com a velocidade sofrendo conforme o tamanho aumenta.

Perceptrons de várias camadas (redes neurais)

Perceptrons multicamadas, também chamados de modelos de redes neurais, são algoritmos de aprendizado de máquina inspirados no cérebro humano. Os perceptrons multicamadas são compostos de várias camadas unidas umas às outras, da mesma forma que os neurônios do cérebro humano. As redes neurais fazem suposições sobre como os recursos de entrada estão relacionados às classes de dados e essas suposições são ajustadas ao longo do treinamento. Modelos simples de redes neurais, como o perceptron multicamadas, são capazes de aprender relacionamentos 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 últimos tempos é a Rede Neural Convolucional (CNNs). CNNs são versões customizadas de redes neurais que combinam as redes neurais multicamadas com camadas especializadas que são capazes de extrair as características mais importantes e relevantes para a classificação de um objeto. As CNNs podem descobrir, gerar e aprender automaticamente características das imagens. Isso reduz bastante a necessidade de rotular e segmentar imagens manualmente para prepará-las para algoritmos de aprendizado de máquina. Eles 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 esse nome pelo fato de criarem “convoluções”. As CNNs operam pegando um filtro e deslizando-o sobre uma imagem. Você pode pensar nisso como visualizar seções de uma paisagem através de uma janela móvel, concentrando-se apenas nas características que podem ser visualizadas através da janela a qualquer momento. O filtro contém valores numéricos que são multiplicados pelos valores dos próprios pixels. O resultado é um novo quadro, ou matriz, cheio de números que representam a imagem original. Esse processo é repetido para um determinado número de filtros e, em seguida, os quadros são unidos em uma nova imagem ligeiramente menor e menos complexa que a imagem original. Uma técnica chamada pooling é usada para selecionar apenas os valores mais importantes da imagem, e o objetivo é que as camadas convolucionais extraiam eventualmente apenas as partes mais salientes da imagem que ajudarão a rede neural a reconhecer os objetos na imagem.

Redes Neurais Convolucionais são compostas por duas partes diferentes. As camadas convolucionais são o que extraem as características da imagem e as convertem em um formato que as camadas da rede neural podem interpretar e aprender. As primeiras camadas convolucionais são responsáveis ​​por extrair os elementos mais básicos da imagem, como linhas simples e limites. As camadas convolucionais intermediárias começam a capturar formas mais complexas, como curvas e cantos simples. As camadas convolucionais posteriores e mais profundas extraem os recursos de alto nível da imagem, que são passados ​​para a parte da rede neural da CNN e são o que o classificador aprende.

Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.