雙攝像頭測(cè)距參考資料_第1頁(yè)
雙攝像頭測(cè)距參考資料_第2頁(yè)
雙攝像頭測(cè)距參考資料_第3頁(yè)
雙攝像頭測(cè)距參考資料_第4頁(yè)
雙攝像頭測(cè)距參考資料_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——雙攝像頭測(cè)距參考資料

雖然最近注意力已經(jīng)不可遏制地被神經(jīng)科學(xué)、大腦記憶機(jī)制和各種畢業(yè)活動(dòng)吸引過(guò)去了,但是還是覺(jué)得有必要把這段時(shí)間雙目視覺(jué)方面的進(jìn)展總結(jié)一下。終究從上一篇博文發(fā)表之后,好多同仁發(fā)E-mail來(lái)與我探討,好多原來(lái)的疑團(tuán),也在探討和一步步的試驗(yàn)中逐漸解決了。

開(kāi)篇之前,首先要感謝maxwellsdemon和wobject,沒(méi)有和你們的探討,也就沒(méi)有此篇的成文。

說(shuō)到雙攝像頭測(cè)距,首先要復(fù)習(xí)一下測(cè)距原理,把LearningOpenCV翻到416和418頁(yè),可以看到下面兩幅圖

圖1.雙攝像頭模型俯視圖

圖2,雙攝像頭模型立體視圖

圖1解釋了雙攝像頭測(cè)距的原理,書(shū)中Z的公式如下:

在OpenCV中,f的量綱是像素點(diǎn),Tx的量綱由定標(biāo)棋盤(pán)格的實(shí)際尺寸和用戶輸入值確定,一般總是設(shè)成毫米,當(dāng)然為了精度提高也可以設(shè)置為0.1毫米量級(jí),d=xl-xr的量綱也是像素點(diǎn)。因此分子分母約去,z的量綱與Tx一致

圖2解釋了雙攝像頭獲取空間中某點(diǎn)三維坐標(biāo)的原理。

可以看到,實(shí)際的坐標(biāo)計(jì)算利用的都是相像三角形的原理,其表達(dá)式就宛如Q矩陣所示。

空間中某點(diǎn)的三維坐標(biāo)就是(X/W,Y/W,Z/W)。

因此,為了確切地求得某個(gè)點(diǎn)在三維空間里的距離,我們需要獲得的參數(shù)有焦距f、視差d、攝像頭中心距Tx。

假使還需要獲得X坐標(biāo)和Y坐標(biāo)的話,那么還需要額外知道左右像平面的坐標(biāo)系與立體坐標(biāo)系中原點(diǎn)的偏移cx和cy。其中f,Tx,cx和cy可以通過(guò)立體標(biāo)定獲得初始值,并通過(guò)立體校準(zhǔn)優(yōu)化,使得兩個(gè)攝像頭在數(shù)學(xué)上完全平行放置,并且左右攝像頭的cx,cy和f一致(也就是實(shí)現(xiàn)圖2中左右視圖完全平行對(duì)準(zhǔn)的理想形式)。而立體匹配所做的工作,就是在之前的基礎(chǔ)上,求取最終一個(gè)變量:視差d(這個(gè)d一般需要達(dá)到亞像素精度)。從而最終完成求一個(gè)點(diǎn)三維坐標(biāo)所需要的準(zhǔn)備工作。

在明白了上述原理之后,我們也就知道了,所有的這幾步:標(biāo)定、校準(zhǔn)和匹配,都是圍圍著如何更確切地獲得f,d,Tx,cx和cy而設(shè)計(jì)的。

雙目測(cè)距的原理就說(shuō)到這里,為了避免大家看到大段純表達(dá)性的文字頭暈,下面的行文將會(huì)以FAQ的形式圍圍著實(shí)現(xiàn)雙攝像頭測(cè)距過(guò)程中碰見(jiàn)的幾點(diǎn)不解展開(kāi)。當(dāng)然,其中的解答也只是我的個(gè)人理解,如有不當(dāng),敬請(qǐng)指正。Q1:標(biāo)定時(shí)棋盤(pán)格的大小如何設(shè)定,對(duì)最終結(jié)果有沒(méi)有影響?

