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