Come posso valutare le prestazioni di un algoritmo di segmentazione?


8

Attualmente sto lavorando a un progetto di segmentazione del tumore al fegato. Ho segmentato il fegato usando la regione in crescita e devo valutare quanto sia accurato il risultato. Recentemente ho appreso che ci sono alcune metriche per valutare l'accuratezza della segmentazione dell'algoritmo in crescita della regione, come Tanimoto Coefficient, Correlation, ecc. Ma non so come implementarle in Matlab. Dai un'occhiata a /programming/9553204/tanimoto-coefficient-using-matlab



Dovresti approfondire quale lavoro hai svolto finora. Va bene fare riferimento a un'altra domanda sullo stesso argomento, ma le persone dovrebbero avere un'idea ragionevole del contesto della domanda.
Dipan Mehta,

In realtà ho usato l'approccio di crescita regionale per la segmentazione ed estratto la regione del fegato. Recentemente ho appreso che ci sono alcune metriche per valutare l'accuratezza della segmentazione dell'algoritmo in crescita della regione, come Tanimoto Coefficient, Correlation, ecc. Ma non so come implementarle in Matlab. Dai un'occhiata a stackoverflow.com/questions/9553204/… Gentilmente guidami .
Gomathi,

Quindi sei diventato più lontano di te e ci induci a credere. Quale parte dell'algoritmo hai difficoltà a implementare?
Emre,

@Emre: Tanimoto Coefficient. Non so come implementarlo in Matlab. Qualcuno mi ha detto che per un risultato corretto, coinvolge diversi loop. Ma sono nuovo a Matlab e all'elaborazione delle immagini. Ecco perché non sono in grado di implementarlo. Potete gentilmente guidarmi?
Gomathi,

Risposte:


4

Dato che stai lavorando solo su Tanimoto Coefficient, sto cercando di essere più specifico piuttosto che dare una risposta generica con vari approcci diversi.

La notazione di base del coefficiente Tanimoto è la seguente:

T(UN,B)=NUNBNUN+NB-NUNB

dove è il risultato desiderato, sulle immagini eTUNB

In questa misura, identifichiamo i pixel come appartenenti a un determinato segmento, ovvero è pixel di segmento o è sfondo. riferisce al numero di pixel classificati come pixel di segmento nella rispettiva immagine. E riferisce al numero di pixel che sono classificati come pixel di segmento in entrambe le immagini.
NNUNB

In questa misura non vengono calcolati tutti i pixel che non si qualificano né in A né in B; solo i pixel.

Inoltre, entrambe le immagini devono avere la stessa risoluzione e devono avere posizioni identiche a quelle per gli oggetti segmentati, anche se la forma della segmentazione è corretta, la sovrapposizione risultante potrebbe non essere corretta.

Non sto inserendo il tuo codice MATLAB, ma ecco lo pseudo codice che sembra.

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); 

Grazie molte signore. Ne ho una buona idea ora. Proverò ad implementarlo. Grazie ancora.
Gomathi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.