Técnicas de Computação Natural para Segmentação de Imagens

46
Mestrando Jackson Gomes de Souza Orientador Prof. Dr. José Alfredo F. Costa

Transcript of Técnicas de Computação Natural para Segmentação de Imagens

Page 1: Técnicas de Computação Natural para Segmentação de Imagens

Mestrando Jackson Gomes de SouzaOrientador Prof. Dr. José Alfredo F. Costa

Page 2: Técnicas de Computação Natural para Segmentação de Imagens

Motivação Segmentação de Imagens Técnicas de Computação Natural Algoritmos Genéticos Otimização por Enxames de Partículas Metodologia Detecção de aglomerados com AG e PSO Segmentação de imagens com AG e PSO Considerações finais

Page 3: Técnicas de Computação Natural para Segmentação de Imagens

Visão – Imagem – Representação do Conhecimento

Inspiração Biológica e Social para a Computação

Aplicações Visão Computacional Recuperação de Imagens Baseada em

Conteúdo Visualização de Dados Auxílio ao diagnóstico médico

Page 4: Técnicas de Computação Natural para Segmentação de Imagens

Separação ou classificação de pixelsConjuntos de pixels como objetos

Page 5: Técnicas de Computação Natural para Segmentação de Imagens

Inspiração biológica Redes Neurais

Artificiais Algoritmos

Genéticos Inspiração social

ou comportamental Inteligência de

Enxames Sistemas Imunes

Artificiais

Page 6: Técnicas de Computação Natural para Segmentação de Imagens

População de indivíduos (cromossomos = codificação da solução)

Reprodução (geração de novos indivíduos, nova população)

Herança Variação genética (mutação) Seleção natural (não aleatória,

usa medida de desempenho) Objetivo: encontrar soluções

“ótimas” (aproximadas)

Page 7: Técnicas de Computação Natural para Segmentação de Imagens

Inspiração biológica e psico-social (comportamento de bandos de pássaros) Avaliar Comparar Imitar

Vizinhança (topologias)Modelo computacional

em 1995

Page 8: Técnicas de Computação Natural para Segmentação de Imagens

Bases de dados Ruspini: 2D, simples para visualização e análise Brainweb: simulador de MRI, ground truth

Fuzzy Clustering Toolbox p/ Matlab (índices de validação)

K-means vs. Fuzzy C-means Análise quantitativa (índices de validação) Análise qualitativa (classificação) Hipótese: testes de detecção de

aglomerados servirão de guia para os testes de segmentação de imagens

Implementação dos algoritmos usando Matlab

Page 9: Técnicas de Computação Natural para Segmentação de Imagens

75 padrões

4 classes

0 20 40 60 80 100 1200

20

40

60

80

100

120

140

160Plot do conjunto de dados de teste (Ruspini)

Page 10: Técnicas de Computação Natural para Segmentação de Imagens

MSEFunção de custo J() (K-means ou

FCM) Índice SC (partição de clusters) Índice S (separação de clusters) Índice Xie-Beni Indice de Dunn

Page 11: Técnicas de Computação Natural para Segmentação de Imagens

Parâmetros Tamanho da população (np) Conjunto de dados Número de clusters (k) Número máximo de gerações (gmax) (K-means) Probabilidade de mutação (mp) Fuzzyficador (m) (FCM)

Saída Tempo de execução (em segundos) O melhor indivíduo, ou cromossomo (s) Os centróides (c) Valor de fitness do melhor indivíduo Histórico do melhor fitness durante as gerações

Page 12: Técnicas de Computação Natural para Segmentação de Imagens

1: P[0] = Initialize(); 2: BEST_TWCV = +Inf; 3: i = 1; 4: while (not Terminate()) { P[i] = Selection(P[i]); P[i] = Mutation(P[i]); P[i] = KMeans(P[i]); TWCV = Fitness(P[i]); if (TWCV < BEST_TWCV) BEST_TWCV = TWCV; i = i + 1; 5: }

Page 13: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resumo dos melhores e piores resultados de clustering para o algoritmo GKA

IV Aval. K Gmax Np Mp Tempo(s) F() 7 mse min 4 5 5 0,85 0,098 0,091

24 mse min 4 100 50 0,5 19,635 0,091 31 di max 4 5 5 0,5 0,357 0,521 48 di max 4 100 50 0,025 60,866 0,521 55 j min 4 5 5 0,025 0,024 0,807 81 j min 4 100 50 0,85 4,937 0,807

Page 14: Técnicas de Computação Natural para Segmentação de Imagens
Page 15: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resumo dos melhores e piores resultados de clustering para o algoritmo GFCMA

IV Aval. K Gmax Np Mp Tempo(s) F()

