Wie bewerte ich die Leistung eines Segmentierungsalgorithmus?

8

Ich bin derzeit an einem Projekt zur Segmentierung von Lebertumoren. Ich habe die Leber anhand der wachsenden Region segmentiert und muss beurteilen, wie genau das Ergebnis ist. Ich habe kürzlich erfahren, dass es bestimmte Metriken gibt, mit denen die Genauigkeit der Segmentierung des Algorithmus mit wachsender Region beurteilt werden kann, z. B. Tanimoto-Koeffizient, Korrelation usw. Aber ich weiß nicht, wie ich sie in Matlab implementieren soll. Überprüfen Sie /programming/9553204/tanimoto-coefficient-using-matlab

Gomathi
quelle
Sie sollten näher erläutern, welche Arbeit Sie bisher geleistet haben. Es ist in Ordnung, sich auf Ihre andere Frage zum selben Thema zu beziehen, aber die Leute sollten eine vernünftige Vorstellung vom Kontext der Frage haben.
Dipan Mehta
Eigentlich habe ich den Ansatz des Regionswachstums für die Segmentierung verwendet und die Leberregion extrahiert. Ich habe kürzlich erfahren, dass es bestimmte Metriken gibt, mit denen die Genauigkeit der Segmentierung des Algorithmus mit wachsender Region beurteilt werden kann, z. B. Tanimoto-Koeffizient, Korrelation usw. Aber ich weiß nicht, wie ich sie in Matlab implementieren soll. Check out stackoverflow.com/questions/9553204/… Bitte führen Sie mich.
Gomathi
Sie sind also weiter gekommen, als Sie uns glauben machen. Welchen Teil des Algorithmus haben Sie Schwierigkeiten bei der Implementierung?
Emre
@ Emre: Tanimoto-Koeffizient. Ich weiß nicht, wie ich es in Matlab implementieren soll. Jemand sagte mir, dass für ein korrektes Ergebnis mehrere Schleifen erforderlich sind. Aber ich bin neu in Matlab und Bildverarbeitung. Deshalb kann ich es nicht implementieren. Können Sie mich freundlich führen?
Gomathi

Antworten:

4

Da Sie nur am Tanimoto-Koeffizienten arbeiten, versuche ich, spezifischer zu sein, anstatt generische Antworten mit verschiedenen Ansätzen zu geben.

Die Grundnotation des Tanimoto-Koeffizienten lautet wie folgt:

T.(EIN,B.)=N.EINB.N.EIN+N.B.- -N.EINB.

T.EINB.


N.N.EINB.

In diesem Maß werden nicht alle Pixel berechnet, die als weder in A noch in B qualifiziert sind. nur die Pixel.

Außerdem müssen beide Bilder dieselbe Auflösung und identische Positionen für die segmentierten Objekte haben, auch wenn die Segmentierungsform richtig ist, ist die resultierende Überlappung möglicherweise nicht richtig.

Ich komme nicht in Ihren MATLAB-Code, aber hier ist der Pseudocode, der aussieht.

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
quelle
Vielen vielen Dank, Sir. Ich habe jetzt eine gute Idee. Ich werde versuchen, es umzusetzen. Danke noch einmal.
Gomathi