马来西亚雪邦赛道地图:Tsai摄像机标定算法中的dx,dy选取问题总结

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 19:12:04
【转】 Tsai摄像机标定算法中的dx,dy选取问题总结 2011-05-09 14:41转载自 Medsunshine最终编辑 求知小涛

在试验simonwang的Tsai代码时,一直存在一个疑问 dx和dy的选取问题 即为什么均设dx=dy=0.0044708???尤其在摄像机型号及参数未知的情况下,之前的双目立体视觉定位试验使用了这个设定并得到了可接受的结果(使用的摄像机为SONY的DC398P)的情况下,对此更为迷惑,于是决定研究一下。

利用百度搜索得到以下说法:
dx,dy的确是厂家提供的技术参数(对此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上查到一个做视觉的朋友帖出的利用参数的计算示例:
dy=3.6/582 dx=(4.8/512)×(512/720) 其中CCD的物理尺寸为3.6×4.8;Sensor elements为512×582;采集的图片象素为512×720;
先说这个例子,一开始的想法是数据有错,因为很明显,常见的CCD尺寸会包括4.8×3.6(即1/3英寸),所以猜测数据写错,但若是此物理尺寸有误,Sensor elements为512×582的这个数据也很可能有错,因为很难想象尺寸较短的边拥有较多的象素数,假设其也写反了然后类比自己的数据计算,发现明显错误;若不改,则出现奇怪的现象(有正确甚至更精确的结果,也有远远更坏的结果),至于解释则暂时还没有

对于Tsai的说法,基本能看出dx与dy的计算确实存在着差别,原因在哪儿呢,再次查阅文献,获得如下解释:
x方向是行扫描,y方向是隔行/逐行扫描,所以y方向基本没有压缩,但是x方向要根据扫描的频率、采样频率来决定一个压缩比例

由此翻回了张广军的《机器视觉》,仔细阅读Tsai标定算法的介绍部分,最终得到了我认为是正确的答案:
在Tsai的方法中,实际上进行计算机帧存象素坐标和图像实际坐标转换使用的是dx'和dy,问题就出在dx'=dx*Ncx/Nfx;dy=dy(dx,dy分别为X,Y方向上的象素间距)。这里的Ncx为摄像机每行捕捉到的象素(由CCD摄像机参数决定),Nfx为计算机每行采集到的象素数(在这里该参数由所采用的图像采集卡决定!);同时Y方向上不受压缩!在simonwang兄台的代码中设Nfx=Ncx=1!!!这就意味着全图像采集,所以本人在这里产生了概念上的混淆,并且simon所用的摄像机也并不一样~~~经过代码测试,定位精度显著提高,这个问题解决了
但仍然对dx=dy=0.0044708的来源深感兴趣,~有待进一步考证~~在这个领域中学得越多,还是越发感觉到自己的渺小!