[PYTHON] Ich habe versucht, das neueste Haltungsschätzungsmodell "Dark Pose" [CVPR2020] zu erklären.

Einführung

Dieses Mal werden wir das Papier "** DARK **" zum 2D-Modell der Haltungsschätzung aus den neuesten im Jahr 2020 angenommenen Papieren vorstellen.

Im Modell der Haltungsschätzung ist die ** Wärmekarte ** zum Standard für die Koordinatendarstellung geworden, wurde jedoch nie systematisch untersucht.

Das diesmal vorgestellte Papier ist ein Papier, das die Wärmekarte systematisch untersucht und dann eine neue Koordinatendarstellung vorschlägt.

Beispiel für eine Heatmap: Aus gestapelten Sanduhrnetzwerken zur Optimierung der menschlichen Pose [^ 0] </ font>

Drei Hauptpunkte dieses Papiers

: white_check_mark: * Erreicht *** SOTA [^ 1](AP: 77.4) *** für COCO-Datensatz! * *

: white_check_mark: * Heatmap aktualisiert * ** Codierungsmethode ***! * *

: white_check_mark: * Heatmap aktualisiert * ** Decodierungsmethode ***! * *

Vorgeschlagene Methode

Beim Trainieren eines Klassifikators wird häufig ein One-Hot-Vektor verwendet. Bei CNN-Modellen wie der Posenschätzung wird jedoch häufig eine Wärmekarte verwendet.

Das Wärmekartendarstellungsverfahren hat jedoch den ** Nachteil **, dass die Berechnungskosten mit dem Quadrat der Auflösung des Eingabebildes ** zunehmen, so dass es notwendig ist, das Bild zu komprimieren, bevor es durch das Modell geleitet wird. Aus dem gleichen Grund ist auch die Auflösung des Ausgabebildes gering, sodass das Ausgabebild auf die Größe des Originalbilds zurückgesetzt werden muss.

In diesem Artikel wurden diese ** Komprimierung (Codierung) ** und ** Wiederherstellung (Decodierung) ** näher betrachtet.

① Codierung (Komprimierung)

Lassen Sie uns zunächst über den Teil sprechen, der die Verbindungspunkte in eine Wärmekarte umwandelt. Beginnen wir mit der herkömmlichen Methode zur Erstellung von Wärmekarten.

Herkömmliche Methode zur Erstellung von Wärmekarten

Normalerweise werden heruntergerechnete Koordinaten ( blauer Punkt </ font> → in der folgenden Abbildung) mit der Funktion ** floor ** (eine Funktion, die nach dem Dezimalpunkt abgeschnitten wird) heruntergerechnet. Eine Wärmekarte wird erstellt, indem auf lila Punkte gerundet wird (</ font>) und eine Normalverteilung erstellt wird, die auf diesen Koordinaten zentriert ist. Wie Sie sehen können, erzeugt diese Methode keine genaue Wärmekarte.

image.png

So erstellen Sie eine neue Heatmap

Andererseits erzeugt das vorgeschlagene Verfahren ** eine Normalverteilung, die auf den ursprünglichen Koordinaten ** zentriert ist. Auf diese Weise können aufwendigere Wärmekarten erstellt werden.

image.png

Die tatsächliche Genauigkeit ist ebenfalls deutlich besser. (** Unvoreingenommen ** ist die vorgeschlagene Methode) ↓

image.png

② Dekodieren (wiederherstellen)

Als nächstes erklären wir den Prozess des Ermittelns der Verbindungspunktposition (im Originalbild) aus der Ausgangswärmekarte. Der Codierungsteil war relativ einfach, aber der Decodierungsteil ist etwas kompliziert.

Traditionelle Dekodierungsmethode

Zunächst werde ich die herkömmliche Decodierungsmethode erläutern. Derzeit umfassen die gängigen Decodierungsmethoden diejenigen, die nur den Maximalwert der Wärmekarte verwenden, und diejenigen, die ** den gewichteten Gesamtdurchschnitt ** verwenden.

\bf p = \rm \frac{ \sum_{\it i \rm = 1}^{\it N} \it w_i \bf x_{\rm \it i}}{ \sum_{\it i \rm = 1}^{\it N} \it w_i}

