1

Meine Frage betrifft die Implementierung von Faster R-CNN.Objekterkennung mit schnellerem R-CNN

las ich das Papier und wurde die config.py Datei durchlaufen, vom Autor des Algorithmus geschrieben wird, die hier zur Verfügung: https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/fast_rcnn/config.py

ich durchaus nicht in der Lage bin, das zu verstehen, warum brauchen wir BBOX_INSIDE_WEIGHTS (erwähnt bei Zeile 84) und RPN_POSITIVE_WEIGHT (in Zeile 124 erwähnt)?

In einer anderen Implementierung, ich sah auch Ankermasken (Linie 659), Regressionsankergewichte und Ankerregressionsmasken, die hier zur Verfügung stehen: https://github.com/DeepRNN/object_detection/blob/master/model.py

Kann jemand bitte die einfache und einfache Antwort geben, was diese Parameter für und warum brauchen wir sie eigentlich?

Antwort

1

In schnellen RCNN haben Sie eine RPN (Region Vorschlag Network), die einen Teil des Modells ist, und es wird mit dem gesamten Netzwerk trainiert

Die Rolle der RPN ist Box im Bild vorschlagen begrenzen, auf das einem Objekt wird geglaubt.

Für jede Position in dem Bild versucht das RPN, jeden der k vordefinierten "Anker" anzupassen, und für jeden von ihnen gibt es 4 Parameter, die den Vorschlag für den Begrenzungsrahmen relativ zum Anker und 2 Wahrscheinlichkeitswerte für definieren die Wahrscheinlichkeit, dass sich ein Objekt innerhalb der Begrenzungsbox befindet.

Die Anker sind ein vordefinierter Satz wenn Boxen mit unterschiedlichen Seitenverhältnissen und Skalen.

Wenn wir den Code unter code in Zeile 359 und 360 betrachten, wo wir den Verlust berechnen, können wir sehen, dass "Ankermasken" verwendet wird, um die Bereiche im Bild mit echten Regressionsankern zu definieren. Dies liegt daran, dass wir in der Definition der Verlustfunktion von Fast-RCNN den Verlust der Regression nur für positive Anker berechnen.

Das gleiche gilt für „anchor_reg_masks“, wie in Zeile 362. gesehen werden kann

Der Begriff „anchor_weights“ verwendet wird, um den loos0 Begriff zu normalisieren. Nach Zeile 359 hat der Verlust 0 keinen Verlust für Orte, die nicht in der Maske dafür sind, wenn wir den Verlust daraus berechnen, werden wir Verzerrungsergebnisse erhalten. Die "Ankergewichte" normalisieren den Verlust0, der nur von den wahren Ankern berechnet wird.

+0

Es bedeutet, dass Ankermasken, Anker-Regressionsgewichte und Anker-Regressionsmasken und BBOX_INSIDE_WEIGHTS die gleichen Dinge sind? Wie ich das Papier verstanden habe, gibt es zusätzlich zu Wahrscheinlichkeitsbewertungen 4 * k Ausgänge (Regressionsanteil) von RPN für jeden Ort des Bildes, wobei k die Anzahl der Anker ist. Also sollte es keine 4 * k Gewichte für den Regressionsteil des RPN geben? –