UCPel
Segmentação
 

 

Introdução
Limiarização
Determinação do Limiar
Limiarização Global Simples
Teste de Limiarização no MATLAB
Segmentação na Área de Inspeção Industrial
Segmentação Orientada a Regiões
Exemplo de Segmentação por Crescimento de Regiões
Segmentação Baseada em Bordas
Operador Sobel
Teste do Sobel no MATLAB

 

Introdução

       O primeiro passo na análise de imagens é a segmentação que consiste em usar o computador para definir na imagem, recortes automáticos ao redor de objetos de interesse. A segmentação subdivide uma imagem em suas partes ou objetos constituintes. O nível até o qual essa subdivisão deve se realizada, assim como a técnica utilizada, depende do problema que está sendo resolvido.[1]

       Algoritmos de segmentação permitem achar diferenças entre dois ou mais objetos, e distinguir as partículas umas das outras e do fundo. Esta distinção permitirá ao programa interpretar pixels contíguos e agrupá-los em regiões. Os algoritmos de segmentação para imagens monocromáticas são geralmente baseados em uma das seguintes propriedades básicas de valores de níveis de cinza: descontinuidade e similaridade.

       Na descontinuidade a abordagem é particionar a imagem baseado em mudanças bruscas nos níveis de cinza. As principais áreas de interesse são a detecção de pontos isolados, detecção de linhas e bordas na imagem.

       Na similaridade as principais abordagens baseiam-se em limiarização e crescimento de regiões.

 

Limiarização (Thresholding)

       Limiarização é uma das mais importantes abordagens para a segmentação de imagens[1] Na Limiarização analisamos a similaridade dos níveis de cinza da imagem extraindo os objetos de interesse através da seleção de um limiar T que separa os agrupamentos de níveis de cinza.

Uma imagem limiarizada g(x,y) é definida como:

g(x,y)=

1 se f(x,y)³ T

0 se f(x,y)£ T

Onde f(x,y) corresponde ao nível, de cinza do ponto, os pixels rotulados com 1 correspondem aos objetos e os pixels rotulados com 0 correspondem ao fundo e T é um valor de tom de cinza predefinido denominado limiar.     

Fig 11a - Histograma particionado por um único limiar
Fig 11b - Histograma particionado por dois limiares

 

Determinação do Limiar

       Uma das dificuldades da “limiarização” de uma imagem é a melhor determinação do valor de “thresholding”, ou seja, do ponto de separação dos pixels.

       Método do vale: Através da análise do histograma estabelecer T (valor de “Threshold”) na região de “vale” mais próxima ao meio de escala dos níveis de cinza.

     

Limiarização Global Simples

       A mais simples de todas as técnicas de limiarização é a do particionamento do histograma da imagem por um limiar único T (Fig.11a). A segmentação é então efetuada, varrendo-se a imagem, pixel por pixel, e rotulando-se cada pixel como sendo do objeto ou do fundo, dependendo se o nível de cinza daquele pixel for maior ou menor que T. O sucesso desse método depende inteiramente de quão bem o histograma pode ser particionado.


Teste de Limiarização no MATLAB

       Abaixo um exemplo de limiarização Global Simples gerada no MATLAB

Figura 12a - Imagem Original
Figura 12b -Aplicação de um limiar = 10
Figura 12c - Aplicação de um limiar = 30
Figura 12d - Aplicação de um limiar = 70

       Outro teste de limiarização feito no MATLAB, aplicando diferentes valores de limiares

Figura 13a - Imagem original
Figura 13b - Aplicação de um limiar = 40
Figura 13c - Aplicação de um limiar = 80

        A limiarização global obtem sucesso apenas em ambientes altamente controlados. Uma das áreas que isso é obtido é a área de Inspeção Industrial, em que é possível um controle de iluminação.
       
      Segmentação na área de Inspeção Industrial

       As tarefas de análise de imagens em controle de qualidade são geralmente tarefas simples, que estão bem definidas, como por exemplo: encontrar uma rachadura em um bloco de cerâmica (procura por linha com determinadas características), encontrar falhas no tingimento de rolos de linha industrial (procura por variações anômalas de cor) , encontrar falhas em tecelagem (procura por variações anômalas de textura) ou encontrar falhas em matéria prima (variações de coloração, forma ou tamanho de objetos). Ao contrário de aplicações como o reconhecimento de faces ou cenas de trânsito, onde as condições de iluminação e contexto de uma situação em particular podem variar muito, no controle de qualidade temos geralmente uma situação onde a aquisição de dados é realizada sob condições controladas e bem conhecidas, como por exemplo uma luz ultravioleta de intesidade e direção bem definidas, uma luz branca difusa de intensidade conhecida, possibilitando assim utilizar a técnica de limiarização.

       Segmentação aplicada no controle de qualidade para detectar falhas na madeira
       Segmentação aplicada para detectar bolachas quebradas.
       Segmentação aplicada no controle de qualidade de envelopes de aspirinas
       

   Segmentação Orientada a Regiões

       O objetivo da segmentação é particionar a imagem em regiões.

       Crescimento de Regiões por Agregação de Pixels

       Assim como na Limiarização, na segmentação orientada a Regiões analisamos a similaridade dos níveis de cinza da imagem.

       Como seu nome implica, o crescimento de regiões é um procedimento que agrupa pixels ou sub-regiões em regiões maiores. A mais simples dessas abordagens é a agregação de pixels, que começa com um conjunto de pontos "semente" e, a partir deles, cresce as regiões anexando a cada ponto semente aqueles pixels que possuam propriedades similares (como nível de cinza, textura ou cor). Por exemplo, a figura abaixo, na qual os números dentro das células representam valores de nível de cinza. Usando os pontos com coordenadas (3,2) e (3,4) como sementes. A utilização de dois pontos iniciais resulta em uma segmentação consistindo de, no máximo, duas regiões: R1 associada à semente (3,2) e B2 associada a semente (3,4). A propriedade P a ser usada para incluir um pixel em uma das regiões é se a diferença absoluta entre os níveis de cinza daquele pixels e o da semente é menor que um dado limiar T. Qualquer pixel que satisfaça essa propriedade simultaneamente para ambas as sementes é (arbitrariamente) atribuído à região R1. A Figura 14b mostra o resultado obtido usando T= 3. Nesse caso, a segmentação consiste de duas regiões em que os pontos pertencentes a R1 são denotados por "a" enquanto que os pertencentes a R2 são denotados por "b". Qualquer ponto inicial em qualquer uma das regiões resultantes levaria ao mesmo resultado, mas a escolha de T= 8 resultaria em uma única região, como mostrado na Figura 14c.