13 mse min 4 10 5 0,5 0,223 0,090 16 mse min 4 10 5 0,85 0,224 0,090 27 mse min 4 100 50 0,85 22,260 0,090 28 j min 4 5 5 0,025 0,055 4,778 37 j min 4 10 5 0,025 0,114 2,680 38 j min 4 10 20 0,025 0,431 2,670 58 xb min 4 5 5 0,5 0,098 0,843 63 xb min 4 5 50 0,85 0,854 0,825 70 xb min 4 10 5 0,85 0,276 1,920 82 s min 4 5 5 0,025 0,090 0,005 91 s min 4 10 5 0,025 0,168 0,005

105 s min 4 100 50 0,5 15,921 0,005 112 sc min 4 5 5 0,5 0,086 0,464 121 sc min 4 10 5 0,5 0,192 0,363 128 sc min 4 100 20 0,025 7,736 0,362

Page 16: Técnicas de Computação Natural para Segmentação de Imagens
Page 17: Técnicas de Computação Natural para Segmentação de Imagens

Parâmetros Tamanho da população (p) Número de clusters (k) Número máximo de iterações (tmax) Valor máximo da velocidade (vmax) Parâmetro regulador (w) Constantes (c1 e c2) Critério de parada: avalia histórico do fitness e estabilidade durante as

gerações Saída

Tempo de execução (em segundos) Melhores posições das partículas (Yp) Posições finais das partículas (X) Melhor posição (Yg) Índice da melhor partícula (Xgi) Melhor valor de fitness (Fg) Histórico do fitness Matriz de associações entre padrões e centróides (Z)

