Como avalio o desempenho de um algoritmo de segmentação?

8

Atualmente, estou em um projeto de segmentação de tumores hepáticos. Segmente o fígado usando a região em crescimento e tenho que avaliar a precisão do resultado. Recentemente, aprendi que existem certas métricas para avaliar a precisão da segmentação de algoritmos em crescimento na região, como o coeficiente de Tanimoto, a correlação etc. Mas não sei como implementá-las no Matlab. Confira /programming/9553204/tanimoto-coefficient-using-matlab

Gomathi
fonte
Você deve elaborar o trabalho que você fez até agora. Não há problema em se referir à sua outra pergunta sobre o mesmo tópico, mas as pessoas devem ter uma idéia razoável sobre o contexto da pergunta.
Dipan Mehta 16/03/12
Na verdade, usei a abordagem de crescimento por região para segmentação e extraí a região do fígado. Recentemente, aprendi que existem certas métricas para avaliar a precisão da segmentação de algoritmos em crescimento na região, como o coeficiente de Tanimoto, a correlação etc. Mas não sei como implementá-las no Matlab. Confira stackoverflow.com/questions/9553204/… Por favor, me guie.
Gomathi 16/03/12
Então você chegou mais longe do que você nos leva a acreditar. Qual parte do algoritmo você está tendo dificuldades em implementar?
Emre
@Emre: Coeficiente Tanimoto. Não sei como implementá-lo no Matlab. Alguém me disse que, para um resultado correto, envolve vários loops. Mas, sou novo no Matlab e no processamento de imagens. É por isso que sou incapaz de implementá-lo. Você pode gentilmente me guiar?
Gomathi 22/03/12

Respostas:

4

Como você está trabalhando apenas no coeficiente de Tanimoto, estou tentando ser mais específico, em vez de dar uma resposta genérica com várias abordagens diferentes.

A notação básica do coeficiente de Tanimoto é a seguinte:

T(UMA,B)=NUMABNUMA+NB-NUMAB

onde é o resultado desejado, sobre as imagens eTUMAB

Nesta medida, identificamos pixels como pertencentes a um determinado segmento, ou seja, é um segmento de pixel ou um plano de fundo. refere-se ao número de pixels que são classificados como pixel de segmento na respectiva imagem. E refere-se ao número de pixels que são classificados como pixel de segmento nas duas imagens.
NNUMAB

Nesta medida, todos os pixels que se qualificam nem em A nem em B não são calculados; somente os pixels.

Além disso, ambas as imagens devem ter a mesma resolução e locais idênticos aos dos objetos segmentados, mesmo que a forma da segmentação esteja correta, a sobreposição resultante pode não estar correta.

Não estou entrando no seu código do MATLAB, mas aqui está o pseudo-código que se parece.

Initialize N_A, N_B, N_AB;
for( all pixels @ x,y) 
{
   if(image_A[x][y] == SEGMENT_CLASS_PIXEL) 
    N_A += 1;

   if(image_B[x][y] == SEGMENT_CLASS_PIXEL) 
    N_A += 1;

   if(image_A[x][y] == SEGMENT_CLASS_PIXEL 
      && image_B[x][y] == SEGMENT_CLASS_PIXEL) 
    N_AB += 1;

}

T = N_AB / (N_A + N_B - N_AB); 
Dipan Mehta
fonte
Muito obrigado senhor. Eu tenho uma boa idéia sobre isso agora. Vou tentar implementá-lo. Obrigado novamente.
Gomathi 27/03