FPN(feature pyramid networks)

Ja, der Untertitel ist richtig, FPN ist eine sehr einfache Methode, die mit fast jedem Modell verwendet werden kann, um die Ergebnisse zu verbessern. Wir werden uns in Kürze mit den technischen Details des Papiers befassen, aber für diesen Blog gibt es einige Voraussetzungen, die erfüllt sein müssen. Sie sollten einen Überblick über die folgenden Themen haben: Fast RCNN, Faster RCNN, Ankerboxen, SSD-Kenntnisse sind von Vorteil. Ich habe auch Blogs zu all diesen Arbeiten, die Sie sich ansehen können (Links am Ende dieses Blogs). FPN ist relativ einfach, wenn man alle Voraussetzungen gut versteht.

Bildpyramiden (mehrere Bilder mit verschiedenen Maßstäben) werden oft bei der Vorhersage verwendet, um die Ergebnisse zu verbessern. Aber die Berechnung der Ergebnisse mit modernen Deep-Learning-Architekturen ist oft ein teurer Prozess, sowohl was die Rechenleistung als auch die Zeit angeht.

FPN basiert auf der Ausnutzung der inhärenten Multiskalen-Pyramidenhierarchie von Deep CNN. RCNN ist ein regionenbasierter Objektdetektor, bei dem wir zunächst mit einem Algorithmus wie der selektiven Suche ROI’s finden und dann diese ROI’s (ca. 2000) aus dem Bild ausschneiden und in das CNN einspeisen, um Ergebnisse zu erhalten. Bei Fast RCNN werden die anfänglichen Schichten des CNN für das gesamte Bild geteilt und das Ausschneiden der ROI’s erfolgt auf der extrahierten Feature Map, was viel Zeit spart. Im Fall von FPN basiert die Forschung auf der Ausnutzung der internen Multiskalen-Natur, und die Bildpyramide wird irgendwie intern in die Architektur implementiert und die meisten Teile des Netzwerks werden gemeinsam genutzt. Wir werden jetzt in die technischen Details einsteigen.

CNN basiert auf einer hierarchischen Struktur, in der die Auflösung der Merkmalskarte nach jeder Schicht reduziert wird, aber die Semantik, die von jeder tieferen Schicht erfasst wird, ist stärker als die vorherige Schicht. Die semantisch stärkeren Merkmale sind aufgrund des Downsamplings räumlich gröber. FPN schafft eine Architektur, bei der die semantisch stärkeren Merkmale mit den Merkmalen der vorherigen Schichten (die weniger oft unterabgetastet werden und daher genauere Lokalisierungsinformationen haben) zusammengeführt werden.

Die Architektur besteht aus zwei Pfaden:

  1. Pfad von unten nach oben (normaler Feed-Forward-CNN)
  2. Pfad von oben nach unten (neue Architektur für die Zusammenführung von Merkmalen)

FPN-Architektur Quelle: FPN paper
  • Es handelt sich um eine normale feed-forward CNN-Architektur. In dem Papier haben die Autoren die Resnet-Architektur für die Bewertung der Leistung verwendet. Wir werden zunächst die Schichten C2, C3, C4, C5 nennen, die in der Resnet-Architektur Conv 2, 3, 4 und 5 Schichten sind. Die Größe der Merkmalskarte nach Anwendung von C2 ist Bildgröße/4, und diese räumliche Dimension wird nach jeder Schicht um den Faktor 2 verkleinert.

Top-Down-Pfad (rechte Pyramide im obigen Bild)

In diesem Pfad werden tiefere Merkmale mit niedrigeren Merkmalen über seitliche Verbindungen zusammengeführt. Da die Anzahl der Kanäle der Schichten im Bottom-up-Pfad nicht die gleiche ist, wird zunächst eine 1*1-Faltung durchgeführt, um eine feste Anzahl von Kanälen für jede Schicht zu erhalten (diese Dimension wird in der Arbeit auf 256 festgelegt). Die räumliche Größe ist ebenfalls unterschiedlich, so dass wir die tieferen Merkmale hochsampeln (2x), damit die räumliche Größe dieses Merkmals mit einer höher aufgelösten Merkmalskarte der vorherigen Schicht im Bottom-Down-Pfad übereinstimmt. Jetzt sind die Dimensionen der beiden Merkmalskarten gleich und sie werden durch elementweise Addition zusammengefügt.

