在試驗simonwang的Tsai代碼時,一直存在一個疑問 dx和dy的選取問題 即為什么均設(shè)dx=dy=0.0044708???尤其在攝像機型號及參數(shù)未知的情況下,之前的雙目立體視覺定位試驗使用了這個設(shè)定并得到了可接受的結(jié)果(使用的攝像機為SONY的DC398P)的情況下,對此更為迷惑,于是決定研究一下。
利用百度搜索得到以下說法:
dx,dy的確是廠家提供的技術(shù)參數(shù)(對此simonwang的代碼說明中也有講到),他們是CCD面陣單元水平和垂直間距。
同時查閱Tsai《A Versatile Camera Calibration Technique...》原文有以下說法:
dX :center to center distance between adjacent sensor elements in X (scan line) direction
dY :center to center distance between adjacent CCD sensors in Y direction
Reg Willson的《Tsai Camera Calibration FAQ 》 中則是這么說的:(接近百度獲得的答案)
dx - X dimension of camera's sensor element (in mm/sel),
dy - Y dimension of camera's sensor element (in mm/sel),
從China-Vision上查到一個做視覺的朋友帖出的利用參數(shù)的計算示例:
dy=3.6/582 dx=(4.8/512)×(512/720) 其中CCD的物理尺寸為3.6×4.8;Sensor elements為512×582;采集的圖片象素為512×720;
先說這個例子,一開始的想法是數(shù)據(jù)有錯,因為很明顯,常見的CCD尺寸會包括4.8×3.6(即1/3英寸),所以猜測數(shù)據(jù)寫錯,但若是此物理尺寸有誤,Sensor elements為512×582的這個數(shù)據(jù)也很可能有錯,因為很難想象尺寸較短的邊擁有較多的象素數(shù),假設(shè)其也寫反了然后類比自己的數(shù)據(jù)計算,發(fā)現(xiàn)明顯錯誤;若不改,則出現(xiàn)奇怪的現(xiàn)象(有正確甚至更精確的結(jié)果,也有遠遠更壞的結(jié)果),至于解釋則暫時還沒有
對于Tsai的說法,基本能看出dx與dy的計算確實存在著差別,原因在哪兒呢,再次查閱文獻,獲得如下解釋:
x方向是行掃描,y方向是隔行/逐行掃描,所以y方向基本沒有壓縮,但是x方向要根據(jù)掃描的頻率、采樣頻率來決定一個壓縮比例
由此翻回了張廣軍的《機器視覺》,仔細(xì)閱讀Tsai標(biāo)定算法的介紹部分,最終得到了我認(rèn)為是正確的答案:
在Tsai的方法中,實際上進行計算機幀存象素坐標(biāo)和圖像實際坐標(biāo)轉(zhuǎn)換使用的是dx'和dy,問題就出在dx'=dx*Ncx/Nfx;dy=dy(dx,dy分別為X,Y方向上的象素間距)。這里的Ncx為攝像機每行捕捉到的象素(由CCD攝像機參數(shù)決定),Nfx為計算機每行采集到的象素數(shù)(在這里該參數(shù)由所采用的圖像采集卡決定!);同時Y方向上不受壓縮!在simonwang兄臺的代碼中設(shè)Nfx=Ncx=1!?。∵@就意味著全圖像采集,所以本人在這里產(chǎn)生了概念上的混淆,并且simon所用的攝像機也并不一樣~~~經(jīng)過代碼測試,定位精度顯著提高,這個問題解決了
但仍然對dx=dy=0.0044708的來源深感興趣,~有待進一步考證~~在這個領(lǐng)域中學(xué)得越多,還是越發(fā)感覺到自己的渺??!