多视图几何总结——单应矩阵和基础矩阵的兼容关系
多視圖幾何總結——單應矩陣和基礎矩陣的兼容關系
- 多視圖幾何總結——單應矩陣和基礎矩陣的兼容關系
- (1)單應矩陣和基礎矩陣的兼容性
- (2)基礎矩陣 —> 單應矩陣
- (3)單應矩陣 —> 基礎矩陣
多視圖幾何總結——單應矩陣和基礎矩陣的兼容關系
這應該是多視圖幾何里面最后一篇總結了吧,在書中用一整章的篇幅介紹了平面單應(單應矩陣)和對極幾何(基礎矩陣)之間的關系,相對是比較復雜的,好幾次繞暈我了…如下圖
圖中xxx和x′x'x′的關系可以有兩種描述方式
第一種:通過對極幾何一幅視圖中的一點xxx可以確定另一幅視圖中的一條直線,它是通過x′x'x′的一條射線
第二種:通過平面π\piπ確定了一個單應HHH,使得通過一個xxx可以確定另一幅視圖中的點x′x'x′(xxx和xπx_{\pi}xπ?是可以通過單應聯系起來,x‘x‘x‘和xπx_{\pi}xπ?同理,那么xxx和x’x’x’也是可以通過單應聯系的)
(1)單應矩陣和基礎矩陣的兼容性
結論一:給定兩幅視圖的投影矩陣P=[I∣0]P′=[A∣a]\mathrm{P}=[\mathrm{I} | 0] \quad \mathrm{P}^{\prime}=[\mathrm{A} | \mathrm{a}] P=[I∣0]P′=[A∣a]和由π?X=0\boldsymbol{\pi}^{\top} \mathbf{X}=0π?X=0定義的一張平面,其中π=(v?,1)?\boldsymbol{\pi}=\left(\mathbf{v}^{\top}, 1\right)^{\top}π=(v?,1)?,則由這個平面誘導的單應是x′=Hx\mathbf{x}^{\prime}=\mathrm{Hx}x′=Hx,其中H=A?avT\mathrm{H}=\mathrm{A}-\mathrm{a} \mathrm{v}^{\mathrm{T}} H=A?avT 解釋:這個看起來可能不太直觀,《視覺SLAM十四講》其實給了相應的推導,現在假定兩幅圖中有一對匹配好的特征點p1p_{1}p1?和p2p_{2}p2?,然后這兩個特征點對應的空間點在滿足下面方程的平面上:nTP+d=0\boldsymbol{n}^{T} \boldsymbol{P}+d=0 nTP+d=0結合對極幾何的變換關系有p2=K(RP+t)=K(RP+t?(?nTPd))=K(R?tnTd)P=K(R?tnTd)K?1p1\begin{aligned} \boldsymbol{p}_{2} &=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t}) \\ &=\boldsymbol{K}\left(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t} \cdot\left(-\frac{\boldsymbol{n}^{T} \boldsymbol{P}}ozvdkddzhkzd\right)\right) \\ &=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}ozvdkddzhkzd\right) \boldsymbol{P} \\ &=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}ozvdkddzhkzd\right) \boldsymbol{K}^{-1} \boldsymbol{p}_{1} \end{aligned} p2??=K(RP+t)=K(RP+t?(?dnTP?))=K(R?dtnT?)P=K(R?dtnT?)K?1p1??及p2=Hp1\boldsymbol{p}_{2}=\boldsymbol{H} \boldsymbol{p}_{1} p2?=Hp1?這和我們結論中的x′=Hx\boldsymbol{x}^{\prime}=\boldsymbol{Hx}x′=Hx是一致的。
結論二:一個單應HHH和一個基本矩陣FFF相容的充要條件是矩陣HTFH^TFHTF是反對稱的H?F+FTH=0\mathrm{H}^{\top} \mathrm{F}+\mathrm{F}^{\mathrm{T}} \mathrm{H}=0 H?F+FTH=0
我們知道四對點可以確定一個單應矩陣,如果這四對點是有空間中一個平面上的四個空間點在兩幅視圖中生成的圖像點,則通過這四個點計算的單應矩陣HHH和基礎矩陣FFF滿足:(Hx)TFx=x?H?Fx=0(\mathrm{Hx})^{\mathrm{T}} \mathrm{F} \mathrm{x}=\mathrm{x}^{\top} \mathrm{H}^{\top} \mathrm{F} \mathrm{x}=0 (Hx)TFx=x?H?Fx=0
(2)基礎矩陣 —> 單應矩陣
這里我們擁有的已知條件是:兩幅視圖中的基礎矩陣和匹配好的三個點,且這三個點的單應和對極幾何是相容的,要求的是:這三個點之間的單應。
這里有兩種方法:
第一種:在射影重構下恢復三個點的空間點,然后求出由這三個空間點構成的空間平面,然后通過上述的結論一求得單應。
第二種:通過四個點可以直接求得單應,這四個點分別是已知的三個匹配點和對極點(對極點可以通過求另外一個相機的空間點坐標在視圖上的投影獲得)
在書中將第一種方法稱為顯式,第二種方法稱為隱式,并且顯式方法比隱式方法好,因為在隱式方法中,如果四個點中三個共線的話就會發生求解失敗的情況。
(3)單應矩陣 —> 基礎矩陣
如下圖所示:給定點x′\mathbf{x'}x′,通過點x′\mathbf{x'}x′和對極點e′\mathbf{e'}e′的對極線l′\mathbf{l'}l′可以記為l′=e′×x′=[e′]×x′\mathbf{l}^{\prime}=\mathbf{e}^{\prime} \times \mathbf{x}^{\prime}=\left[\mathbf{e}^{\prime}\right]_{ \times} \mathbf{x}^{\prime}l′=e′×x′=[e′]×?x′,因為x′\mathbf{x'}x′可以記為x′=Hπx\mathbf{x}^{\prime}=\mathrm{H}_{\pi} \mathbf{x}x′=Hπ?x,因此我么可以獲得l′=[e′]×Hπx=Fx\mathrm{l}^{\prime}=\left[\mathbf{e}^{\prime}\right]_{ \times} \mathrm{H}_{\pi} \mathbf{x}=\mathrm{Fx} l′=[e′]×?Hπ?x=Fx就得到了我們想要的F=[e′]×Hπ\mathrm{F}=\left[\mathrm{e}^{\prime}\right]_{ \times} \mathrm{H}_{\pi}F=[e′]×?Hπ?
然后書中提供了一種六個點解基礎矩陣的方法,如下:
要求給定的六組點中有四組是位于同一平面上的,另外兩組點是不位于同一平面上,其方法其實很簡單,就是先利用共面的四組點求得單應xi′=Hxi,i∈{1,…,4}\mathbf{x}_{i}^{\prime}=\mathrm{Hx}_{i}, i \in\{1, \ldots, 4\}xi′?=Hxi?,i∈{1,…,4},然后利用(Hx5)×x5′\left(\mathrm{Hx}_{5}\right) \times \mathrm{x}_{5}^{\prime}(Hx5?)×x5′?和(Hx6)×x6′\left(\mathrm{Hx}_{6}\right) \times \mathrm{x}_{6}^{\prime}(Hx6?)×x6′?兩條直線的角點求得對極點e′e'e′,然后利用上面的結論F=[e′]×Hπ\mathrm{F}=\left[\mathrm{e}^{\prime}\right]_{ \times} \mathrm{H}_{\pi}F=[e′]×?Hπ?求得基礎矩陣。
這里有一個很有意思的發現,在沒有約束的求解中,根據自由度計算,求解單應矩陣最少需要四組點,求得基礎矩陣最少需要七組點,但是在單應矩陣和基礎矩陣兼容的前提下,他們計算的最少點組數變成了三和六,需要的點更少了
這一節感覺知識點比較散亂,先總結到這兒了,歡迎交流
此外,對SLAM算法感興趣的同學可以看考我的博客SLAM算法總結——經典SLAM算法框架總結
總結
以上是生活随笔為你收集整理的多视图几何总结——单应矩阵和基础矩阵的兼容关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多视图几何总结——三角形法
- 下一篇: 论文阅读——《Robust Superp