Monokulare Tiefenschätzung – Deep Learning

1: Hintergrund der Tiefenschätzungsanwendung

1. Definition der Tiefenschätzung

Angenommen, wir haben ein 2D-Bild III , wir brauchen eine FunktionFFF , um die entsprechende Tiefeddd . Dieser Prozess kann wie folgt geschrieben werden:

d = F (I) d = F(I)D=F ( I )

Tiefeninformationen hier ddd stellt tatsächlichden tatsächlichen Abstand zwischen jedem Pixel im 2D-Bild dar, das vom 3D-Objekt und der Kamera projiziert wird.

Aber wie wir alle wissen, FFF ist eine sehr komplexe Funktion, da das Ermitteln einer bestimmten Tiefe aus einem einzelnen Bild dem Ableiten eines dreidimensionalen Raums aus einem zweidimensionalen Bild entspricht. Selbst wenn das menschliche Auge zwei Augen verwendet, um Objekte in der natürlichen Welt zu lokalisieren, wird dies der Fall sein immer noch Probleme geben. , ganz zu schweigen von der Verwendung eines einzelnen Fotos. Daher ist die herkömmliche Tiefenschätzung bei der monokularen Tiefenschätzung nicht effektiv. Die Menschen widmen der Untersuchung des Stereosehens (Stereo Vision) mehr Aufmerksamkeit, dh dem Erhalten von Tiefeninformationen aus mehreren Bildern. Denn die beiden Bilder können je nach Änderung des Betrachtungswinkels eine Änderung der Disparität zwischen den Bildern erhalten, um den Zweck der Erlangung der Tiefe zu erreichen. Zu viel zu sagen, schauen wir zunächst zurück.

2. Anwendungsszenarien der Tiefenschätzung

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Zusätzlich zu den in den beiden obigen Bildern erwähnten Anwendungsszenarien kann die Tiefenschätzung auch in einer Reihe nachgelagerter Aufgaben verwendet werden, die Tiefeninformationen erfordern, wie z. B. 3D-Rekonstruktion, Hinderniserkennung und SLAM. Daher ist ersichtlich, dass die Tiefenschätzung oft als vorgelagerte Aufgabe existiert und ihre Bedeutung offensichtlich ist.

3. Mehrere Methoden zur Tiefenschätzung

  • Verwenden von Lidar oder strukturierter Lichtreflexion auf der Objektoberfläche, um Tiefenpunktwolken zu erhalten
    . Diese Methode kann als „lokale Tyrannenmethode“ bezeichnet werden. Verwenden Sie den Sensor direkt zum Scannen, um hochpräzise Punktwolken-Tiefeninformationen zu erhalten, aber der Preis ist hoch!

  • Herkömmliche binokulare Entfernungsmessung
    Das binokulare Stereosehen besteht aus zwei Kameras, so wie das menschliche Auge dreidimensionale Objekte sehen und Informationen über Objektlänge, -breite und -tiefe erhalten kann. Die Position der Kamera wird im Allgemeinen manuell kalibriert (z. B. der Kamerakalibrierungsalgorithmus von Zhang Zhengyou) und anschließend die interne und externe Parametermatrix der Kamera anhand der Position des Zielpunkts im Bildkoordinatensystem und der Weltkoordinate abgeleitet System ist oft ein Prozess der Koordinatentransformation.

  • Mit der herkömmlichen monokularen Entfernungsmessung
    können zweidimensionale Objektinformationen, nämlich Länge und Breite, ermittelt werden. Wenn Sie also die Entfernung messen möchten, müssen Sie mehrere Bilder mit unterschiedlichen Winkeln (Timing) aufnehmen und dann die monokulare Entfernungsmessung von Mobileye verwenden Zur Lösung kommen eine Reihe von Methoden zum Einsatz. Gleichzeitig ist der Berechnungsumfang kompliziert und die Genauigkeit nicht so hoch wie bei einem Fernglas, sodass es häufig unter schwierigen Bedingungen verwendet wird.

4. Vor- und Nachteile der Verwendung von Deep-Learning-Schätzungen

Nachdem wir den Grundstein für mehrere gängige Methoden in mehreren traditionellen Bereichen gelegt haben, sprechen wir über die heutige monokulare Schätzung durch Deep Learning. Wie der Name schon sagt, tiefes Lernen, tiefes Lernen, die erste Reaktion End2End, wirft das Bild ohne manuelle Beteiligung in das trainierte Netzwerk und erhält direkt die endgültige Tiefenkarte, ein Wort, praktisch ! Gleichzeitig benötigen wir nur eine Monokularkamera, kurz gesagt, kostengünstig !

Was sind die Nachteile? Erstens ist die Genauigkeit der Tiefenschätzung innerhalb von 80 m nicht schlecht, aber darüber hinaus ist der Fehler sehr groß. Es ist ersichtlich, dass die geringe Genauigkeit und die Begrenzung der geschätzten Entfernung alle seine Mängel sind. Natürlich gibt es noch ein weiteres Problem, das Deep Learning immer vermeiden konnte: Es erfordert eine große Anzahl von Trainingssätzen . Dies ist offensichtlich ein Problem, das in einigen Umgebungen ohne Trainingsdaten nicht ignoriert werden kann.

Aber schließlich steht es mit der Spitzentechnologie der Zeit am Rande, also lasst uns gut plaudern und auf den Punkt kommen.

Zweitens: Monokulares Tiefenschätzungsmodell

1. Verwendete Datensätze

Das hier erläuterte Tiefenschätzungsmodell verwendet den KITTI-Datensatz , der auf Stadt- und Landstraßen erfasst wird. Dieser Datensatz wird in vielen Forschungsbereichen häufig verwendet , wie in der folgenden Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

