[PYTHON] Grundlegendes Verständnis der Tiefenschätzung mit einer Monokamera (Deep Learning)

Ich kann es vielleicht nicht gut erklären, aber ich wäre Ihnen dankbar, wenn Sie die Nuancen grob herausarbeiten könnten. Ich habe auch die Stereotiefe zusammengefasst. Wenn Sie interessiert sind, bitte https://qiita.com/minh33/items/55717aa1ace9d7f7e7dd https://qiita.com/minh33/items/6b8d37ce08f85d3a3479

Inhaltsverzeichnis 1. Depth Estimation 2. Image warp 3. Loss

Depth Estimation

Die Position kann mit einer Monokular-Kamera geschätzt werden, so dass eine Person die raue Position eines Objekts mit einem Auge sehen kann. Wenn Sie beispielsweise den Winkel der Kamera festlegen, befindet sich das nahe Objekt oben im Bild und das entfernte Objekt oben im Bild. Da sich das Objekt im Wesentlichen auf dem Boden befindet, kann die Position des Objekts geschätzt werden, wenn der Abstand der Grundebene bekannt ist. Darüber hinaus kann die relative Position zwischen Objekten und die Größe von Objekten auch als Information verwendet werden. Da ich mit CNN lerne, ist es schwierig zu verstehen, welche Art von Informationen das Modell tatsächlich erhält, aber es gab ein interessantes Papier, in dem ich ein Experiment durchgeführt habe. Wenn Sie also interessiert sind, tun Sie dies bitte

Image warp

Für Monokular </ h3> Wenn Sie das Auto mit der Kamera bewegen, können Sie es in das vorherige Bild konvertieren. Zunächst wird die Entfernung des Bildes, wenn t = t ist, vom Netzwerk geschätzt. Da die Entfernung geschätzt werden kann, ist es möglich, die 3D-Punktwolke zu berechnen. Verwenden Sie die Selbstpositionsschätzung, um den Bewegungsumfang des Fahrzeugs mit der Kamera zu ermitteln. VSLAM, Kilometerzähler, GPS, IMU usw. können zur Selbstpositionsschätzung verwendet werden. Durch Transfomieren der 3D-Punktwolke, die das Ausmaß der Änderung in 1 Frame von x, y, z, Rollen, Neigen und Gieren früher berechnet hat, konnten wir die 3D-Punktwolke mit t = t-1 ableiten. Durch Konvertieren in die Bildansicht können Sie das Bild von t = t in das Bild von t = t-1 verzerren. Es gibt jedoch auch Nachteile, die Sie nur lernen können, wenn Sie sich bewegen. Wenn sich das Objekt des Gegners bewegt, verschiebt es sich, selbst wenn Sie sich verziehen.

image.png It=>target Image(t=t) Is=>source Image(t=t-1) Dt => Zieltiefe (Grundwahrheit der Entfernung mit LiDAR) D^t=>Estimated target Depth I^t=>Estimated target Image View Synthesis => Bildrekonstruktion Photometrischer Verlust => Vergleich des geschätzten Bildes mit dem tatsächlichen Bild

Für Ferngläser </ h3>

Es wird verwendet, um den Verlust in Nr. 3 zu berechnen, aber Sie können die erhaltene Tiefe in Disparität umwandeln und das Bild rechts in das Bild links verziehen. Ist es übrigens ein Fernglas, obwohl es eine Monotiefe hat? Ich denke, einige Leute denken, dass die Entfernungsschätzung mit einem einzigen Auge durchgeführt wird und die gegenüberliegende Linse als Grundwahrheit für das Lernen verwendet wird.

image.png

Definition des Verlusts [

Unsupervised Monocular Depth Estimation with Left-Right Consistency(2017)

]( https://arxiv.org/pdf/1609.03677.pdf')

Dieses Papier ist wahrscheinlich das bekannteste in Monodepth

・ Rekonstruktionsverlust Das linke Rekonstruktionsbild kann durch Verziehen unter Verwendung der linken Disparität erzeugt werden, die aus dem rechten Bild geschätzt wird. Berechnen Sie das SAD und SSIM dieses Bildes und das Eingabebild auf der linken Seite. Mach das Gegenteil

・ LR-Konsistenzverlust Verzerren Sie die Disparitätskarte rechts zur Disparitätskarte links und berechnen Sie die Differenz zwischen den absoluten Werten der Disparität. Mach das Gegenteil

・ Glätteverlust Da die Disparität (Tiefe) benachbarter Pixel fast gleich sein sollte, wenn sie dasselbe Objekt sind, wird die Glätte der Disparität unter Verwendung der Laplace-Glätte oder dergleichen berechnet. Führen Sie die Disparitätskarte rechts und links durch.

image.png

Recommended Posts

Grundlegendes Verständnis der Tiefenschätzung mit einer Monokamera (Deep Learning)
Grundlegendes Verständnis der Stereo-Tiefenschätzung (Deep Learning)
Objekterkennung durch tiefes Lernen, Keras tief zu verstehen
Paralleles Lernen von Deep Learning durch Keras und Kubernetes
Angemessene Preisschätzung von Mercari durch maschinelles Lernen
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Deep Learning 1 Übung des Deep Learning
Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen
Deep Running 2 Tuning von Deep Learning
Tiefenschätzung durch CNN (CNN SLAM # 3)
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Zusammenfassung der grundlegenden Implementierung von PyTorch
Deep Learning durch Implementierung 1 gelernt (Return Edition)
Deep Learning 2 durch Implementierung gelernt (Bildklassifizierung)
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Bedeutung von Deep-Learning-Modellen und -Parametern
Produzieren Sie wunderschöne Seekühe durch tiefes Lernen
Versuchen Sie mit Kipoi tiefes Erlernen der Genomik
Visualisieren Sie die Auswirkungen von Deep Learning / Regularisierung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
Grundlegende Datenrahmenoperationen, die von Anfängern in einer Woche Python-Lernen geschrieben wurden