三角測(cè)量原理與雙目視覺(jué)景深恢復(fù)
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
1.引言
眼睛是靈敏的光學(xué)感覺(jué)器官,是一切動(dòng)物與外界聯(lián)系的信息接受器。眾所周知人類依靠雙眼可以感知現(xiàn)實(shí)世界:物體的顏色、距離、大小等。隨著生物解剖學(xué)的發(fā)展,人們對(duì)人眼的生物結(jié)構(gòu)及機(jī)能有了科學(xué)的認(rèn)識(shí)。人眼是一個(gè)天然的高級(jí)光學(xué)系統(tǒng)。結(jié)構(gòu)非常復(fù)雜。形象的說(shuō),人眼像一架自動(dòng)攝像機(jī),水晶體如同攝像機(jī)的物鏡,能夠在人的神經(jīng)器官的控制下自動(dòng)調(diào)焦,瞳孔如同光圈,視網(wǎng)膜如同相機(jī)底片,接受物體的 影像信息。人眼感知景深的機(jī)制給了人們啟發(fā)。?經(jīng)過(guò)研究發(fā)現(xiàn)由相機(jī)在兩個(gè)不同的視角下拍攝的兩幅圖片,如果知道現(xiàn)實(shí)物點(diǎn) P 在兩幅圖片中的對(duì)應(yīng)關(guān)系, 就可以精確計(jì)算出 P 點(diǎn)的三維坐標(biāo)信息。可以用針孔模型來(lái)近似描述相機(jī)的成像機(jī)制,如圖所示。M 為現(xiàn)實(shí)場(chǎng)景中的一物點(diǎn), O為相機(jī)的光心, O' 為光心在像平面上的投影, OO'為相機(jī)光軸,M '為物點(diǎn) M 在像平面 P 上的像點(diǎn)。
針孔模型
?
為簡(jiǎn)單起見(jiàn),考慮間隔適當(dāng)距離、光軸平行的兩相機(jī)(相機(jī)參數(shù)一致)【這是最理想化的雙眼模型】,同一物點(diǎn) M (為了討論方便,假設(shè)物點(diǎn) M 位于左相機(jī)的左邊),在兩個(gè)相機(jī)的成像如圖所示。M1 為物點(diǎn) M 在右側(cè)相機(jī)像平面的像點(diǎn), M2 為物點(diǎn) M 在左側(cè)相機(jī)像平面的像點(diǎn), O1為右側(cè)相機(jī)的光心, O2為左側(cè)相機(jī)的光心。

雙目攝像機(jī)對(duì)點(diǎn)目標(biāo)成像原理圖
單獨(dú)拿出上圖的左右像平面來(lái)看,如下圖所示。I1、 I2為左右像平面的中心(也即分別為左右相機(jī)的光心在像平面上的投影),分別以 I1、 I2為坐標(biāo)中心建立坐標(biāo)系。由幾何知識(shí)可知O1O2 平行于 I1I2,記為O1O2 || I1I2, O1O2 || ?M1M2,所以M1M2 || I1I2 。

單點(diǎn)目標(biāo)在雙目攝像機(jī)左右視平面的成像
單獨(dú)來(lái)看平面 MM1M2(上圖中的陰影部分),易知 ?MO1O2相似于?MM1M2,所以,根據(jù)三角形相似原理:MO1/MM1 = O1O2/M1M2.
設(shè) M1 、 M 2 在對(duì)應(yīng)的像平面的橫坐標(biāo)分量別為 x1、 x2,則有:
M1M2 = I2I1 + x2-x1
如果定義兩相機(jī)的光心之間的距離為基線距離,記為b=I1I2 ,(x2-x1)為同一物點(diǎn)在兩個(gè)像平面上的視差,記為 d。則上式式可簡(jiǎn)化為:
M1M2 = b+d
則進(jìn)一步進(jìn)行公式推導(dǎo):
MO1/MM1 = MO1/(MO1+O1M1) = b / (b+d)
可以簡(jiǎn)化為:
MO1/O1M1 = b/d
現(xiàn)在單獨(dú)來(lái)看物點(diǎn) M 與其在右側(cè)相機(jī)的像平面的像點(diǎn) M1 的對(duì)應(yīng)關(guān)系。以右相機(jī)光心O1為坐標(biāo)原點(diǎn),如圖示建立世界坐標(biāo)系:

照相機(jī)成像坐標(biāo)系與光心所在世界坐標(biāo)系間的坐標(biāo)變換關(guān)系
通過(guò)這張圖像,我們很容易就可以得到,景深信息Z:
Z / O1I1 = MO1 / O1M1 = b / d (要知道O1I1是我們右側(cè)攝像機(jī)的焦距啊親!)
Z = (b*f)/d (f:攝像機(jī)的焦距)
由此,我們便可以恢復(fù)出目標(biāo)的景深信息。
?
3.1 X坐標(biāo)維度信息
X坐標(biāo)三維恢復(fù)示意圖
X/x1 = Z/f ? ? ?X = (x1*Z)/f
3.2 Y坐標(biāo)維度信息
Y坐標(biāo)三維恢復(fù)示意圖
Y/y1 = Z/f ? ? ?Y = (y1*Z)/f
?
給定相機(jī)參數(shù)和在一定位置所拍攝的兩幅雙目圖片,如何能夠找出所有像點(diǎn)的兩兩對(duì)應(yīng)關(guān)系?并求出相應(yīng)視差?
只有得到圖像上所有目標(biāo)點(diǎn)的視差才能得到相片中每一個(gè)像點(diǎn)對(duì)應(yīng)物點(diǎn)的三維坐標(biāo),這又是一項(xiàng)艱難的工作!
小白團(tuán)隊(duì)出品:零基礎(chǔ)精通語(yǔ)義分割↓↓↓

交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~




