簡體   English   中英

OpenCV / Python Bundle 調整

[英]OpenCV / Python Bundle adjustment

我有一個應用程序,我在 Python 中使用 OpenCV 嘗試從同一相機的多個視圖的運動中構建結構。 (OpenCV 不是硬性要求,但 Python 現在是)。 示例:我有 16 個相機圖像可以處理每幀之間的小動作。 在幀 (200x200) 中,我可以跟蹤約 50 個特征,並且我想盡可能准確地估計特征的相機姿勢和 3D 點位置。

我現在想使用幀流(來自視頻)來優化相機姿勢和 3D 點位置的估計,因為從兩幀估計姿勢和三角測量 3D 點會產生很多噪音。 我相信捆綁調整是下一個明顯的方向,但我沒有找到任何明顯的捆綁調整的 Python 實現可以使用。 許多選項(例如 LevMarqSparse::bundleAdjust())似乎僅部分完成或未完全采用。

什么是好的起點? 我想我正在尋找一個相對簡單的 Python 包調整來構建原型,看看這是否是我想投入更多時間的方向。

假設您有一個校准過的相機以及對內在和外在參數的初始估計,您可以首先直接在 Python 中執行簡單的捆綁調整。 例如,您可以使用三個圖像的堆棧,通過齊次三角測量方法從特征點計算 3D 點。 例如,可以通過 scipy.least_squares 和可信區域反射非線性優化技術構建作為第一個原型的簡單束調整。 查看本教程

之后,您可以決定是要實施還是使用 Levenberg-Marquardt 優化技術,該技術能夠處理稀疏雅可比矩陣,甚至可以分析確定雅可比矩陣以在需要時假設增加收斂性。

到目前為止,我認為 Python 中沒有足夠的庫來提供強大且高性能的捆綁調整實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM