Processamento de imagens na prática

Classificação de objetos por centro de classe – parte I

Seguindo na trilha da classificação de imagens, um algoritmo de classificação simples (bom para começar) é resumir cada classe de dados usando o seu centro de classe, ou centroide.

Do livro

Esta definição encontrei no livro de Shapiro e Stockmann – Computer Vision, e traduzi aqui. O centro de classe é calculado por:
\bar{x}_i = \frac{1}{{n}_i} \sum_{j=1}^n x_{i,j}
onde x(i,j) é j-ésima característica do da classe i.

Um objeto desconhecido, de vetor de características x, é classificado como classe i se estiver mais perto do vetor médio da classe i do que de qualquer outra. Existe a opção de colocar x em uma classe rejeito se não estiver perto o suficiente de nenhuma classe.

Para entender

Imagem segmentada.

Imagem segmentada.


Algumas definições são necessárias para entender, e nada melhor que usar um exemplo. Por isso colei aqui a imagem que venho usando nos últimos tutoriais, e também o Outline, que identifica os objetos por número.

Vetor de características:
É o conjunto de características medidas ou calculadas para cada objeto da amostra. No exemplo, o primeiro objeto tem o seguinte vetor de características, composto pelos 3 valores de cor medidos.

Red Green Blue
15,92 96,16 243,15

Classe
Classe é um grupo de objetos que pretendemos identificar. Eles devem ter características importantes em comum, e deve haver características também importantes que sejam diferentes entre as classes que se pretende usar. Nos métodos de classificação supervisionados, o pesquisador precisa conhecer as classes antes de iniciar a classificação.
No exemplo, temos 3 classes de objetos: pretos, vermelhos e azuis.

Outline da imagem analisada.

Outline da imagem analisada.

Conjunto de treinamento
A maioria dos métodos de classificação supervisionados trabalha a partir de um conjunto de treinamento, que é um conjunto de amostras que foram classificadas pelo pesquisador (uma pessoa).

Para não complicar vamos considerar a imagem toda como um conjunto de treinamento. Olhando a imagem e seu outline, sabemos que os objetos 4, 12 e 19 pertencem à classe de objetos pretos. Da mesma forma podemos enumerar os objetos vermelhos e azuis. Estas serão nossas classes de treinamento.

Os cálculos

Voltando à definição do livro e à fórmula do início do texto, temos alguma matemática para vencer – nada que qualquer planilha não resolva.

Cálculo do centro de classe:
Os centros de classe são calculados para cada conjunto de treinamento. Como estamos trabalhando com 3 características (as intensidades dos três canais de cor), cada centro de classe será um conjunto de 3 valores. Imagine-os como as 3 coordenadas de um gráfico tridimensional. Para mais que 3 características fica difícil de imaginar, mas a matemática funciona da mesma forma.

Para obter as 3 coordenadas, calcule a média para cada característica em cada classe. Leva uns 2 ou 3 clicks em uma planilha eletrônica… e aí está:

Dispersão das medidas de vermelho e verde.

Dispersão das medidas de vermelho e verde.

Classe Red Green Blue
Preto 22,02 19,59 19,59
Azul 16,3 95,36 241,88
Vermelho 193,81 36,33 36,37

Uma olhada rápida no gráfico do post onde medimos as características, e dá para perceber que os centros de classe (considerando duas dimensões vermelho e verde) estão dentro da nuvem de dispersão das suas classes. Significa que os cálculos estão corretos.

Por hoje chega… os próximos passos são:

  • Determinar a distância mínima para que um objeto pertença a uma classe;
  • Classificar um conjunto de testes.

Inscreva-se para receber os próximos posts por email ou RSS.

Referências

SHAPIRO, Linda G. e STOCKMAN, George C. Computer Vision. New Jersey: Prentice-Hall Inc. 2001.

Trackbacks/Pingbacks

           
  1. [...] com a classificação por centro de classe, os próximos passos [...]

  2.        

Comente

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>