SLAM第6章 求解位姿變換 2D 2D

2021-10-02 05:23:59 字數 3494 閱讀 9308

第3至5章講了3d-3d和3d-2d問題,為了全面介紹相機位姿的求解方法,本章介紹2d-2d問題。根據3d-3d和3d-2d問題的描述,就可以理解2d-2d問題:相機在兩個位置看到了同樣的3維點,即知道畫素座標,求這兩個相機的位姿關係。

對極幾何有極線、極點等概念,而我們不需要這些,只需要知道空間向量共面的判定方法。

−6.1.1對極

幾何圖-6.1.1對極幾何

圖−6.1.

1對極幾

何先來確定幾個向量:

\overrightarrow = k^p \\ \overrightarrow = rk^(p'-o_2)=rk^p' \\ \overrightarrow = \vec t \end \tag

⎩⎪⎪⎨⎪⎪

⎧​o1

​p​=

k−1p

o2​p

​=rk

−1(p

′−o2

​)=r

k−1p

′o1​

o2​​

=t​(

6.1.

1)公式(

6.1.1

)(6.1.1)

(6.1.1

)中的三個向量都是o

1o_1

o1​座標系中的向量。其中k

kk是相機內參矩陣,p

pp是空間點p

pp在左側相機的歸一化畫素座標,p′p'

p′是空間點p

pp在右側相機的歸一化畫素座標。參考公式(

5.1.4

)(5.1.4)

(5.1.4

)。n =k

−1pn=k^p

n=k−1p

稱為歸一化的歸一化成像平面座標:n

nn是乙個三維座標,第3維為1,n

nn的前兩維組成的二維座標是歸一化成像平面座標。

注意:根據公式(

5.1.4

)(5.1.4)

(5.1.4

),我們並沒有利用空間點p

pp到左右相機的距離z

zz。由於使用的歸一化畫素座標p

pp和p′p'

p′的第三維是1

11,所以在公式(

6.1.1

)(6.1.1)

(6.1.1

)中,向量o1p

→\overrightarrow

o1​p​和o2p

→\overrightarrow

o2​p

​的終點並不一定是p

pp。但這並不影響我們的結果,因為我們只需要令公式(

6.1.1

)(6.1.1)

(6.1.1

)中的三個向量的混合積為0,而不關心它們的長度。

對極幾何就是公式(6.1.1)中的三個向量共面,它們的混合積為0:

o 1p

→t×o

1o2→

⋅o2p

→=0.\overrightarrow ^t × \overrightarrow \cdot \overrightarrow = 0.

o1​p​t

×o1​

o2​​

⋅o2​

p​=0

.即:p tk

−t×t

⃗⋅rk

−1p′

=0(6.1.2)

p^tk^ × \vec t \cdot rk^p'=0 \tag

ptk−t×

t⋅rk

−1p′

=0(6

.1.2

)把t⃗

\vec t

t寫成矩陣的形式,把公式(

6.1.2

)(6.1.2)

(6.1.2

)寫成矩陣相乘的形式就是:

p tk

−tt⃗

^rk−

1p′=

0(6.1.3)

p^tk^ \vec t \hat rk^p'=0 \tag

ptk−tt

^rk−

1p′=

0(6.

1.3)

其中t⃗

^\vec t \hat

t^是把向量(t1

,t2,

t3)(t_1,t_2,t_3)

(t1​,t

2​,t

3​)寫成反對稱矩陣的形式:

[ 0−

t3t2

t30−

t1−t

2t10

]\left[ \begin 0 & -t_3 & t_2 \\ t_3 & 0 & -t_1 \\ -t_2 & t_1 & 0 \end \right]

⎣⎡​0t3

​−t2

​​−t

3​0t

1​​t

2​−t

1​0​

⎦⎤​公式(

6.1.3

)(6.1.3)

(6.1.3

)稱為對極約束

假如把e

ee稱為本質矩陣,f

ff稱為基礎矩陣:

e = \vec t \hat r \\ f = k^ e k^ \end

n^en'=0 \\ p^fp'=0 \end

void

pose_estimation_2d2d

(const vector pts1,

const vector pts2,

const mat& k)

intmain()

我們依然使用那6個三維點來實驗,因為我們知道它們的位姿關係。第20行求本質矩陣,第23行從本質矩陣中得出旋轉矩陣和平移向量。

注意:ope

ncvopencv

opencv

求本質矩陣時,輸入是畫素座標,而沒有要求使用歸一化平面座標。

執行結果:

注意:我們是利用平面座標求相機位姿的,平面座標不包含距離資訊。所以,我們求得的旋轉是正確的,但平移卻不準確:我們使用的6個點對應的平移向量(0,

−1,0

)(0,-1,0)

(0,−1,

0)的模長為1,所以求得的平移向量是準確的。實際上如果平移向量是(0,

−2,0

)(0,-2,0)

(0,−2,

0),求得的結果還是(0,

−1,0

)(0,-1,0)

(0,−1,

0)。也就是說這樣求得的平移向量的模長永遠是1,包含乙個縮放係數α

\alpha

α是無法求得的。

語音識別實踐 第6章總結2

cd dnn hmm帶來語音識別效能提公升的三大關鍵因素是 1 使用足夠深的神經網路 2 使用一長段的幀作為輸入 3 直接對三因素進行建模。1.進行比較和分析的資料集實驗 a.必應 bing 移動語音搜尋資料集 資料分為訓練集 開發集 測試集,避免三個集合之間重複。語言模型 一元片語 二元片語 三元...

遊戲設計藝術 第2版 第6章 讀書筆記

體驗並不會隨機地與遊戲聯絡在一起,而是由玩家與遊戲的互動產生。我們的目標不是藝術化的表達,而是創造偉大的體驗。我們可以創造無主題或者弱主題的遊戲,然而如果遊戲有統一的 能引發共鳴的主題,創造的體驗就會更加強大。設計圍繞乙個單一的主題,最大的優勢就是遊戲中的所有元素將互相強化,因為它們向著乙個共同的目...

unix網路程式設計第2版 卷1 第6章 同步

6.1概述 在5.12節中,我們看到tcp客戶同時處理兩個輸入 標準輸入和tcp套介面。我們遇到的問題是客戶阻塞於 標準輸入上的 fgets呼叫,而伺服器程序又被殺死。伺服器tcp雖正確地給客戶tcp發了乙個fin,但客戶程序正阻塞於從標準輸入讀入,它直到從套介面讀時才能看到此檔案結束符 可能已經過...