双摄像头测距参考资料_第1页
双摄像头测距参考资料_第2页
双摄像头测距参考资料_第3页
双摄像头测距参考资料_第4页
双摄像头测距参考资料_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——双摄像头测距参考资料

虽然最近注意力已经不可遏制地被神经科学、大脑记忆机制和各种毕业活动吸引过去了,但是还是觉得有必要把这段时间双目视觉方面的进展总结一下。终究从上一篇博文发表之后,好多同仁发E-mail来与我探讨,好多原来的疑团,也在探讨和一步步的试验中逐渐解决了。

开篇之前,首先要感谢maxwellsdemon和wobject,没有和你们的探讨,也就没有此篇的成文。

说到双摄像头测距,首先要复习一下测距原理,把LearningOpenCV翻到416和418页,可以看到下面两幅图

图1.双摄像头模型俯视图

图2,双摄像头模型立体视图

图1解释了双摄像头测距的原理,书中Z的公式如下:

在OpenCV中,f的量纲是像素点,Tx的量纲由定标棋盘格的实际尺寸和用户输入值确定,一般总是设成毫米,当然为了精度提高也可以设置为0.1毫米量级,d=xl-xr的量纲也是像素点。因此分子分母约去,z的量纲与Tx一致

图2解释了双摄像头获取空间中某点三维坐标的原理。

可以看到,实际的坐标计算利用的都是相像三角形的原理,其表达式就宛如Q矩阵所示。

空间中某点的三维坐标就是(X/W,Y/W,Z/W)。

因此,为了确切地求得某个点在三维空间里的距离,我们需要获得的参数有焦距f、视差d、摄像头中心距Tx。

假使还需要获得X坐标和Y坐标的话,那么还需要额外知道左右像平面的坐标系与立体坐标系中原点的偏移cx和cy。其中f,Tx,cx和cy可以通过立体标定获得初始值,并通过立体校准优化,使得两个摄像头在数学上完全平行放置,并且左右摄像头的cx,cy和f一致(也就是实现图2中左右视图完全平行对准的理想形式)。而立体匹配所做的工作,就是在之前的基础上,求取最终一个变量:视差d(这个d一般需要达到亚像素精度)。从而最终完成求一个点三维坐标所需要的准备工作。

在明白了上述原理之后,我们也就知道了,所有的这几步:标定、校准和匹配,都是围围着如何更确切地获得f,d,Tx,cx和cy而设计的。

双目测距的原理就说到这里,为了避免大家看到大段纯表达性的文字头晕,下面的行文将会以FAQ的形式围围着实现双摄像头测距过程中碰见的几点不解展开。当然,其中的解答也只是我的个人理解,如有不当,敬请指正。Q1:标定时棋盘格的大小如何设定,对最终结果有没有影响?

A:当然有。在标定时,需要指定一个棋盘方格的长度,这个长度(一般以毫米为单位,假使需要更确切可以设为0.1毫米量级)与实际长度一致,标定得出的结果

才能用于实际距离测量。一般假使尺寸设定确凿的话,通过立体标定得出的Translation的向量的第一个分量Tx的绝对值就是左右摄像头的中心距。一般可以用这个来验证立体标定的确凿度。譬如我设定的棋盘格大小为270(27mm),最终得出的Tx大小就是602.8(60.28mm),相当确切。

Q2:通过立体标定得出的Tx符号为什么是负的?

A:这个其实我也不是很明白。个人的解释是,立体标定得出的T向量指向是从右摄像头指向左摄像头(也就是Tx为负),而在OpenCV坐标系中,坐标的原点是在左摄像头的。因此,用作校准的时候,要把这个向量的三个分量符号都要换一下,最终求出的距离才会是正的。

但是这里还有一个问题,就是LearningOpenCV中Q的表达式,第四行第三列元素是-1/Tx,而在具体实践中,求出来的实际值是1/Tx。这里我和maxwellsdemon探讨下来的结果是,估计书上Q表达式里的这个负号就是为了抵消T向量的反方向所设的,但在实际写OpenCV代码的过程中,那位朋友却没有把这个负号加进去。(一家之言,求更详细的解释)

Q3:cvFindStereoCorrespondenceBM的输出结果好像不是以像素点为单位的视差?

A:在OpenCV2.0中,BM函数得出的结果是以16位符号数的形式的存储的,出于精度需要,所有的视差在输出时都扩大了16倍(2^4)。其具体代码表示如下:dptr[y*dstep]=(short)(((ndisp-mind-1+mindisp)*256+(d!=0?(p-n)*128/d:0)+15)>>4);

可以看到,原始视差在左移8位(256)并且加上一个修正值之后又右移了4位,最终的结果就是左移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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论