$ \ Bf x $ ist die Pixelposition der Heatmap und $ \ it w $ ist der Wert der Heatmap.

Neue Dekodierungsmethode

Andererseits werden bei diesem vorgeschlagenen Verfahren Verbesserungsmaßnahmen in drei Schritten vorgeschlagen, wie in der folgenden Abbildung gezeigt.

image.png

(A) Wärmekartenkorrektur

Die Ausgangswärmekarte hat häufig eine gezackte Form nahe dem Maximalwert. Damit die Verarbeitung nach der Stufe gut funktioniert, sollte sie im Voraus mit einem ** Gaußschen Filter ** korrigiert werden.

\bf h' = \rm \it K \circledast \bf h

$ \ Circledast $ ist eine Faltungsoperation (Gaußscher Filter).

Die folgende Abbildung zeigt die Wärmekarte vor (links) und nach (rechts) Korrektur. Sie können sehen, dass die Zackigkeit weg ist.

(B) Suchen Sie nach einer Lösung, die sich der Verteilung bewusst ist

Suchen Sie als Nächstes die Position des Verbindungspunkts anhand der in (a) korrigierten Wärmekarte.

Als Grundvoraussetzung gehen wir zunächst davon aus, dass die geschätzte Wärmekarte genau wie die Trainingsdaten eine "zweidimensionale Normalverteilung" ist.

\mathcal{G}(\bf x \rm; \bf \mu \rm , \Sigma) = \frac{1}{(2 \pi)|\Sigma|^{\frac{1}{2}}} \exp \left(-\frac{1}{2}(\bf x \rm - \bf \mu\rm)^{T} \Sigma^{-1}(\bf x \rm - \bf \mu \rm)\right)

$ \ Bf x $ ist die Pixelposition der Wärmekarte, $ \ bf \ mu $ sind die Mittelkoordinaten der Normalverteilung (** ← gewünschte Koordinaten **) und $ \ rm \ Sigma $ ist die Kovarianzmatrix.

Basierend auf dieser Annahme können die Koordinaten des Verbindungspunkts $ \ bf \ mu $ abgeleitet werden, indem die Bedingung hinzugefügt wird, dass "die Steigung Null ist, wenn die Steigung beim Maximalwert der Normalverteilung genommen wird". (Für Details lösen Sie mit der Taylor-Erweiterung der quadratischen Näherung.)

\bf \mu = m - \left( \mathcal{D^{\prime \prime}\rm (\bf m \rm )} \rm \right) ^{-1} \mathcal{D^{\prime}\rm (\bf m \rm )}

$ \ Bf m $ ist die maximale Pixelposition.

(C) Wiederherstellung der ursprünglichen Bildauflösung

Zum Schluss multiplizieren Sie die geschätzten Gelenkkoordinaten mit einer Konstanten, um sie auf die Größe des Originalbilds zurückzusetzen. (Dieser Teil ist der gleiche wie bei der herkömmlichen Methode.)

\hat{\bf p} = \rm{\lambda} \, \bf p

Durch die obigen drei Schritte ist es uns gelungen, die Genauigkeit zu verbessern. ↓

image.png

Zusammenfassung

Aus der neuesten Veröffentlichung im Jahr 2020 habe ich das 2D-Modell zur Schätzung der Körperhaltung ** "DARK" ** erklärt.

DARK kann in verschiedene Modelle zur Haltungsschätzung integriert werden. Ich denke, es ist eine gute Idee, es in das Modell zu integrieren, das Sie jetzt verwenden! Wenn Sie interessiert sind, lesen Sie unbedingt Artikel und GitHub.

abschließend

** Diejenigen, die Menschen und Dinge digitalisieren und analysieren wollen **. ** Ich möchte etwas Interessantes schaffen, indem ich 3D-Technologie und tiefes Lernen kombiniere! Diejenigen, die sagen **.

Wir suchen Freunde, mit denen wir arbeiten können.

Bei Interesse bewerben Sie sich bitte über den unten stehenden Link! https://www.wantedly.com/companies/sapeet

Recommended Posts