簡體   English   中英

運動重投影問題中的OpenCV結構

[英]OpenCV Structure from Motion Reprojection Issue

我目前在基於OpenCv的Motion程序中遇到“結構”問題。 我將嘗試向您描述它的作用以及應該做什么。

該程序基於經典的“運動構造”方法。

基本思想是拍攝一對圖像,檢測其關鍵點並計算這些關鍵點的描述符。 然后,完成關鍵點匹配,並進行一定數量的測試以確保結果良好。 該部分工作完美。

完成此操作后,將執行以下計算:基本矩陣,基本矩陣,基本矩陣的SVD分解,相機矩陣計算以及最后的三角剖分。

一對圖像的結果是一組3D坐標,為我們提供了在3D查看器中繪制的點。 這對一對來說效果很好。

確實,這是我的問題: 對於一對圖像,在圖像對的第一幅圖像的坐標系中將3D點坐標作為參考圖像進行計算。 當處理兩個以上的圖像(這是我的程序的目標)時, 我必須重新投影在第一張圖像的坐標系中計算出的3D點 ,以便獲得一致的結果。

我的問題是: 如何將與攝像機相關的系統中給定的3D點坐標重新投影到另一個與攝像機相關的系統中? 用相機矩陣?

我的想法是獲取3D點坐標,並將其乘以之前每個相機矩陣的逆。

我澄清一下:

假設我正在處理第三張和第四張圖像(因此,第三對圖像,因為我正在像1-2 / 2-3 / 3-4等工作)。

我在第三個圖像的坐標系中獲得3D點坐標,如何在第一個圖像坐標系中正確地重新投影它們?

我將執行以下操作:

獲取3D點坐標矩陣,對圖像2到3應用相機矩陣的逆,然后對圖像1到2應用相機矩陣的逆。這是否正確?

因為這些相機矩陣是非正方形矩陣,所以我無法將它們求逆。

我肯定會誤會某個地方,如果有人能啟發我,我將不勝感激,我敢肯定這是一個相對容易的事情,但是我顯然缺少了一些東西...

非常感謝您的閱讀:)

假設您有一個稱為P的3 * 4外在參數矩陣。 為了匹配OpenCV文檔的符號,此為[R|t]

該矩陣P描述了從世界空間坐標到攝像機空間坐標的投影。 引用文檔:

[R | t]將點(X,Y,Z)的坐標轉換為相對於相機固定的坐標系。

您想知道為什么此矩陣是非正方形的。 這是因為在OpenCV的通常情況下,您不希望將齊次坐標作為輸出。 因此,要使其變為正方形,只需添加包含(0,0,0,1)的第四行。 我們稱這個新的方陣Q

每對攝像機都有一個這樣的矩陣,也就是說,每對圖像{k,k+1}都有一個Qk矩陣,描述了從攝像機k的坐標空間到攝像機k+1的坐標空間的投影。 這些矩陣是不可逆的,因為它們描述的是同構坐標中的等距。

要從攝像機3的坐標空間移到攝像機1的坐標空間,只需將Q2的倒數, 然后Q1的倒數應用於您的點。

暫無
暫無

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

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