2. Gesamtnetzwerkarchitektur

Das Tiefenschätzungsmodell besteht darin, ein Bild einzugeben und ein Bild mit Tiefeninformationen auszugeben. Es handelt sich also um ein generatives Modell und muss daher untrennbar mit dem Kernprozess der Kodierung und Dekodierung verbunden sein, wie in der folgenden Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein
Natürlich real Die Netzwerkarchitektur ist nicht so einfach, aber sie drehen sich alle um Codierung und Decodierung. Das Folgende zeigt eine Netzwerkarchitektur, die kürzlich von CVPR veröffentlicht wurde. Ich werde diesen „Giganten“ Modul für Modul erklären:
Fügen Sie hier eine Bildbeschreibung ein

3. Modulanalyse

Ⅰ: Niveau

Tatsächlich wird es nach mehreren Pooling-Schichten jedes Mal um die Hälfte reduziert. Das Backbone verwendet hier Resnet101. Es ähnelt dem Betrieb von Netzwerken wie U-Net, hauptsächlich für die folgenden Vorgänge, wie in der Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein

Ⅱ:ASPP

Der Autor hat ASPP auf der letzten Feature-Map des Backbones erstellt. Ich werde hier nicht wiederholen, was ASPP ist. Es ist eine Kombination aus atrous Faltung und SPP . Der Zweck der Verwendung von ASPP besteht darin, eine gewisse Funktionsvielfalt hinzuzufügen und gleichzeitig eine bestimmte Auflösung beizubehalten ( auch Image-Split-Domain-Routinenoperationen). wie das Bild zeigt:
Fügen Sie hier eine Bildbeschreibung ein

Ⅲ: Feature-Map-Subtraktionsoperation

Im Bereich der Tiefenschätzungsforschung stellt die Konturtiefeninformation von Objekten eine Herausforderung dar. Um dieses Problem effektiv zu lösen, führte der Autor eine göttliche Operation durch , bei der zwei Merkmalskarten A − B AB kombiniert wurdenAB wird subtrahiert (Feature-Map B ist nach Upsampling eine Feature-Map mit der gleichen Größe wie A), die Differenz-Features werden extrahiert und die Kontur-Feature-Map L wird erhalten. Wie nachfolgend dargestellt:
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

IV: Feature-Fusion

Für eine Überlagerung nutzen Sie zunächst die Fusion der High-Level-Feature-Map und der Feature-Map dieser Ebene vollständig aus, um die Zwischen-Feature-Map X zu erhalten und das Multi-Scale-Feature zu vergrößern. Fügen Sie dann das Vorhersageergebnis R'' auf hoher Ebene und die Konturkarte L der aktuellen Ebene zusammen und erhalten Sie nach einem Sammelsurium das Vorhersageergebnis R der aktuellen Ebene. Jede Ebene wird wie folgt bedient, wie in der Abbildung gezeigt:
Fügen Sie hier eine Bildbeschreibung ein

Ⅴ: Grob bis fein

Schließlich gibt es die Phase des „Formens“ der Details, in der das R jeder Schicht verschmolzen wird, um das endgültige Vorhersageergebnis R‘‘ zu erhalten, wie in der Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein

Ⅵ: Gewichtsparameter-Vorverarbeitung WS und pre_act-Operation

Dem realen Netzwerk wurden einige Details hinzugefügt. Zunächst wird die WS-Operation zur Gewichtsstandardisierung hinzugefügt , um die Verteilung der Gewichtsparameter gleichmäßiger zu gestalten. Funktionen wie Mish, Leaky ReLU, Swish usw. werden dann hinzugefügt pre_act , das heißt, zuerst ReLU für x auszuführen und dann in die Faltungsschicht einzutreten. Im Vergleich zum buddhistischen System hat sich die Genauigkeit ihrer Experimente tatsächlich verbessert. Leap, wie in der folgenden Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

VII: Verlustfunktion

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

dd in der vereinfachten Verlustfunktiond ist eigentlich die Differenz zwischen der vorhergesagten Tiefe und der tatsächlichen Tiefe jedes Pixels, der Schwerpunkt liegt auf dem späterendidj di djWas bedeutet die Summe von d i d j und warum steht davor ein negatives Vorzeichen? Jeder versteht beispielsweise, dass die Differenz zwischen dem vorhergesagten Wert und dem tatsächlichen Wertd 1 d1d 1 undd 2 d2d 2 Wenn die beiden Differenzen beide negativ sind, ist die Multiplikation ein positiver Wert, und ein negatives Vorzeichen wird vorangestellt, was bedeutet, dass sie nicht bestraft wird. Im Gegenteil, wenn die beiden unterschiedliche Vorzeichen haben, wird dies der Fall sein bestraft werden. sichtbarDer Zweck dieses Elements in der Verlustfunktion besteht darin, zu hoffen, dass die zu erhaltenden vorhergesagten Werte entweder etwas niedriger oder etwas höher sind, anstatt hier eine große Vorhersage und dort eine kleine Vorhersage., so dass der Effekt tatsächlich schlechter ist und das Modell weniger zuverlässig ist.


  Bisher habe ich das Prinzip der Verwendung von Deep Learning zur monokularen Tiefenschätzung kurz erläutert. Ich hoffe, es ist für alle hilfreich. Wenn Sie Fragen oder Vorschläge haben, hinterlassen Sie bitte unten einen Kommentar.

Ich bin ein gesalzener Fisch aus Jiangnan und kämpfe im Lebenslauf-Sumpf. Lasst uns hart zusammenarbeiten und kein Bedauern hinterlassen!

Ich denke du magst

Origin blog.csdn.net/weixin_43702653/article/details/123831009
Empfohlen
Rangfolge