¿Cómo evalúo el rendimiento de un algoritmo de segmentación?

8

Actualmente estoy en un proyecto de segmentación de tumores hepáticos. Segmenté el hígado usando una región en crecimiento, y tengo que evaluar qué tan preciso es el resultado. Recientemente aprendí que hay ciertas métricas para evaluar la precisión de la segmentación del algoritmo de crecimiento regional, como el coeficiente de Tanimoto, la correlación, etc. Pero no sé cómo implementarlas en Matlab. Echa un vistazo a /programming/9553204/tanimoto-coefficient-using-matlab

Gomathi
fuente
Debe elaborar qué trabajo ha realizado hasta ahora. Está bien referirse a su otra pregunta sobre el mismo tema, pero las personas deben tener una idea razonable sobre el contexto de la pregunta.
Dipan Mehta
En realidad, he utilizado el enfoque de crecimiento regional para la segmentación y extraje la región del hígado. Recientemente aprendí que hay ciertas métricas para evaluar la precisión de la segmentación del algoritmo de crecimiento regional, como el coeficiente de Tanimoto, la correlación, etc. Pero no sé cómo implementarlas en Matlab. Echa un vistazo a stackoverflow.com/questions/9553204/…. Por favor, guíame.
Gomathi
Así que has llegado más lejos de lo que nos llevas a creer. ¿Qué parte del algoritmo tiene dificultades para implementar?
Emre
@Emre: Coeficiente de Tanimoto. No sé cómo implementarlo en Matlab. Alguien me dijo que para un resultado correcto, implica varios bucles. Pero soy nuevo en Matlab y el procesamiento de imágenes. Es por eso que no puedo implementarlo. ¿Puedes guiarme amablemente?
Gomathi

Respuestas:

4

Dado que solo está trabajando en el coeficiente de Tanimoto, estoy tratando de ser más específico en lugar de dar una respuesta genérica con varios enfoques diferentes.

La notación básica del coeficiente de Tanimoto es la siguiente:

T(A,B)=NABNA+NBNAB

donde es el resultado deseado, sobre las imágenes yA BTAB

En esta medida, identificamos los píxeles como pertenecientes a un segmento dado, es decir, es un segmento de píxeles o es un fondo. refiere al número de píxeles que se clasifican como píxeles de segmento en la imagen respectiva. Y refiere al número de píxeles que se clasifican como píxeles de segmento en ambas imágenes.
N A BNNAB

En esta medida, no se calculan todos los píxeles que califican como ni en A ni B; solo los píxeles.

Además, ambas imágenes deben tener la misma resolución y deben tener ubicaciones idénticas para los objetos segmentados, incluso si la forma de segmentación es correcta, la superposición resultante puede no ser correcta.

No estoy entrando en su código MATLAB, pero aquí está el 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
fuente
Muchas gracias señor. Tengo una buena idea al respecto ahora. Intentaré implementarlo. Gracias de nuevo.
Gomathi