Schnelleres Verankern RCNN

10

Was bedeuten sie im schnelleren RCNN-Artikel, wenn es um die Verankerung geht, unter Verwendung von "Pyramiden von Referenzboxen" und wie wird dies getan? Bedeutet dies nur, dass an jedem der W * H * k-Ankerpunkte ein Begrenzungsrahmen erzeugt wird?

Wobei W = Breite, H = Höhe und k = Anzahl der Seitenverhältnisse * Anzahl Skalen

Link zum Papier: https://arxiv.org/abs/1506.01497

BadProgrammer
quelle
Das ist eine sehr gute Frage.
Michael R. Chernick

Antworten:

10

Anker erklärt

Anker

(HfeaturemapWfeaturemap)(k)von ihnen, aber sie entsprechen dem Bild. Für jeden Anker sagt die RPN dann die Wahrscheinlichkeit voraus, dass ein Objekt im Allgemeinen enthalten ist, und vier Korrekturkoordinaten, um den Anker an die richtige Position zu bewegen und seine Größe zu ändern. Aber wie hat die Geometrie der Anker etwas mit dem RPN zu tun?

In der Verlustfunktion werden tatsächlich Anker angezeigt

Beim Training des RPN wird zunächst jedem Anker eine binäre Klassenbezeichnung zugewiesen. Anker mit Intersection-over-Union ( IoU ) überlappen sich mit einer Ground-Truth-Box, die höher als ein bestimmter Schwellenwert ist, und erhalten eine positive Bezeichnung (ebenfalls werden Anker mit IoUs, die unter einem bestimmten Schwellenwert liegen, als negativ bezeichnet). Diese Bezeichnungen werden weiter verwendet, um die Verlustfunktion zu berechnen:

RPN-Verlustfunktion

ppt

Geben Sie hier die Bildbeschreibung ein

x,y,w,x,xa,xy,w,h

Beachten Sie auch, dass Anker ohne Beschriftung weder klassifiziert noch umgeformt werden und die Drehzahl sie einfach aus den Berechnungen herauswirft. Sobald die Arbeit des RPN erledigt ist und die Vorschläge generiert wurden, ist der Rest den schnellen R-CNNs sehr ähnlich.

Mahan Fathi
quelle
@Fathi Was ist, wenn wir viele Klassen haben? Soweit ich weiß, wird in Fast R-CNN jedem Trainings-RoI eine Grundwahrheitsklasse zugewiesen. Also, ich denke, hier passiert etwas Ähnliches?
thanasissdr
@Fathi Ich stimme vollkommen mit dem überein, was du sagst, also nimmst du mir wohl an. Ich meine, die Autoren des Originalpapiers für Faster R-CNN haben der Einfachheit halber nur zwei Klassen (Hintergrund / Objekt) verwendet, um zu erklären, wie RPN funktioniert, oder? Anstatt nur zwei Klassen zu haben, könnte ich mehr als nur zwei haben und ich denke, ich könnte die bekannte Kreuzentropieverlustfunktion übernehmen, oder?
thanasissdr
@thanasissdr Die Grundidee hinter Faster R-CNN war: "Wenn neuronale Netze in allem anderen so gut sind, warum nicht auch für Vorschläge für Regionen verwenden?" Beim Vergleich von schnellem R-CNN mit Standard-R-CNN besteht der einzige Unterschied darin, dass RoI-Vorschläge - die wiederum mit denselben alten Techniken wie SelectiveSearch oder EdgeBoxes erstellt wurden - vom Rohbild auf die Faltungsmerkmale abgebildet und dann weitergeleitet werden die FCs. Auf diese Weise wird der Vorwärtsdurchlaufprozess jedes RoI durch CNN weggelassen.
Mahan Fathi
In Faster R-CNN lernt das RPN , geeignete Regionen vorzuschlagen. Sobald die RPN abgeschlossen ist, ähnelt der Rest Fast R-CNN, und FCs klassifizieren und regressieren die Vorschläge.
Mahan Fathi
@thanasissdr Ja. Wir sind auf der selben Seite. Ich nehme an, Sie können in RPN klassifizieren, aber das wäre unnötig, da das FC-Netz die Klassifizierung erneut durchführt und keine Schwierigkeiten hat, Junk-Vorschläge abzulehnen. Denken Sie auch an die Pipeline, wie werden Sie die Klassifizierungswerte verwenden und wie würden sie hilfreich sein? Mein letzter Standpunkt ist, dass die Klassifizierung (Hintergrund / Objekt) ein Eckpfeiler von Faster R-CNN ist.
Mahan Fathi
1

Ich habe diese Zeitung gestern gelesen und auf den ersten Blick war sie auch für mich verwirrend. Nach dem erneuten Lesen kam ich zu folgendem Schluss:

  • Die letzte Schicht des ursprünglichen Netzwerks (ZF oder VGG-16) dient als Eingabe für das Region Proposal Network und das RoI-Pooling. Im Fall des VGG-16 ist diese letzte Conv-Schicht a 7x7x512 (HxWxD).
  • Diese Schicht wird mit einer 3x3Conv-Schicht auf eine 512-dimensionale Schicht abgebildet . Die Ausgabegröße ist 7x7x512(wenn Padding verwendet wird).
  • Diese Ebene wird einer 7x7x(2k+4k)(z. B. 7x7x54) Ebene mit einer 1x1Conv-Ebene für jede der kAnkerkästen zugeordnet.

Gemäß Abbildung 1 im Papier können Sie nun eine Pyramide von Eingabebildern (dieselben Bilder mit einem anderen Maßstab), eine Pyramide von Filtern (Filter mit einem anderen Maßstab, in derselben Ebene) oder eine Pyramide von Referenzfeldern haben. Letzteres bezieht sich auf die kAnkerkästen auf der letzten Ebene des Regionsvorschlagsnetzwerks. Anstelle von Filtern mit unterschiedlichen Größen, die übereinander gestapelt sind (mittlerer Fall), werden Filter mit unterschiedlichen Größen und Seitenverhältnissen übereinander gestapelt.

Kurz gesagt, für jeden Ankerpunkt ( HxWz. B. 7x7) wird eine Pyramide von Referenzfeldern ( kz 9. B. ) verwendet.

Pieter
quelle
aber was genau ist eine Ankerkiste? Wird der Zweck jeder Ankerbox als Eingabe in die RPN verwendet, um ein Delta in der Breite und Höhe der Ankerbox für jede Ankerbox vorherzusagen, die als Teil des Vordergrunds betrachtet wird?
BadProgrammer
Die RPN sagt sowohl die Delta-Verschiebung der Vordergrundposition als auch die Objektitätsbewertung voraus. Letzterer versucht explizit vorherzusagen, ob es sich um Hintergrund oder Vordergrund handelt (siehe auch Fußnote 3).
Pieter
Können Sie erklären, wie sich eine 3x3Conv-Ebene übersetzt 7x7? Im Prototxt heißt es, dass die Polsterung auf der letzten VGG16-Schicht 1 ist.
Klik