[PYTHON] Grundlegendes Verständnis der Stereo-Tiefenschätzung (Deep Learning)
Ich habe den Fluss der Tiefenschätzung (Disparität) durch die Stereokamera zusammengefasst.
Im vorherigen Artikel finden Sie Informationen zur allgemeinen Stereoanpassung
https://qiita.com/minh33/items/55717aa1ace9d7f7e7dd
Tiefenoptimierungsprozess
1. Feature Extraction
=> Extrahieren Sie Features mit demselben Netzwerk und demselben Gewicht links und rechts (BxHxC). ex) Intensität, Form, ..... etc.
2. Cost Volume
=> Erstellen Sie einen Disparitätskanal durch Verschieben des Pixels (DxBxHxC).
D ist ein beliebiger Wert, und Sie bestimmen die maximale Disparität (Pixel), die Sie annehmen können. Wenn es zu groß ist, ist es schwer, und wenn es zu klein ist, werden nahe Objekte nicht abgeglichen.
3. 3D Feature Matching
=> Lernen Sie, einen großen Wert zu erhalten, bei dem das rechte und das linke Merkmal nahe beieinander liegen, indem Sie (DxBxHxC) mit den erhaltenen Merkmalen (DxBxHx1) falten.
4. Disparity Regression
=> Konvertiere von (DxBxH) nach (1xBxH), um die endgültige Disparität zu finden
5. Verlust berechnen
=> Berechnen Sie den Verlust, indem Sie LiDAR für Ground Truth verwenden oder das linke und das rechte Bild verzerren. In letzter Zeit wird oft gesehen, nur mit Bildern zu lernen.

Verbessern Sie die Genauigkeit, indem Sie Mehrkanalmerkmale ersetzen, indem Sie die Merkmale des rechten und linken Bildes anstelle der Intensität falten

Sie müssen sich auf einen größeren Pixelbereich beziehen, um mit Objekten in der Nähe übereinzustimmen. Die Lösung besteht darin, die Auflösung der Feature-Map mit feinen und groben zu kombinieren.

Generieren Sie eine Faltungs-Feature-Map (BxHxC) mit dem gleichen Gewicht für jedes der rechten und linken Bilder wie zuvor. Erstellen Sie eine Feature-Map (DxBxHxC), die die Pixel des linken Bilds horizontal von 0 auf maxDisparity (beliebig) in Bezug auf das rechte Bild verschiebt. Verschieben Sie das Pixel einfach horizontal (Breitenrichtung). Durch Ausführen von 3D-Faltung und 3D-Entfaltung bei 1/2, 1/4, 1/8, 1/16, 1/32 können Sie grobe Merkmale und detaillierte Merkmale erlernen. Die Ausgabe hier ist (DxHxW). Die endgültige Disparität wird ausgegeben, indem der eindimensionale Übereinstimmungswert mit der Disparität multipliziert und ein gewichteter Durchschnitt genommen wird. Mit softArgMin ist es möglich, die Disparität mit Subpixel-Genauigkeit zu berechnen.


Ich habe Disparität oder Tiefe von LiDAR erhalten, um Verluste zu finden. Die Dichte von LiDAR ist gröber als die des Bildes, und da das Training auch in einem System durchgeführt wird, das kein LiDAR verwendet, wird das Bild links simuliert, indem das Pixel um die geschätzte Disparität des rechten Bildes verschoben wird. Der Verlust kann definiert werden, indem der SAD (Intensität oder RGB-Unterschied) oder SSIM (strukturelle Ähnlichkeit) zwischen dem erzeugten linken Bild und dem ursprünglichen linken Bild betrachtet wird. Wenn die Disparität korrekt geschätzt werden kann, ist das verzerrte Bild fast das gleiche wie das gegenüberliegende Bild.
