Stitching mit großer Parallaxe

Stitching mit großer Parallaxe

Ich muss Bilder von 5 Kameras zusammenfügen. Die Kameras sind an den Seiten eines ferngesteuerten Unterwasserfahrzeugs montiert. Es ist im Grunde ein Cupoid mit den Abmessungen 2,1 m x 1,3 m x 1,85 m. Die Kameras sind an den Seiten dieses Cupoids montiert. Also eine Kamera vorne, eine hinten, eine rechts, eine links und eine unten nach unten gerichtet. Alle Kameras haben Fischaugenobjektive mit einem Betrachtungswinkel von 180° oder mehr und eine 4k-Auflösung. Ziel ist es, die Bilder in Echtzeit zusammenzufügen und das Ergebnis mit einem VR-Headset anzuzeigen.

Ich habe einen rein geometrischen Ansatz ausprobiert, bei dem ich nur die Positionen und Parameter der Kameras verwendet habe. Das hat ganz gut funktioniert, aber die Naht zwischen den Bildern ist nur für einen ganz bestimmten Betrachtungsabstand gültig. Ansonsten ist die Naht sehr gut sichtbar und ich habe es nur geschafft, die horizontalen Kameras zusammenzufügen, nicht aber die untere.

Ich habe auch vrWorks 360 von NVidia ausprobiert, aber das funktioniert nur mit horizontal ausgerichteten Kameras, sodass die untere Kamera ignoriert wird. Auch das Stitching-Ergebnis für die horizontalen Kameras war wirklich schlecht.

Ich bin auch darüber gestolpertParallaxentolerantes Bild-Stitchingmitdiese Implementierung. Es funktioniert aber auch nur für horizontal ausgerichtete Bilder und lässt keine Fischaugenobjektive zu.

Mein letzter Ansatz war die Kalibrierung vonPTGuiund verwenden Sie diese Kalibrierung inStichEmDas war früher eine kommerzielle Stitching-Software, ist jetzt aber Open Source. Diese hat bisher die besten Ergebnisse geliefert. Es gibt aber immer noch einige Ausrichtungsfehler und es funktioniert nur einwandfrei, wenn sich wenige oder keine Objekte in der Nähe befinden.

Ich habe auch versucht, OpenCV direkt zu verwenden, aber das war mir zu überwältigend, da es so viele Optionen zur Verwendung der API und so viele zu konfigurierende Module gibt.

Hat jemand eine Idee, wie ich diese Bilder effizient zusammenfügen könnte? Ich würde eine kostenlose Open-Source-Lösung bevorzugen, aber eine kostenpflichtige Closed-Source-Anwendung ist auch akzeptabel, wenn sie den Job erledigt.

Antwort1

Ich nehme an, wenn Sie von „Echtzeit“ sprechen, meinen Sie die schnelle Bildverarbeitung beim Zusammenfügen. Wenn ja, sehen Sie sich diese Open-Source-Lösung an, die viele Kontrollmöglichkeiten, Optionen und GPU-Verarbeitung bietet und Panoramen mit Bildern aus den unteren Ebenen erstellen kann:

Wenn Sie von echter „Echtzeit“ sprechen, müssen Sie wahrscheinlich ein Ad-hoc-System mit OpenCV verwenden, und die Echtzeitverarbeitung wird wahrscheinlich von einem Kompromiss zwischen Geschwindigkeit und Auflösung abhängen. Unten finden Sie den Link zu einem einfachen Beispiel:

Prost!

verwandte Informationen