雙目立體視覺,在百度百科里的解釋是這樣解釋的:雙目立體視覺(Binocular Stereo Vision)是機(jī)器視覺的一種重要形式,它是基于視差原理并利用成像設(shè)備從不同的位置獲取被測物體的兩幅圖像,通過計(jì)算圖像對(duì)應(yīng)點(diǎn)間的位置偏差,來獲取物體三維幾何信息的方法。
我相信未來的世界一定是三維感知的世界,畢竟二維世界很多情況下不能滿足要求的,
一 視差 Disparity與深度圖
那么提到雙目視覺就不得不提視差圖:雙目立體視覺融合兩只眼睛獲得的圖像并觀察它們之間的差別,使我們可以獲得明顯的深度感,建立特征間的對(duì)應(yīng)關(guān)系,將同一空間物理點(diǎn)在不同圖像中的映像點(diǎn)對(duì)應(yīng)起來,這個(gè)差別,我們稱作視差(Disparity)圖像。
對(duì)于視差的理解自己可以體驗(yàn)一下:將手指頭放在離眼睛不同距離的位置,并輪換睜、閉左右眼,可以發(fā)現(xiàn)手指在不同距離的位置,視覺差也不同,且距離越近,視差越大。
那么提到視差圖,就有深度圖,深度圖像也叫距離影像,是指將從圖像采集器到場景中各點(diǎn)的距離(深度)值作為像素值的圖像。獲取方法有:激光雷達(dá)深度成像法、計(jì)算機(jī)立體視覺成像、坐標(biāo)測量機(jī)法、莫爾條紋法、結(jié)構(gòu)光法。
那么這里引申一下深度圖與點(diǎn)云的區(qū)別,點(diǎn)云:當(dāng)一束激光照射到物體表面時(shí),所反射的激光會(huì)攜帶方位、距離等信息。若將激光束按照某種軌跡進(jìn)行掃描,便會(huì)邊掃描邊記錄到反射的激光點(diǎn)信息,由于掃描極為精細(xì),則能夠得到大量的激光點(diǎn),因而就可形成激光點(diǎn)云。
深度圖像經(jīng)過坐標(biāo)轉(zhuǎn)換可以計(jì)算為點(diǎn)云數(shù)據(jù);有規(guī)則及必要信息的點(diǎn)云數(shù)據(jù)可以反算為深度圖像。 兩者在一定條件下是可以相互轉(zhuǎn)化的,之前的博客里,有使用PCL庫實(shí)現(xiàn)過點(diǎn)云提取深度圖,當(dāng)然給出相機(jī)參數(shù)也是可以由深度圖轉(zhuǎn)為點(diǎn)云的。截圖一個(gè)深度圖:
所以深度與視差的關(guān)系如下
比如絕對(duì)差值法 絕對(duì)差值圖的計(jì)算方法如下:
D=|L-R|
式中,L、R和D分別代表左視圖、右視圖和對(duì)應(yīng)的絕對(duì)差值圖的亮度值。絕對(duì)差值圖并不是嚴(yán)格意義上的視差圖,但是它的計(jì)算方法最為簡單,速度快,它給出的結(jié)果可以作為參考
那么我們知道視差又有另外一個(gè)概念就是UV-disparity mapping,簡單的給個(gè)圖表示:
是怎么得到這個(gè)結(jié)果的呢?原來是統(tǒng)計(jì)統(tǒng)計(jì)視差的個(gè)數(shù),比如V-disparity Map中的第一行分別統(tǒng)計(jì)視差為0,1,2,3,4,5的個(gè)數(shù),所以得到了V-disparity Map的第一行分別為
0,2,0,1,1,1,那么在真實(shí)的圖喜愛那個(gè)中得到的結(jié)果如下:
那么利用視差可以做很多有用的功能,比如列舉一篇文章
UV disparity based obstacle detection and pedestrian classification in urban traffic scenarios
二 Rays
ray就是連接圖像上一點(diǎn)到光心形成的一條射線。這個(gè)也是之后的對(duì)極約束的基礎(chǔ)。
那么建立世界坐標(biāo)系,我們的兩條rays是相交的。如下圖所示,接下來就是利用rays的相交關(guān)系,來解釋対極幾何(Epipolar geometry )了。
以上的圖文說明明了對(duì)極幾何(Epipolar Geometry)描述的是兩幅視圖之間的內(nèi)在射影關(guān)系,與外部場景無關(guān),只依賴于攝像機(jī)內(nèi)參數(shù)和這兩幅試圖之間的的相對(duì)姿態(tài)。
有以下幾種概念
1. 基線(baseline):直線Oc-Oc'為基線。
2. 對(duì)極平面束(epipolar pencil):以基線為軸的平面束。
3. 對(duì)極平面(epipolar plane):任何包含基線的平面都稱為對(duì)極平面。
4. 對(duì)極點(diǎn)(epipole):攝像機(jī)的基線與每幅圖像的交點(diǎn)。比如,上圖中的點(diǎn)e和e'。
5. 對(duì)極線(epipolar line):對(duì)極平面與圖像的交線。比如,上圖中的直線l和l'。
6. 5點(diǎn)共面:點(diǎn)x,x',攝像機(jī)中心Oc Oc',空間點(diǎn)X是5點(diǎn)共面的。
7. 極線約束:兩極線上點(diǎn)的對(duì)應(yīng)關(guān)系。
說明:
直線l是對(duì)應(yīng)于點(diǎn)x'的極線,直線l'是對(duì)應(yīng)于點(diǎn)x的極線。極線約束是指點(diǎn)x'一定在對(duì)應(yīng)于x的極線l'上,點(diǎn)x一定在對(duì)應(yīng)于x'的極線l上。
根據(jù)以上原理就得出了基礎(chǔ)矩陣F和本質(zhì)矩陣E等,網(wǎng)上有很多資料的
這里直接將推導(dǎo)公式貼出來就好了
本質(zhì)矩陣E的基本性質(zhì):秩為2,且僅依賴于外部參數(shù)R和T。其中,P表示世界坐標(biāo)點(diǎn)矢量,p表示像素點(diǎn)矢量
那么基礎(chǔ)矩陣求法:由于本質(zhì)矩陣E并不包含相機(jī)內(nèi)參信息,且E是面向相機(jī)坐標(biāo)系的。實(shí)際上,我們更感興趣的是在像素坐標(biāo)系上去研究一個(gè)像素點(diǎn)在另一視圖上的對(duì)極線,這就需要用到相機(jī)內(nèi)參信息將相機(jī)坐標(biāo)系和像素坐標(biāo)系聯(lián)系起來。假設(shè)Pl和Pr是世界坐標(biāo)值,其對(duì)應(yīng)的像素坐標(biāo)值為Ql和Qr
相機(jī)內(nèi)參矩陣為M,那么
根據(jù)
那么
令基礎(chǔ)矩陣
那么
也就是我們?cè)谙聢D的第一幅圖找到一個(gè)特征點(diǎn),通過以上対極幾何的知識(shí)推導(dǎo)出,該點(diǎn)在第二幅圖位于圖喜的哪個(gè)位置
舉個(gè)例子,比如kinect
無論是雙目還是kinect都是類似的原理
f=Focal length
b=Baseline
d=Disparity value
ps=Pixel size
D=Depth
備注:
(Pixel size)像素大小是圖像傳感器中單個(gè)像素的大小。像素大小用微米表示。由于立體視覺系統(tǒng)使用兩個(gè)攝像機(jī),圖像傳感器的像素大小必須相同。隨著像素尺寸的減小,系統(tǒng)的深度范圍增大。
(Disparity value)視差是指在兩個(gè)攝像機(jī)圖像之間的像素位置的差異。假設(shè)立體視覺相機(jī)中的左圖像在位置(1,30)具有像素,并且相同的像素在右圖像中的位置(4,30)存在,視差值或差值為(4-1)=3。視差值與上述公式的深度成反比。
聯(lián)系客服