Ausführliche Erklärung des unet-Netzwerks

Träume

  • Referenz: U-Net: Convolutional Networks for Biomedical
    Image Segmentation
  • 作者:Olaf Ronneberger, Philipp Fischer, and Thomas Brox

Was ist das Unet-Modell?

Unet ist ein ausgezeichnetes semantisches Segmentierungsmodell, und sein Hauptausführungsprozess ähnelt anderen semantischen Segmentierungsmodellen. Der Unterschied zu CNN besteht darin, dass CNN eine Klassifizierung auf Bildebene ist, während unet eine Klassifizierung auf Pixelebene ist und seine Ausgabe die Kategorie jedes Pixels ist.

Unet-Loss-Funktion

Hauptteil: Softmax-Aktivierungsfunktion + gewichtete Querentropieverlustfunktion + Gewichtsberechnungsfunktion

Softmax-Aktivierungsfunktion

Die Softmax-Aktivierungsfunktion überlagert nichtlinear die Eingabemerkmale und Gewichtungen jedes Pixels. Nachdem jedes Pixel von Softmax verarbeitet wurde, entspricht die Anzahl der Ausgabewerte der Anzahl der Kategorien im Etikett. Softmax wandelt den Ausgabewert jedes Pixels in eine Wahrscheinlichkeitsverteilung um, deren Wert positiv ist und sich zu 1 summiert, um das Vertrauen jeder Klasse in jedem Pixel zu erhalten.

Entropieverlustfunktion kreuzen

Kreuzentropieverlustfunktion: Eine Messfunktion, die verwendet wird, um die Differenz zwischen zwei Wahrscheinlichkeitsverteilungen zu messen

Bildbeschreibung hier einfügen

In der obigen Formel stellt yc die wahre Verteilung der Stichprobe dar, sein Wert ist entweder 0 oder 1 und Pc stellt die vorhergesagte Verteilung der Stichprobe dar.

Dieses Papier verwendet eine Cross-Entropie-Verlustfunktion mit Grenzgewichten :

p ist der Ausgangswert nach der Softmax-Verarbeitung;

l : Ω → {1, . . . , K}, ist das wahre Etikett jedes Pixels;

pl(x)(x): Punkt x ist der Aktivierungswert der Ausgabe der Kategorie, die durch das entsprechende Label gegeben ist.

w : Ω → R ist die Gewichtung, die jedem Pixel während des Trainings hinzugefügt wird.

Gewichtsberechnungsfunktion

Die Formel w(x) bezieht sich hauptsächlich auf die Formel der Normalverteilung.
wc(x) wird für jede Ground-Truth-Segmentierung vorberechnet, um die unterschiedlichen Häufigkeiten von Pixeln jeder Klasse im Trainingsdatensatz zu kompensieren; d1 ist
der Abstand zur nächsten Zellgrenze,
d2 ist der Abstand zur zweitnächsten Zellgrenze

Wenn sowohl d1 als auch d2 gleich 0 sind, hat der letzte Teil einen maximalen Wert, und je kleiner d1 und d2 sind, desto größer ist der letzte Teil, das heißt, desto größer ist das Gesamtgewicht. Wenn d1 und d2 kleiner sind, bedeutet dies, je näher an der Zellgrenze, desto größer das Gewicht der Zellgrenze, was das Netzwerk zum Lernen zwingen kann.

Die Rolle der Gewichtung: Die Gewichtung kann die Wichtigkeit eines bestimmten Bereichs im Bild anpassen. Bei der Berechnung des Verlusts wird die Gewichtung des Verlusts dem Randteil hinzugefügt, an dem sich die beiden Zellen überlappen, damit das Netzwerk mehr Aufmerksamkeit schenkt zu dieser Art von überlappenden Kanteninformationen.

Zusammenfassung: Verwenden Sie zuerst die Softmax-Operation, um das Vertrauen jeder Klasse zu erhalten, und verwenden Sie dann die Kreuzentropie, um die Lücke zwischen der Vorhersage und dem Etikett zu messen.

Unet Hauptstruktur

Bildbeschreibung hier einfügen

Unet kann in drei Teile unterteilt werden, wie in der Abbildung oben gezeigt:

