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

下載本文檔

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

文檔簡介

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

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

開篇之前,首先要感謝maxwellsdemon和wobject,沒有和你們的探討,也就沒有此篇的成文。

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

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

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

圖1解釋了雙攝像頭測距的原理,書中Z的公式如下:

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

圖2解釋了雙攝像頭獲取空間中某點三維坐標的原理。

可以看到,實際的坐標計算利用的都是相像三角形的原理,其表達式就宛如Q矩陣所示。

空間中某點的三維坐標就是(X/W,Y/W,Z/W)。

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

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

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

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

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

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

Q2:通過立體標定得出的Tx符號為什么是負的?

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

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

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

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

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

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

Q4:利用雙攝像頭進行測距的時候世界坐標的原點畢竟在哪里?A:世界坐標系的原點是左攝像頭凸透鏡的光心。

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

圖3.針孔模型

溫馨提示

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

評論

0/150

提交評論