【立体视觉】双目立体标定与立体校正
from:https://blog.csdn.net/u011574296/article/details/73826420
參考:
機(jī)器視覺學(xué)習(xí)筆記(6)——雙目攝像機(jī)標(biāo)定參數(shù)說明?
機(jī)器視覺學(xué)習(xí)筆記(8)——基于OpenCV的Bouguet立體校正?
雙攝像頭立體成像(三)-畸變矯正與立體校正
人類可以看到3維立體的世界,是因為人的兩只眼睛,從不同的方向看世界,兩只眼睛中的圖像的視差,讓我們可以看到3維立體的世界。類似的,要想讓計算機(jī)“看到”3維世界,就需要使用兩個攝像頭構(gòu)成雙目立體視覺系統(tǒng)。
想要讓雙目視覺系統(tǒng)知道視差,首先應(yīng)該知道雙目視覺系統(tǒng)中兩個攝像頭之間的相對位置關(guān)系。。任意兩個坐標(biāo)系之間的相對位置關(guān)系,都可以通過兩個矩陣來描述:旋轉(zhuǎn)矩陣R和平移矩陣T。
我們可以同時對兩個攝像頭進(jìn)行標(biāo)定,分別得到二者相對同一坐標(biāo)系的旋轉(zhuǎn)矩陣和平移矩陣,然后就可以獲得兩個攝像頭之間的相對位置關(guān)系,這就是雙目標(biāo)定!
一、雙目立體標(biāo)定
雙目攝像機(jī)需要標(biāo)定的參數(shù):攝像機(jī)內(nèi)參數(shù)矩陣,畸變系數(shù)矩陣,本征矩陣,基礎(chǔ)矩陣,旋轉(zhuǎn)矩陣以及平移矩陣(其中攝像機(jī)內(nèi)參數(shù)矩陣和畸變系數(shù)矩陣可以通過單目標(biāo)定的方法標(biāo)定出來)
雙目攝像機(jī)標(biāo)定和單目攝像機(jī)標(biāo)定最主要的區(qū)別就是雙目攝像機(jī)需要標(biāo)定出左右攝像機(jī)坐標(biāo)系之間的相對關(guān)系
我們用旋轉(zhuǎn)矩陣R和平移矩陣T來描述左右兩個攝像機(jī)坐標(biāo)系的相對關(guān)系,具體為:將左攝像機(jī)下的坐標(biāo)轉(zhuǎn)換到右攝像機(jī)下的坐標(biāo)。
假設(shè)空間中有一點P,其在世界坐標(biāo)系下的坐標(biāo)為PWPW,其在左右攝像機(jī)坐標(biāo)系下的坐標(biāo)可以表示為:
Pl=RlPW+TlPr=RrPW+Tr
其中 PlPl 和 PrPr 又有如下的關(guān)系:?
Pr=RPl+T
注:雙目攝像機(jī)分析中往往以左攝像機(jī)為主坐標(biāo)系,但是R和T卻是左相機(jī)向右相機(jī)轉(zhuǎn)換,所以Tx為負(fù)數(shù)
綜合上式,可以推得:?
T=Tr?RTl
lRl,Tl為左攝像頭經(jīng)過單目標(biāo)定得到的相對標(biāo)定物的旋轉(zhuǎn)矩陣和平移向量,Rr,Tr為右攝像頭經(jīng)過單目標(biāo)定得到的相對標(biāo)定物的旋轉(zhuǎn)矩陣和平移向量?
左右相機(jī)分別進(jìn)行單目標(biāo)定,就可以分別得到Rl,Tl,Rr,Tr,帶入上式就可以求出左右相機(jī)之間的旋轉(zhuǎn)矩陣R和平移T。
求得的R和T就是立體標(biāo)定要得到的結(jié)果。
單目攝像機(jī)需要標(biāo)定的參數(shù),雙目都需要標(biāo)定,雙目攝像機(jī)比單目攝像機(jī)多標(biāo)定的參數(shù):R和T,主要是描述兩個攝像機(jī)相對位置關(guān)系的參數(shù),這些參數(shù)在立體校正和對極幾何中用處很大
那么得到了立體標(biāo)定的結(jié)果,下一步我們該做什么呢??
答案是:立體校正。
二、立體校正
在介紹立體校正的具體方法之前,讓我們來看一下,為什么要進(jìn)行立體校正?
雙目攝像機(jī)系統(tǒng)主要的任務(wù)就是測距,而視差求距離公式是在雙目系統(tǒng)處于理想情況下推導(dǎo)的,但是在現(xiàn)實的雙目立體視覺系統(tǒng)中,是不存在完全的共面行對準(zhǔn)的兩個攝像機(jī)圖像平面的。所以我們要進(jìn)行立體校正。立體校正的目的就是,把實際中非共面行對準(zhǔn)的兩幅圖像,校正成共面行對準(zhǔn)。(共面行對準(zhǔn):兩攝像機(jī)圖像平面在同一平面上,且同一點投影到兩個攝像機(jī)圖像平面時,應(yīng)該在兩個像素坐標(biāo)系的同一行),將實際的雙目系統(tǒng)校正為理想的雙目系統(tǒng)。
理想雙目系統(tǒng):兩攝像機(jī)圖像平面平行,光軸和圖像平面垂直,極點處于無線遠(yuǎn)處,此時點(x0,y0)對應(yīng)的級線就是y=y0
立體校正前:
立體校正后:
Bouguet校正原理
校正過程中兩個圖像平面均旋轉(zhuǎn)一半的R,這樣可以使重投影畸變最小,此時兩個攝像機(jī)圖像平面共面(畸變校正后光軸也平行),但是行不對準(zhǔn)?
極點是兩個相機(jī)坐標(biāo)系原點的連線和圖像平面的交點,要想使得極點處于無窮遠(yuǎn)處(即行對準(zhǔn)),就必須兩個攝像機(jī)的圖像平面和兩個相機(jī)坐標(biāo)系原點的連線平行?
可以計算RrectRrect矩陣使得極點處于無窮遠(yuǎn)處:?
由于圖像平面最終和相機(jī)坐標(biāo)系原點連線平行,所以?
e1=T∥T∥
其中 T=[TxTyTz]TT=[TxTyTz]T ,e2和e1正交,選擇主光軸方向(0,0,1)與e1叉積?
e2=[?TyTx0]TT2x+T2y???????√
e3與e1和e2正交,可得:?
e3=e1×e2e3=e1×e2
將 RrectRrect 左乘到R分解后作用于左右相機(jī)坐標(biāo)系的矩陣,即可得到最終的立體校正矩陣。
總結(jié)
以上是生活随笔為你收集整理的【立体视觉】双目立体标定与立体校正的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SIFT算法详解(附有完整代码)
- 下一篇: vim 对齐插件Tabular使用