Der erste Teil ist der Backbone-Feature-Extraktionsteil. Wir können den Backbone-Teil verwenden, um Feature-Layer nacheinander zu erhalten. Der Backbone-Feature-Extraktionsteil von Unet ähnelt VGG, einem Stapel aus Faltung und maximalem Pooling. Mit dem Backbone-Feature-Extraktionsteil können wir fünf vorläufige effektive Feature-Layer erhalten, die wir im zweiten Schritt für die Feature-Fusion verwenden werden.

Der zweite Teil besteht darin, den Merkmalsextraktionsteil zu verstärken.Wir können die fünf im Backbone-Teil erhaltenen vorläufigen effektiven Merkmalsschichtenverwenden, um Upsampling und Merkmalsfusion durchzuführen, um eine endgültigeeffektive Merkmalsschicht zu erhalten, die alle Merkmale integriert.

Der dritte Teil stellt den Vorhersageteil dar. Wir verwenden den endgültigen effektiven Feature-Layer, um jeden Feature-Punkt zu klassifizieren, was der Klassifizierung jedes Pixelpunkts entspricht.

Backbone Feature Extraction Network

Der Hauptteil der Merkmalsextraktion von Unet besteht aus einer Faltungsschicht + einer maximalen Pooling-Schicht, und die Gesamtstruktur ähnelt der von VGG.

Bildbeschreibung hier einfügenWenn die Eingangsbildgröße 512 x 512 x 3 beträgt, ist die spezifische Ausführungsmethode wie folgt:
1. conv1: Falte die 64 Kanäle von [3,3] zweimal, um eine vorläufige effektive Feature-Schicht von [512,512,64] zu erhalten, und führe dann 2X2 Max aus Pooling, um einen [256,256,64]-Feature-Layer zu erhalten.
2. conv2: Führen Sie zwei Faltungen von 128 Kanälen von [3,3] durch, um eine vorläufige effektive Feature-Schicht von [256,256,128] zu erhalten, und führen Sie dann ein maximales 2X2-Pooling durch, um eine Feature-Schicht von [128,128,128] zu erhalten.
3. conv3: Führen Sie drei Faltungen von 256 Kanälen von [3,3] durch, um eine vorläufige effektive Feature-Schicht von [128,128,256] zu erhalten, und führen Sie dann ein maximales 2X2-Pooling durch, um eine Feature-Schicht von [64,64,256] zu erhalten.
4. conv4: Führe drei Faltungen von [3,3] mit 512 Kanälen durch, um eine vorläufige effektive Feature-Schicht von [64,64,512] zu erhalten, und führe dann ein maximales 2X2-Pooling durch, um eine Feature-Schicht von [32,32,512] zu erhalten.
5. conv5: Führe drei Faltungen von 512 Kanälen von [3,3] durch, um eine vorläufige effektive Merkmalsschicht von [32,32,512] zu erhalten.
Bildbeschreibung hier einfügen

Warum 572x572, nicht 512x512?

Bild

Da der Bildblock am Bildrand keine umgebenden Pixel hat, verliert die Faltung die Information am Bildrand, sodass die Spiegelerweiterung für die umgebenden Pixel verwendet wird.

Verbesserte Merkmalsextraktionsstruktur

Mit dem ersten Schritt können wir fünf vorläufige effektive Feature-Layer erhalten . Bei der Stärkung des Feature-Extraction-Netzwerks werden wir diese fünf vorläufigen effektiven Feature-Layer für die Feature-Fusion verwenden . Die Methode der Feature-Fusion besteht darin , die Feature-Layer hochzusampeln und Stack auszuführen .

Um den Aufbau des Netzwerks und eine bessere Vielseitigkeit zu erleichtern, unterscheidet sich unser Unet geringfügig von der Unet-Struktur im obigen Bild. Beim Upsampling führen wir direkt zweimal Upsampling durch und führen dann die Feature-Fusion durch . Die letzte Feature-Schicht und die Höhe der Eingangsbild gleich breit.

Bildbeschreibung hier einfügen

Verwenden Sie Funktionen, um Vorhersagen zu erhalten

Der Prozess der Verwendung von Features zum Erhalten von Vorhersageergebnissen ist:
Verwenden Sie einen 1x1-Faltungskern für die Kanalanpassung und passen Sie die Anzahl der Kanäle in der endgültigen Feature-Schicht auf num_classes an.

Bildbeschreibung hier einfügen

Code-Wiedergabe

Datensatz: ISBI

Modelltraining:

Bildbeschreibung hier einfügen

Test-Set:
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Ich denke du magst

Origin blog.csdn.net/qq_58529413/article/details/125704059
Empfohlen
Rangfolge