Page 18: Técnicas de Computação Natural para Segmentação de Imagens

))(())1((se)1(

))(())1((se)(1

tyftxftx

tyftxftyty

iii

iiii (2.9)

))(()),...,(()),((min,...,,)(ˆ 1010 tyftyftyfyyyty ss (2.10)

))()(ˆ)(())()()(()()1( 2211 txtytrctxtytrctwvtv ijjjijijjijij (2.11)

)1()()1( tvtxtx iii (2.13)

Page 19: Técnicas de Computação Natural para Segmentação de Imagens

1: Para cada partícula si ,...,1 faça

2: Inicialize aleatoriamente posições da partícula ix

3: Inicialize aleatoriamente (ou atribua zero) a velocidade

da partícula iv

4: ii xy

5: Fim-Para 6: Repita

7: Para cada partícula si ,...,1 faça

8: Avalie a aptidão da partícula i , )( ixf

9: Atualize iy usando (Eq. 2.9)

10: Atualize y usando (Eq. 2.10) 11: Para cada dimensão dNj ,...,1 faça

12: Atualize a velocidade usando (Eq. 2.11) 13: Fim-Para 14: Atualize a posição usando (Eq. 2.13) 15: Fim-Para 16: Até que seja satisfeito um critério de convergência

Listagem 1: Pseudocódigo para o PSO

Page 20: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resumo dos melhores e piores resultados de clustering com o algoritmo PSOKA

IV Stat. K W P Vmax C1=C2 Tempo (s) F()

3 mse min 4 0,1 30 2 1,49 1,857 0,091 16 mse min 4 0,7 5 2 2 0,223 0,091 28 j min 4 0,1 5 2 2 0,108 1,049 37 j min 4 0,7 5 2 1,49 0,125 1,391 48 j min 4 0,7 30 5 2 0,897 0,861 51 xb min 4 0,1 30 2 1,49 1,870 656176133,400 58 xb min 4 0,1 5 5 2 0,335 905349728,200 70 xb min 4 0,7 5 5 2 0,221 761935226,300

Page 21: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resumo dos melhores e piores resultados de clustering para o algoritmo PSOFCM

IV. Stat. K W P Vmax C1=C2 Tempo(s) F()

1 mse min 4 0,1 5 2 1,49 0,380 0,090 3 mse min 4 0,1 30 2 1,49 2,055 0,090

16 mse min 4 0,7 5 2 2 0,386 0,090 20 j min 4 0,1 10 2 1,49 0,377 2,671 34 j min 4 0,7 5 2 2 0,347 2,673 38 xb min 4 0,1 10 2 1,49 0,442 0,968 52 xb min 4 0,7 5 2 2 0,219 1,333 58 xb min 4 0,7 5 5 2 0,226 1,333 62 s min 4 0,1 10 2 1,49 0,508 0,005 71 s min 4 0,1 10 5 2 0,435 0,005 82 s min 4 0,7 5 5 2 0,590 0,005 86 sc min 4 0,1 10 2 1,49 0,491 0,362 89 sc min 4 0,1 10 2 2 0,48807 0,362

106 sc min 4 0,7 5 5 2 0,50754 0,363

Page 22: Técnicas de Computação Natural para Segmentação de Imagens

Algoritmos Genéticos mp (pouco relevante) 5 <= gmax <= 10; np = 5 Índice DI: inviável para grandes conjuntos

de dados, como imagens Índice XB: comportamento irregular

Otimização por Enxames de Partículas w = 0.1; p = 10; vmax = 2; c1 = c2 = 1.49

Page 23: Técnicas de Computação Natural para Segmentação de Imagens

Imagens de Ressonância Magnética (MRI)

Simulador BrainWeb Modalidade de pulso (T1,

T2, PD) Espessura da fatia Ruído Não-uniformidade da

intensidade Modelo crisp e fuzzy Imagens de intensidade

[0,1000] Normalização [0,1] Download de imagens no

formato MINC

Page 24: Técnicas de Computação Natural para Segmentação de Imagens

10 classes (b) Background (c) CSF (d) Gray matter (e) White matter (f) Fat (g) Muscle (h) Peal (i) Skull (j) Glial matter (k) Connective (model)

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

(j)

(k)

Page 25: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

Figura 1: Exemplos de fatias de imagens nos modelos T1 (a), T2 (b) e PD (c)

Page 26: Técnicas de Computação Natural para Segmentação de Imagens

imagens resultantes de simulação na modalidade T1, com baixo ruído

imagem_intensidade Considera os pixels

imagem_textura Considera características de textura Janela 5 x 5 Estatísticas

▪ Média▪ Desvio-padrão▪ Variância▪ Co-variância▪ Coeficiente de correlação

Page 27: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagens para o algoritmo GKA considerando o conjunto de dados imagem_textura

# IV K Gmax Np Mp Tempo (s) F()

1 mse 10 10 5 0,025 19,360 0,107

2 mse 10 20 5 0,025 40,710 0,098

3 j 10 10 5 0,025 19,504 1193,152

4 j 10 20 5 0,025 37,428 695,837

5 xb 10 10 5 0,025 19,973 9,765

6 xb 10 20 5 0,025 39,690 8,061

Page 28: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo GKA considerando o conjunto de dados imagem_textura; (a-c) índice J; (d-f) índice MSE; (g-i) índice XB

Page 29: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagens para o algoritmo GKA considerando o conjunto de dados imagem_intensidade

# IV K Gmax Np Mp Tempo (s) F()

1 mse 10 10 5 0,025 11,894 0,016 2 mse 10 20 5 0,025 24,048 0,014 3 j 10 10 5 0,025 11,316 19,698 4 j 10 20 5 0,025 22,628 21,774 5 xb 10 10 5 0,025 13,771 225,876 6 xb 10 20 5 0,025 25,813 190,194

Page 30: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo GKA considerando o conjunto de dados imagem_intensidade; (a-c) índice J; (d-f) índice MSE; (g-i) índice XB

Page 31: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagens para o algoritmo GFCMA considerando o conjunto de dados imagem_textura

# IV K m Gmax Np Mp Tempo (s) F()

1 mse 10 2 10 5 0,025 26,221 0,044 2 mse 10 2 20 5 0,025 43,688 0,042 3 j 10 2 10 5 0,025 20,836 591,725 4 j 10 2 20 5 0,025 40,531 571,499 5 xb 10 2 10 5 0,025 23,045 3,941 6 xb 10 2 20 5 0,025 45,360 3,941

Page 32: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo GFCMA considerando o conjunto de dados imagem_textura; (a-c) índice J; (d-f) índice MSE; (g-i) índice XB

Page 33: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagens para o algoritmo GFCMA considerando o conjunto de dados imagem_intensidade

IV K m Gmax Np Mp Tempo (s) F()

1 mse 10 2 10 5 0,025 13,145 0,014 2 mse 10 2 20 5 0,025 24,302 0,013 3 j 10 2 10 5 0,025 11,254 109,282 4 j 10 2 20 5 0,025 22,202 101,213 5 xb 10 2 10 5 0,025 13,358 153,075 6 xb 10 2 20 5 0,025 26,289 137,907

Page 34: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo GFCMA considerando o conjunto de dados apenas com informações de intensidade dos pixels; (a-c) índice J; (d-f) índice

MSE; (g-i) índice XB

Page 35: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagem para o algoritmo PSOKA, considerando o conjunto de dados imagem_textura

IV K W P Vmax C1 = C2 Tempo (s) F()

1 mse 10 0,1 10 2 1,49 51,810 0,092 2 j 10 0,1 10 2 1,49 44,076 798,377 3 xb 10 0,1 10 2 1,49 69,644 443508103,800

Page 36: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo PSOKA considerando o conjunto de dados com informações de textura; (a-c) índice MSE; (d-f) índice J; (g-i) índice XB

Page 37: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagem para o algoritmo PSOKA, considerando o conjunto de dados imagem_intensidade

# IV K W P Vmax C1 = C2 Tempo (s) F()

1 mse 10 0,1 10 2 1,49 26,843 0,015 2 j 10 0,1 10 2 1,49 25,425 25,948 3 xb 10 0,1 10 2 1,49 38,845 166669812,500

Page 38: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo PSOKA considerando o conjunto de dados apenas com informações de intensidade dos pixels; (a-c) índice MSE; (d-f) índice

J; (g-i) índice XB

Page 39: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagem para o algoritmo PSOFCM, considerando o conjunto de dados com informações de textura

# IV K W P Vmax C1 = C2 Tempo (s) F()

1 mse 8 0,1 10 2 1,49 268,418 0,083 2 j 8 0,1 10 2 1,49 445,997 2250,381 3 xb 8 0,1 10 2 1,49 49,069 1,198

Page 40: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo PSOFCM considerando o conjunto de dados imagem_textura; (a-c) índice MSE; (d-f) índice J; (g-i) índice XB

Page 41: Técnicas de Computação Natural para Segmentação de Imagens

Tabela 1: Resultados de segmentação de imagem para o algoritmo PSOFCM, considerando o conjunto de dados imagem_intensidade

# IV K W P Vmax C1 = C2 Tempo (s) F()

1 mse 10 0,1 10 2 1,49 287,491 0,013 2 j 10 0,1 10 2 1,49 278,268 93,492 3 xb 10 0,1 10 2 1,49 41,116 129,125

Page 42: Técnicas de Computação Natural para Segmentação de Imagens

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

Figura 1: Resultados de segmentação de imagem para o algoritmo PSOFCM considerando o conjunto de dados imagem_intensidade; (a-c) índice MSE; (d-f) índice J; (g-i) índice XB

Page 43: Técnicas de Computação Natural para Segmentação de Imagens

Uma região da imagem com degradê causou comportamento inadequado, contornado com o uso de informações de textura

(a) (b) (c)

Figura 1: Comparativo entre a imagem original e alguns resultados com algoritmos PSOKA e PSOFCM

Page 44: Técnicas de Computação Natural para Segmentação de Imagens

Melhores resultados com FCM (embora com maior tempo)

Em seg. imagens, AG foi melhor (tempo e análise visual)

Algoritmo IV Tempo (s) F()

Conjunto de dados: imagem_intensidade

GFCMA J 22,202 101,213 GKA J 22,628 21,774 PSOFCM J 278,268 93,492 PSOKA J 25,425 25,948

GFCMA MSE 13,145 0,014 GKA MSE 24,048 0,014 PSOFCM MSE 287,491 0,013 PSOKA MSE 26,843 0,015

GFCMA XB 26,289 137,907 GKA XB 25,813 190,194 PSOFCM XB 41,116 129,125 PSOKA XB 38,845 166669812,500

Conjunto de dados: imagem_textura

GFCMA J 40,531 571,499 GKA J 37,428 695,837 PSOFCM J 445,997 2250,381 PSOKA J 44,076 798,377

GFCMA MSE 43,688 0,042 GKA MSE 40,710 0,098 PSOFCM MSE 268,418 0,083 PSOKA MSE 51,810 0,092

GFCMA XB 23,045 3,941 GKA XB 39,690 8,061 PSOFCM XB 49,069 1,198 PSOKA XB 69,644 443508103,800

Page 45: Técnicas de Computação Natural para Segmentação de Imagens

Critério de parada de PSO (K-means e FCM) é mais adequado (estabilidade relativa)

PSO encontra valores um pouco mais próximos do ótimo (análise quantitativa), mas a qualidade é menor do que AG (análise qualitativa)

Alto tempo de computação, principalmente considerando PSO

Com maior tempo de computação, resultados ainda mais próximos do ótimo (viabilidade?)

Considerar os resultados de clustering como base para definir parâmetros de seg. de imagens foi uma boa abordagem

Page 46: Técnicas de Computação Natural para Segmentação de Imagens

Viabilidade dos algoritmos em ambientes reais?

Imagens do Brainweb foram relativamente úteis (necessidade de imagens reais)

Método de avaliação qualitativa é útil para avaliação supervisionada (necessidade de um método de avaliação não-supervisionada)

Trabalhos posteriores poderiam incluir Verificações de implementações paralelas, em

outras plataformas e linguagens de programação (ex.: C++, Java)

Testes com outros índices de validação Clustering dinâmico