網(wǎng)友snow2012720
我剛開始學(xué)習(xí)計(jì)算機(jī)視覺的雙目三維重建內(nèi)容,感覺好多內(nèi)容不懂,看到你的博文,了解到你對(duì)雙目標(biāo)定三維重建這些有深入的研究,您是過來人了,能否幫忙給我在學(xué)習(xí)標(biāo)定匹配三維重建過程中給予指點(diǎn)?包括看什么資料,用什么算法程序等等,非常感謝!
答復(fù):
其實(shí)雙目三維重建這一塊我也沒有深入的原理研究,只是有一些相關(guān)經(jīng)驗(yàn)吧。有一些資料對(duì)于這方面是很重要的,包括:
1、相機(jī)標(biāo)定的理論與工具
相機(jī)標(biāo)定是計(jì)算機(jī)視覺最基礎(chǔ)也是至關(guān)重要的一個(gè)問題,標(biāo)定的精度夠不夠決定了以后的校正、去畸變、配準(zhǔn)、計(jì)算三維坐標(biāo)、恢復(fù)三維模型能否進(jìn)一步做下去。這方面推薦你看張正友關(guān)于相機(jī)標(biāo)定的paper(谷歌一下吧),這是這方面最重要的一個(gè)理論基礎(chǔ),目前我們使用的matlab標(biāo)定工具箱 和 opencv標(biāo)定api都是以這篇論文的方法為基礎(chǔ)的。
2、熟悉matlab calibration tollbox、 matlab computer vision toolbox 和 opencv
這是做這一塊最重要的幾個(gè)工具。opencv 的sample中有一個(gè)源程序 你可以到opencv的安裝路徑下去找stereo_match .cpp stereo_calib.cpp這兩個(gè)程序是opencv給的雙目匹配、相機(jī)標(biāo)定的例子,跑一遍就知道整個(gè)過程了。matlab computer vision toolbox是2010版本才有的貌似,反正2008沒有
3、網(wǎng)上的相關(guān)資料
北航的一個(gè)博士的opencv學(xué)習(xí)筆記,對(duì)于初學(xué)者非常有幫助
http://blog.csdn.net/chenyusiyuan/article/details/5072597
opencv中文論壇
opencv的書籍:《學(xué)習(xí)opencv》很經(jīng)典的一本書
opencv 幫助文檔 http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html
有條件的話找一篇碩士或者博士論文看看,會(huì)讓你對(duì)整個(gè)領(lǐng)域有一個(gè)全貌的了解
我所知道的也只有這些了,祝學(xué)習(xí)順利!
QQ 網(wǎng)友龍卷風(fēng)問:
我現(xiàn)在在做標(biāo)定時(shí) 得到的相機(jī)焦距在x y方向所占的象素不一樣 (一個(gè)994 一個(gè)999)但我的象元是方形的 5.2*5.2 這是為什么啊?
另外 我已知特征點(diǎn)的象素坐標(biāo) 想得到他的攝像機(jī)系下的坐標(biāo) 其中z值 我直接用的焦距 這樣對(duì)嗎?
答復(fù):
焦距在x y方向所占的象素不相等,表明一個(gè)像素的x、y兩個(gè)方向的尺寸不完全相等,可能的原因:(1)由于工藝條件限制,做不到象元的長(zhǎng)寬完全的相等 (2)標(biāo)定的過程本身有誤差 不知道你采集圖片是否足夠多,一般20張以上為佳
你給我看的結(jié)果 焦距在x y方向所占的象素似乎差別不算大 還是可以的
已知特征點(diǎn)的象素坐標(biāo) 想得到他的攝像機(jī)系下的坐標(biāo) 如果你說的特征點(diǎn) 指的是標(biāo)定板的方格頂點(diǎn), 這應(yīng)該根據(jù)相機(jī)的外參數(shù)可以得到,也就是拍這張照片時(shí)標(biāo)定板坐標(biāo)系和相機(jī)坐標(biāo)系之間的變換關(guān)系(旋轉(zhuǎn)矩陣、平移向量描述)。直接用的焦距是怎么做的,我不太明白,能否說一下你的思路,如果直接用焦距作為Z值,肯定是沒有意義的了 呵呵
網(wǎng)友tingingjiayou:
我想問一下,如果使用標(biāo)定工具箱進(jìn)行標(biāo)定,扭曲系數(shù)表示的是什么意思?怎么樣看出主點(diǎn)的偏移量,謝謝您了!幫我解決下
答復(fù):
在http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html 中,對(duì)扭去系數(shù)Skew coefficient的定義是:
The skew coefficient defining the angle between the x and y pixel axes is stored in the scalar alpha_c.
翻譯一下,扭曲系數(shù)就是一個(gè)像素的x,y兩個(gè)方向的夾角的表示,以標(biāo)量alpha_c表示。
該頁(yè)面還有一段話:
Observe that fc(1) and fc(2) are the focal distance (a unique value in mm) expressed in units of horizontal and vertical pixels. Both components of the vector fc are usually very similar. The ratio fc(2)/fc(1), often called "aspect ratio", is different from 1 if the pixel in the CCD array are not square. Therefore, the camera model naturally handles non-square pixels. In addition, the coefficient alpha_c encodes the angle between the x and y sensor axes. Consequently, pixels are even allowed to be non-rectangular. Some authors refer to that type of model as "affine distortion" model.
翻譯一下,大意是說, fc(2)/fc(1)可以不等于1,表明一個(gè)像素的x、y兩個(gè)方向的尺寸可以不相等,并且,一個(gè)像素的x、y兩個(gè)方向可以不垂直,以至于一個(gè)像素不一定要是長(zhǎng)方形!扭曲系數(shù)就是度量這種遠(yuǎn)離矩形的程度的。
關(guān)于主點(diǎn)的偏移量,關(guān)鍵是要理解 主點(diǎn)位置cc 和 主點(diǎn)偏移量 的概念。
主點(diǎn)偏移量就是主點(diǎn)位置距離照片的中心的物理距離(以mm為單位,不是像素為單位)
http://blog.sina.com.cn/s/blog_77805ef60100s9a6.html 這里有答案,轉(zhuǎn)述如下
該如何計(jì)算像主點(diǎn)偏移量?
像主點(diǎn)偏移量的計(jì)算:我們相機(jī)檢校獲得的是像主點(diǎn)位置坐標(biāo)。
相機(jī)檢校參數(shù):
主點(diǎn)x0:2785.2544主點(diǎn)y0:1895.4608(單位:像素)
像幅5616*3744像素,像素大小:6.41um
該如何計(jì)算像主點(diǎn)偏移量?
x偏移量=(x0-5616/2)*6.41um
y偏移量=(y0-3744/2)*6.41um
然后在分別除以1000,換算為mm。
網(wǎng)友cy610374797 2012-06-02 19:43 表示:“我只想要一個(gè)代碼,輸入像素點(diǎn)的坐標(biāo),輸出該點(diǎn)對(duì)應(yīng)的攝像機(jī)坐標(biāo),求助”
答復(fù)如下:
你想要的這個(gè)效果,就是雙目視覺領(lǐng)域的研究想要達(dá)到的最終效果:通過兩個(gè)相機(jī)的照片或者視頻信息,得到照片中特征點(diǎn)的三維坐標(biāo)信息,即通過雙目(兩個(gè)攝像頭)達(dá)到“視覺”(獲得物體的三維坐標(biāo)信息)。很遺憾的告訴你,我對(duì)這方面的積累還遠(yuǎn)遠(yuǎn)不足以給你一個(gè)直接就能用的代碼。我只能就我的理解,寫一寫我對(duì)實(shí)現(xiàn)這個(gè)效果的步驟的認(rèn)識(shí),未必全正確,請(qǐng)仔細(xì)推敲。
要達(dá)到這個(gè)目的,要分兩步,第一步,是攝像機(jī)標(biāo)定,通過標(biāo)定,得到左右相機(jī)的內(nèi)參外參,以及右邊相機(jī)相對(duì)于左邊相機(jī)的位置和角度關(guān)系(涉及旋轉(zhuǎn)和平移)。這也就是我的這四篇文章一直在講的事。
雙目標(biāo)定的原理及MATLAB標(biāo)定工具箱的使用
MATLAB標(biāo)定工具箱的使用(一)、(二)、(三)
第二步,就是利用這些標(biāo)定好的信息,通過照片上的像素位置來計(jì)算世界三維坐標(biāo)了,這就是計(jì)算機(jī)視覺中三維重建所研究的問題。
我這里提供了一個(gè)三維重建的計(jì)算函數(shù),使用matlab寫的,通過兩幅圖像中的匹配點(diǎn)重建該匹配點(diǎn)在世界坐標(biāo)系的坐標(biāo)
注意,這里提到的兩幅圖中的射影矩陣實(shí)際上就是MATLAB標(biāo)定工具箱的使用(一)所述的投影矩陣,即內(nèi)參矩陣和外參矩陣的乘積,而且這里的重建需要知道特征點(diǎn)在兩副照片中像素位置的對(duì)應(yīng)關(guān)系。這種對(duì)應(yīng)關(guān)系可以借用對(duì)極線來刻畫,建議去了解一些對(duì)極線的內(nèi)容,這方面我也不是很懂。
function X= Reconstruction(Pt1,Pt2,P1,P2)
%通過兩幅圖像中的匹配點(diǎn)重建該匹配點(diǎn)在世界坐標(biāo)系的坐標(biāo)
%輸入說明
% Pt1 第一幅圖像中匹配點(diǎn)的像素坐標(biāo)(2列)
% Pt2 第二幅圖像中匹配點(diǎn)的像素坐標(biāo)(2列)
% P1 第一幅圖像的射影矩陣(3*4)
% P2 第二幅圖像的射影矩陣
Np=size(Pt1,1);
X=zeros(Np,4);
for i=1:Np
A=zeros(4,4);
A(1,:)=P1(1,:)-Pt1(i,1)*P1(3,:);
A(2,:)=P1(2,:)-Pt1(i,2)*P1(3,:);
A(3,:)=P2(1,:)-Pt2(i,1)*P2(3,:);
A(4,:)=P2(2,:)-Pt2(i,2)*P2(3,:);
T= MinEigVector ( A'*A );%求最小特征值對(duì)應(yīng)的特征向量
X(i,:)=(T/T(4))';
end
csdn 網(wǎng)友chenyianhfut 問我:
大俠,你好,想問下,標(biāo)定工具箱標(biāo)定出來的fc是什么啊,我通過不同的鏡頭拍攝的圖像進(jìn)行標(biāo)定,fc都不一樣,能通過這些值求出有效焦距(mm)嗎,謝謝
為了和其他網(wǎng)友分享,我將答復(fù)發(fā)表如下:
fc的意思是用照片的像素尺寸折算出來的相機(jī)焦距,可以參考:
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html
這里的解釋是Focal length: The focal length in pixels is stored in the 2x1 vector fc.
既然是焦距,不同的鏡頭焦距不一樣就很正常了。你的有效焦距的問題是這樣的,記有效焦距為f(mm),則fc=[f/dx , f/dy] 這里的dx dy分別表示照片上一個(gè)像素點(diǎn)在水平和垂直方向?qū)?yīng)于成像平面的物理距離(mm為單位),注意fc包含兩個(gè)方向的值。求有效焦距(mm)需要知道dx dy。建議你參考http://wenku.baidu.com/view/51cbe7da6f1aff00bed51edf.html
網(wǎng)友limeng198616 問:
您好,見您寫了好幾篇關(guān)于攝像機(jī)標(biāo)定的博文,您對(duì)攝像機(jī)標(biāo)定因該比較精通。我這段時(shí)間正在用matlab標(biāo)定工具箱,但我發(fā)現(xiàn)標(biāo)定出來的主點(diǎn)坐標(biāo)誤差非常大,我在實(shí)際中根本就沒法子用。這是怎么個(gè)一回事啊?例如同一個(gè)攝像機(jī)第一次標(biāo)定出來的結(jié)果是300*282,第二次標(biāo)定就成了367*277,期間相機(jī)完全沒動(dòng)過,就是兩次標(biāo)定用的圖像不一樣。
答復(fù)如下:
你說的這個(gè)問題我沒有細(xì)究過,不過有兩點(diǎn)有必要確認(rèn)一下:一、對(duì)相機(jī)的一次標(biāo)定要多用幾張圖才會(huì)比較準(zhǔn)確,如果你的兩次標(biāo)定是每次用一張圖,那不準(zhǔn)是很正常的;二、如果你的相機(jī)是自動(dòng)變焦的,也可能會(huì)造成主點(diǎn)的計(jì)算差別大;三、如果不是前兩種原因,建議你做采集幾組照片標(biāo)定試試看。matlab的相機(jī)標(biāo)定工具箱calibration toolbox的標(biāo)定是先預(yù)估然后做迭代優(yōu)化,預(yù)估時(shí),主點(diǎn)的值一定是照片的尺寸的一半,如照片是1024*768 那么主點(diǎn)初值是512*384 經(jīng)過優(yōu)化以后會(huì)有小范圍調(diào)整,不會(huì)偏差太遠(yuǎn)。
編輯:黃飛
-
攝像機(jī)
+關(guān)注
關(guān)注
3文章
1596瀏覽量
60016 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45977
原文標(biāo)題:關(guān)于相機(jī)標(biāo)定的問題答復(fù)網(wǎng)友
文章出處:【微信號(hào):機(jī)器視覺沙龍,微信公眾號(hào):機(jī)器視覺沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論