双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。作者 | 李迎松@知乎
链接 | https://zhuanlan.zhihu.com/p/160946661
做过双目研究的伙伴们,肯定是经常和精度打交道的,大部分人也肯定知道,双目立体视觉的精度主要看的是深度方向的精度!深度图是很多双目设备的输出数据,通过深度图以及相机参数,可以算出三维点云的空间坐标,公式如下:
可知深度D DD的角色感很强,把深度估计准了,那三维点也就准了。(什么,相机标定也不准?当我没说!)
研发:“哥们,你们硬件做的不行啊!”
硬件:“屁,是你们算法不行!”
老板:“都是废物!”
1 算法因素
(一)视差偏差越小,深度偏差越小;换言之,算法的视差精度越高,深度精度越高,深度精度和视差精度成正比。所以更高精度的视差估计算法,自然能带来更高的深度精度。
2 硬件因素
(二)基线越大、焦距(像素单位)越长,深度精度越高。深度精度和基线、焦距成正比。
(三)像素大小越小,同样的物理尺寸焦距有更长的像素尺寸焦距,深度精度就越高。
3 深度范围
上面我们分析了算法参数和硬件参数对深度精度的影响,但还有一个重要的因素,它即非硬件相关也非算法相关,它就是深度本身的大小,也即深度范围。简单的说,目标离镜头的距离不同,精度是不一样的。
4 总结
我想大家其实在实际应用中都会有一些直观的理解,比如(1)算法越好,精度越高,明摆着嘛!(2)相机分辨率越高,精度越高,这不废话嘛!(3)基线越长,精度越高,显而易见嘛!本文的目的就是通过公式推导来严格证明,以让大家更加清晰的明白各因素影响精度的本质,从而更科学的指导双目系统的设计。再来汇总一下上面的四条结论:
(一)视差偏差越小,深度偏差越小;换言之,算法的视差精度越高,深度精度越高,深度精度和视差精度成正比。
(二)基线越大、焦距(像素单位)越长,深度精度越高。深度精度和基线、焦距成正比。
(三)像素大小越小,同样的物理尺寸焦距有更长的像素尺寸焦距,深度精度就越高。
(四)测量目标离系统越近,深度精度越高。
所以同学们你们现在知道怎么设计双目系统能提高精度了吗?
(1)选高精度视差估计算法
(2)在应用场景允许、结构稳定性满足需求的情况下,尽可能延长基线。
(3)在视场范围、景深满足需求的情况下,尽可能选择长焦镜头
(4)在算力允许的情况下,选择高分辨率相机(本质上应该是像素尺寸小的相机,有的相机提高了分辨率,只是提升了视域,但像素尺寸不变,那精度也不变)
(5)测量距离适当拉近(这点往往是场景需求决定的)
双一流大学研究生团队创建,专注于目标检测与深度学习,希望可以将分享变成一种习惯!整理不易,点赞三连↓