A:當(dāng)然有。在標(biāo)定時(shí),需要指定一個(gè)棋盤(pán)方格的長(zhǎng)度,這個(gè)長(zhǎng)度(一般以毫米為單位,假使需要更確切可以設(shè)為0.1毫米量級(jí))與實(shí)際長(zhǎng)度一致,標(biāo)定得出的結(jié)果

才能用于實(shí)際距離測(cè)量。一般假使尺寸設(shè)定確鑿的話,通過(guò)立體標(biāo)定得出的Translation的向量的第一個(gè)分量Tx的絕對(duì)值就是左右攝像頭的中心距。一般可以用這個(gè)來(lái)驗(yàn)證立體標(biāo)定的確鑿度。譬如我設(shè)定的棋盤(pán)格大小為270(27mm),最終得出的Tx大小就是602.8(60.28mm),相當(dāng)確切。

Q2:通過(guò)立體標(biāo)定得出的Tx符號(hào)為什么是負(fù)的?

A:這個(gè)其實(shí)我也不是很明白。個(gè)人的解釋是,立體標(biāo)定得出的T向量指向是從右攝像頭指向左攝像頭(也就是Tx為負(fù)),而在OpenCV坐標(biāo)系中,坐標(biāo)的原點(diǎn)是在左攝像頭的。因此,用作校準(zhǔn)的時(shí)候,要把這個(gè)向量的三個(gè)分量符號(hào)都要換一下,最終求出的距離才會(huì)是正的。

但是這里還有一個(gè)問(wèn)題,就是LearningOpenCV中Q的表達(dá)式,第四行第三列元素是-1/Tx,而在具體實(shí)踐中,求出來(lái)的實(shí)際值是1/Tx。這里我和maxwellsdemon探討下來(lái)的結(jié)果是,估計(jì)書(shū)上Q表達(dá)式里的這個(gè)負(fù)號(hào)就是為了抵消T向量的反方向所設(shè)的,但在實(shí)際寫(xiě)OpenCV代碼的過(guò)程中,那位朋友卻沒(méi)有把這個(gè)負(fù)號(hào)加進(jìn)去。(一家之言,求更詳細(xì)的解釋)

Q3:cvFindStereoCorrespondenceBM的輸出結(jié)果好像不是以像素點(diǎn)為單位的視差?

A:在OpenCV2.0中,BM函數(shù)得出的結(jié)果是以16位符號(hào)數(shù)的形式的存儲(chǔ)的,出于精度需要,所有的視差在輸出時(shí)都擴(kuò)大了16倍(2^4)。其具體代碼表示如下:dptr[y*dstep]=(short)(((ndisp-mind-1+mindisp)*256+(d!=0?(p-n)*128/d:0)+15)>>4);

可以看到,原始視差在左移8位(256)并且加上一個(gè)修正值之后又右移了4位,最終的結(jié)果就是左移4位

因此,在實(shí)際求距離時(shí),cvReprojectTo3D出來(lái)的X/W,Y/W,Z/W都要乘以16(也就是W除以16),才能得到正確的三維坐標(biāo)信息

Q4:利用雙攝像頭進(jìn)行測(cè)距的時(shí)候世界坐標(biāo)的原點(diǎn)畢竟在哪里?A:世界坐標(biāo)系的原點(diǎn)是左攝像頭凸透鏡的光心。

說(shuō)起這個(gè),就不得不提到針孔模型。如圖3所示,針孔模型是凸透鏡成像的一種簡(jiǎn)化模型。當(dāng)物距足夠遠(yuǎn)時(shí)(遠(yuǎn)大于兩倍焦距),凸透鏡成像可以看作是在焦距處的小孔成像。(ref:/2/lib/202310/04/20231004006.htm)

圖3.針孔模型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論