Figura 14a - Matriz da Imagem Original
Figura 14b - Resultado da segmentação
Figura 14c - Resultado usando uma diferença absoluta de menos de 8

       O exemplo precedente, apesar de simples, mostra algumas dificuldades fundamentais com o crescimento regiões. Dois problemas imediatos são a seleção de sementes que representem adequadamente as regiões de interesse, bem como a seleção de propriedades apropriadas para a inclusão de pontos nas várias regiões durante o processo de crescimento.

       A seleção de um ou mais pontos iniciais pode freqüentemente se basear na natureza problema. Por exemplo, em aplicações militares de imageamento infravermelho, os alvo de interesse são realmente mais quentes (e, portanto, aparecem mais claros) que o fundo.[1] A escolha de pixels mais claros é, portanto, uma maneira natural de iniciar um algoritmo de crescimento de regiões. Quando a informação apropriada estiver disponível, o procedimento é calcular; em cada pixel, o mesmo conjunto de propriedades que será usado para atribuir os pixels às regiões durante o processo de crescimento. Se o resultado de tal cálculo mostrar agrupamentos de valores das propriedades, então os pixels cujas propriedades localizarem-se mais perto do centróide desses agrupamentos poderão ser usados como sementes.

       A seleção de critérios de similaridade depende não apenas do problema em consideração, mas também do de dados (imagem) disponíveis. Por exemplo, a análise de imageamento por satélite para levantamento de terrenos depende fortemente do uso de cor. Esse problema poderia ser muito mais difícil de ser tratado com a utilização apenas de imagens monocromáticas.

       Infelizmente, a disponibilidade de imagens multiespectrais e de outros tipos complementares é exceção, em processamento de imagens. Tipicamente, o crescimento de regiões deve ser realizado com um conjunto de descritores baseados em intensidade e em propriedades espaciais (como momentos ou textura) de uma única fonte de imagens. Os descritores sozinhos podem levar a resultados enganosos, se a informação de conectividade ou de adjacência não for levada em consideração no processo de crescimento de regiões.


Fig15a -Imagem Original mostrando um ponto semente; Fig15b - Estágio primário de crescimento de uma região;
Fig15c - Estágio intermediário de crecimento; Fig15d -Região final.

       Exemplo de aplicação de Segmentação Usando Crescimento de Regiões na Área de Sensoriamento Remoto

       Segmentação da Imagem do Satélite Landsat para o mapeamento da Região de Campinas[3]

Fig 16a - Imagem do Satélite
Fig 16b - Imagem Segmentada
Fig 16c -Mapa final

 

Segmentação Baseada em Bordas

       Na deteção de bordas, analisamos as descontinuidades nos níveis de cinza. Uma borda é o limite entre duas regiões com propriedades relativamente destintas de nível de cinza. As bordas na imagem caracterizam os contornos dos objetos e são bastante úteis para segmentação e identificação de objetos na cena. Pontos de borda podem ser entendidos como as posições dos pixels com variações abruptas de níveis de cinza. Os pontos de borda caracterizam as transições entre objetos diferentes.

       Existem várias técnicas de segmentação baseadas em bordas. As mais simples são aquelas em que as bordas são detectados pelos operadores gradiente (Sobel, Roberts, Laplaciano)seguidos de uma limiarização.

 

Operador Sobel

       Utiliza duas máscaras para encontrar os gradientes vertical e horizontal das bordas.

        A fórmula para encontrar o gradiente e o ângulo são as mesmas do operador de Roberts.
O ângulo do gradiente corresponde direção de máxima variação da intensidade devido as máscaras serem 3X3 ao invés de 2X2, Sobel é muito menos sensível ao ruído do que Roberts. Os resultados são mais precisos.

        A computação de |G| se torna mais complexa. Na prática |G| é aproximada da seguinte forma: |G|= |Gx| + |Gy|.

       O módulo do gradiente é proporcional a derivada local da intensidade.

 

Teste do Sobel no MATLAB

Figura 17a -Imagem Original
(Museu da Baronesa - Pelotas/RS).
Figura 17b - Sobel Gx

       Primeiro varre-se os pixels do eixo x, detectando o gradiente horizontal das bordas, como é mostrado na figura 17b.

      Lembre que a convenção usada para os eixos x e y em Processamento de Imagem, é diferente da convenção usada na computação gráfica, como já foi citado anteriormente.

Figura 17c - Sobel Gy
Figura 17d - Sqrt(Gx^2+Gy^2)

       Depois varre-se o eixo y detectando o gradiente vertical das bordas, conforme é mostrado na figura 17c.

       Por último temos a soma dos módulos gradiente horizontal e vertical de sobel , detectando as bordas da imagem como é mostrado na figura 17d.

principal