segmentação - decom · o problema da segmentação • métodos de segmentação são utilizados...
TRANSCRIPT
Segmentação
Guillermo Cámara-Chávez
O problema da segmentação
• Segmentação é uma tarefa básica no processo de análise de imagens
O problema da segmentação
• Métodos de segmentação são utilizados para particionar os pixels de uma imagem em grupos, geralmente relacionados a objetos em uma imagem.
• Tipicamente é o primeiro passo para diversas aplicações
O problema da segmentação
O problema da segmentação
• É uma das tarefas mais difíceis em processamento de imagens
• Com o objetivo de aumentar a confiabilidade e o resultado da segmentação, deve-se fazer uso de todo e qualquer conhecimento prévio sobre o problema
O problema da segmentação
• A segmentação determina o eventual sucesso oufracasso da análise.
• Os algoritmos de segmentação são geralmentebaseados na busca pelas descontinuidades ou pelassimilaridades dos níveis de cinza.
Segmentação
Algoritmos de Segmentação
Descontinuidades Similaridades
Mudanças bruscasnos níveis de cinza
Semelhança nosníveis de cinza
detecção de: aplicação de:
• pontos isolados
• linhas e
• Bordas na imagem
• limiarização
• crescimento de regiões
Segmentação por Detecção de Descontinuidades
• Detecção de Pontos
• Feita através do uso de um filtro passa altas e um limiar de aceitação
-1 -1 -1
-1 8 -1
-1 -1 -1|R| > T
• Detecção de Linhas
• Feita através do uso de um filtro passa altasdirecionais
Segmentação por Detecção de Descontinuidades
-1 -1 -1
2 2 2
-1 -1 -1
-1 -1 2
-1 2 -1
2 -1 -1
-1 2 -1
-1 2 -1
-1 2 -1
2 -1 -1
-1 2 -1
-1 -1 2
horizontal +45 graus vertical -45 graus
• Detecção de Bordas:
“Uma borda é o limite entre duas regiões com propriedades relativamente distintas de nível de cinza”
Segmentação por Detecção de Descontinuidades
• É assumido que as regiões em questão sãosuficientemente homogêneas e que a transiçãoentre as regiões podem ser determinadas com base apenas na descontinuidade dos níveis de cinza.
Segmentação por Detecção de Descontinuidades
• A idéia predominante nas técnicas de detecção de bordas é a computação de um operador diferencial
• É importante ter em mente que bordas em imagensdigitais são, geralmente, levemente borradas devidoao processo de amostragem
Segmentação por Detecção de Descontinuidades
• A existência de imperfeções no processo de aquisição de imagem faz com que as bordas sejam“rampas”
Segmentação por Detecção de Descontinuidades
Modelos de umaborda digital idelal
Modelos de rampa emuma borda digital idelal
Operadores Diferenciais
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
y
fx
f
Gy
Gxf
x
y
yxyx
G
Gyx
GGGGfmagf
1
2/122
tan),(
)(
Ângulo de direção do vetorgradiente em relação ao eixo x
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
• Operador de Sobel
• O operador de Sobel tem um efeito secundário de suavizaçãoque é atrativo visto que a derivação aumenta o ruído
• Composição de: [-1 0 1] diferenciação + [1 2 1] suavização
1 2 1
0 0 0
-1 -2 -1
-1 0 1
-2 0 2
-1 0 1
X Y
2/122 )(),( YXyxg
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
img = imread(‘lenna.png’);
mask_x = fspecial(‘sobel’);
Gx = conv2(double(img), mask_x, ’same’);
Gy = conv2(double(img), mask_x’, ’same’);
M = sqrt(Gx.^2 + Gy.^2);
figure; imshow(M);
figure; imshow(im2bw(M/max(M(:)), .2);
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
Magnitude M > 0.2
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
• Operador de Prewitt
-1 -1 -1
0 0 0
1 1 1
1 0 -1
1 0 -1
1 0 -1
X Y
2/122 )(),( YXyxg
Operadores Diferenciais de 1ª ordem1ª derivada - Gradiente
• Operador de Roberts
1 0
0 -1
0 1
-1 0X Y
2/122 )(),( YXyxg
Operadores Diferenciais de 2ª ordem2ª derivada
• Operador Laplaciano
),(),(),(2
2
2
22 yxfyxfyxf
yx
0 -1 0
-1 4 -1
0 -1 0
Operadores Diferenciais de 2ª ordem2ª derivada
• Operadores de gradiente: funcionam bem em casosenvolvendo imagens com transições de contraste e ruído relativamente baixo
• Operadores Laplaciano (cruzamento de zero): oferecem uma alternativa nos casos em que as bordas forem borradas ou quando o ruído for elevado
Operadores Diferenciais de 2ª ordem2ª derivada
• Operador Laplaciano
Thresholding (limiarização)
• Thresholding é usualmente o primeiro passo em qualquer processo de segmentação
• Thresholding através de um único valor pode ser interpretado matematicamente como:
Tyxfif
Tyxfifyxg
),( 0
),( 1),(
Exemplo de Thresholding
• Imagine um robô jogador de poker que necessita interpretar visualmente as cartas que possui:
Imagem original Imagem limiarizada
Cuidados na escolha do valor
• Se o valor a ser utilizado for incorreto os resultados serão insatisfatórios:
Threshold baixo demais Threshold alto demais
Thresholding Global
• Baseado no histograma de imagem
• Particiona o histograma da imagem utilizando um único valor de threshold
• O sucesso desta técnica depende de quão bom o histograma de uma imagem pode ser particionado
Algoritmo para utilização do Threshold Global
• O valor do threshold, T, é calculado da seguinte forma:
1. Selecione uma estimativa inicial de T (tipicamente o tom de cinza médio da imagem)
2. Segmentando a imagem usando T produzirá dois grupos de pixels: G1 com os pixels com valor >T e G2 com os pixels com valor ≤ T
3. Calcule a média dos tons de cinza dos pixels em G1 para gerar μ1 e G2 para gerar μ2
Algoritmo para utilização do Threshold Global
4. Calcule o novo Threshold
5. Repita os passos 2 – 4 até que a diferença entre T nas próximas iterações seja menor do que um valor T∞ pré-definido.
• Este algoritmo funciona bem para encontrar valores de threshold quando o histograma é adequado.
2
21 T
Thresholding Exemplo 1
Thresholding Exemplo 2
• Thresholding com valor único só funciona com imagens bimodais
• Imagens com outro tipo de histograma necessitam de mais do que um único valor
Problemas com Threshold simples
• Digamos que queremos
isolar o conteúdo das
garrafas
• Pense em como o histograma desta imagem seria
• O que aconteceria se utilizarmos apenas um valor?
Problemas com Threshold simples
• Se tivermos objetos iluminados e/ou com efeito de degradê, técnicas de threshold com valor único não funcionam
Threshold único e iluminação
• Uma abordagem para tratar situações onde um único valor não funciona é dividir a imagem em sub-imagens e aplicar thresholds individuais em cada sub-imagem gerada
• Uma vez sendo o threshold para cada pixel dependente de sua localização em sua sub-imagem esta técnica é considerada adaptativa
Thresholding Adaptativo
• A imagem abaixo mostra um exemplo do uso de thresholdadaptativo na imagem mostrada anteriormente
• Como pode ser observado, o sucesso é parcial
• Pode-se subdividir as áreas problemáticas para obtermos melhores resultados
Exemplo de Thresholding Adaptativo
• A operação de limiarização é considerada como sendo o particionamento dos pixels de uma imagem com L níveis de cinza em duas classes C0 eC1.
• A partição se dará no nível de cinza t.
• Desta forma temos:
C0 = {0,1,2,...,t} e C1={t+1,t+2,...,L}
Thresholding: Método de Otsu
• Este método baseia-se no histograma normalizado com uma função de densidade de probabilidade
Thresholding: Método de Otsu
L
L
i
iiii
nnnnN
ppNnp
...
1,0,/
321
1
• O método de Otsu escolhe o threshold de valor k que maximiza a variânza entre classes σB
2 que é definido como
Thresholding: Método de Otsu
L
i
iT
k
i
i
k
i
i
TB
ipL
ipk
pk
kk
kkk
1
1
1
2
2
)(
)(
)(
))(1)((
)()()(
• O limiar otimo k* está determinado por:
• Implementado em matlab através da funçãograythresh()
Thresholding: Método de Otsu
)(max*)( 2
1
2 kk BLk
B
function T = Otsu(img)h = imhist(img, 256);p = h / sum(h);omega = cumsum(p);mu = cumsum(p .* [1:256]');muT = mu(end);sigma_b = (muT .* omega - mu).^2 ./ (omega .* (1 -
omega));m = max(sigma_b);T = mean(find(sigma_b == m))
Thresholding: Método de Otsu
• A partir de um pixel inicial, chamado de semente, agrega-se outros pixels de acordo com um critério pré-estabelecido.
• Entre as características utilizadas nos critérios de agregação estão: nível de cinza, cor, textura ou estatística da população de pixels.
Segmentação por Crescimento de Regiões
Premissas:1. A região deve ser homogênea considerando algum
fator de tolerância e algumas características predefinidas;
2. Só serão consideradas “regiões fechadas” aquelas delimitadas por fronteiras contínuas que separam seu interior dos outros segmentos;
3. As características devem ser adequadas para indicar univocamente a região; e
4. O conjunto de todas as regiões deve formar a imagem
Segmentação Baseada em Regiões
Premissas:1. A região deve ser homogênea considerando algum
fator de tolerância e algumas características predefinidas;
2. Só serão consideradas “regiões fechadas” aquelas delimitadas por fronteiras contínuas que separam seu interior dos outros segmentos;
3. As características devem ser adequadas para indicar univocamente a região; e
4. O conjunto de todas as regiões deve formar a imagem
Segmentação Baseada em Regiões
• Os algoritmos para a implementação do processo de crescimento de região estão baseados na comparação dos quatro (ou oito) primeiros pixels vizinhos
Segmentação Baseada em Regiões
(1) (2)
(3) (4)
Segmentação Baseada em Regiões
O algoritmo deve:– realizar a comparação entre o pixel base e os seus vizinhos de
acordo com algum critério de agregação;– incorporar ou não estes vizinhos à região e prosseguir para um
próximo pixel para repetir o processo;– definir uma ordem de comparação com os vizinhos e como
será escolhido o próximo pixel base.
• Nota-se que em cada passo do processo, podemos ter até quatro novos pixels candidatos em relação ao pixel base na próxima interação. Ao se escolher um, deve-se manter os demais em espera e retornar a eles em algum momento.
Segmentação Baseada em Regiões
• Duas maneiras de se implementar o processo de crescimento de região descrito são:
– Com o uso de funções recursivas
– Com pilhas.
Segmentação Baseada em Regiões
Transformada de Hough
Transformada de Hough
Transformada de Hough
Transformada de Hough