Wir können dies anhand eines Beispiels verstehen. Nehmen wir an, unsere Bildgröße ist 512*512, dann ist die Größe der Feature Map nach jeder Faltungsschicht (C2, C3, C4, C5). Die Anzahl der Ausgangskanäle jeder Schicht ist . Nun wenden wir eine 1*1-Faltung (mit einer Ausgangsanzahl von Kanälen = 256) auf die Ausgänge von C2, C3, C4, C5 an, um eine gleiche Anzahl von Kanälen zu erhalten. Wir nennen diese Zwischenmerkmale mit der gleichen Anzahl von Ausgangskanälen S2, S3, S4, S5 entsprechend C2, C3, C4, C5. Nun wird S5 auf 32*32 hochgerechnet und mit S4 durch elementweise Addition zusammengeführt. Nun wird diese Ausgabe auf 64*64 hochgerechnet und mit S3 zusammengeführt usw. Wir bezeichnen die Ergebnisse dieser Phase als T2, T3, T4, T5.

Um den Effekt des Aliasing aufgrund des Upsamplings zu reduzieren, wird eine 3*3-Faltung auf T2, T3, T4, T5 angewendet, um unsere endgültigen Merkmalskarten P2, P3, P4, P5 zu erhalten, die C2, C3, C4, C5 entsprechen. Diese Merkmale werden zur Erstellung der endgültigen Klassifizierungs- und Regressionsergebnisse (bbox) verwendet. Die Parameter für den Kopf können gemeinsam genutzt werden und ein separater Kopf bringt keinen zusätzlichen Nutzen.

Das war’s mit der Theorie von FPN. Aber wir werden sehen, wie FPN für Faster RCNN und Fast RCNN implementiert werden kann.

FPN für Faster RCNN

Faster RCNN verwendet Region Proposal Network. RPN wird verwendet, um Bounding-Box-Vorschläge zu generieren und diese Vorschläge werden später verwendet, um endgültige Vorhersagen zu generieren. RPN ist ein kleines Netzwerk, das über die extrahierten Merkmale der letzten Schicht (C5) implementiert wird. Auf dieses extrahierte Merkmal wird eine 3*3-Faltung angewandt, gefolgt von zwei ähnlichen 1*1-Faltungsschichten (eine für die Klassifizierung und eine für die Regression).

RPN wird hier angepasst, indem einfach eine einskalige Merkmalskarte durch FPN ersetzt wird. Somit wird RPN nun für P2-P5 und nicht nur für C5 implementiert. Für das Training von RPN werden Ankerboxen mit mehreren Skalen verwendet. Da die Mehrskaligkeit nun aber im extrahierten Merkmal enthalten ist, ist es nicht erforderlich, auf jeder Ebene mehrskalige Ankerboxen zu verwenden. Stattdessen wird jeder Ebene ein einzelner Maßstabsanker zugewiesen. Die Größe der in dieser Arbeit verwendeten Ankerboxen ist {32², 64², 128², 256², 512²} für {P2, P3, P4, P5, P6}. P6 wird hier eingeführt, damit eine große Ankerbox verwendet werden kann. P6 wird aus P5 mit Stride 2 unterabgetastet. Es werden Ankerboxen mit den Seitenverhältnissen {1:1, 1:2, 2:1} verwendet.

Diese Ankerboxen werden mit Ground-Truth-Boxen abgeglichen und das Modell wird von Ende zu Ende trainiert.

FPN für Fast RCNN

Die Implementierung des FPN in Fast RCNN ist sehr einfach. Fast RCNN verwendet Regionsvorschlagstechniken wie die selektive Suche, um ROI zu erzeugen, und verwendet ROI-Pooling auf der einskaligen Merkmalskarte, um endgültige Ergebnisse zu erhalten. Durch die Anwendung von FPN werden wir mehrere Feature-Maps mit unterschiedlichen Maßstäben haben, und wir brauchen eine Strategie, um die gegebene ROI der Feature-Map zuzuordnen (jetzt haben wir mehrere Feature-Maps, welche Feature-Map soll für die gegebene ROI verwendet werden?).

Die verwendete Feature Map wird wie folgt berechnet:

Hier ist 224 die Trainingsgröße des Bildes im imagenet-Datensatz (das verwendete resnet wird auf imagenet beibehalten). k0 ist die Merkmalskarte, der eine ROI der Größe 224 zugewiesen ist, w und h sind Breite und Höhe der ROI. Der Kopf hat gemeinsame Parameter für jede Merkmalskarte

.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.