Answers:
从我的头顶上方出发,我将遵循以下选择标准
您应该首先计算每秒需要多少帧,以及在该帧速率下可以处理多少相机分辨率。如果没有别的,那将防止您超支或购买不满足您需求的相机。
除此之外,还有多种功能使选择更加困难/有趣。不同的摄像机(尤其是像Axis这样的网络摄像机)使您可以更改图像质量,或为图像流指定最大比特率。某些相机还为您提供快门速度的选择,使您可以选择恒定的曝光时间或恒定的图像平均照度。有些相机比其他相机更敏感(我上次使用此相机是在2009年,我们注意到PS3 Eye在弱光条件下的表现确实不错)。
可能最好的办法是对使用DSLR拍摄的一些静态图像运行图像处理算法,然后尝试减小帧大小和质量,以查看发生故障的地方。
您应该注意以下几点:
某些相机,尤其是火线相机AFAIK,可以实现硬件中的相机同步。当事物四处移动时,这可以极大地改善立体声效果。
安装时,应确保校准后立体声对的外部参数(摄像机之间的相对姿势)的变化不太可能改变。在您的钻机中,这可能更为重要,因为UGV可能会面对户外崎uneven不平的地形,并且物体会振动。
专用的立体声硬件可以直接获取视差图像作为立体声视觉系统的输出,从而减轻了嵌入式计算的负担。它也往往比在软件中运行完全相同的算法要快得多。
与往常一样,您愿意付出的越多,结果就越好。老实说,如果您能够购买像Bumblebee2这样的功能完善的立体声相机,那就是我会做的。否则,如果您的价格偏低,我将只选择Kinect:不太可能以相同的价格获得性能优于其的系统。
这是一个有趣的话题,第一次尝试并不容易。根据经验,这是最重要的事情。
同步。相机必须100%同步。例如,假设UGV以适度的36Km / hr(10m / s)的速度行驶,并以每秒30帧的速度记录帧。也就是说,UGV在每帧将覆盖3m。现在,假设您的同步关闭了1ms,其中一台摄像机将关闭〜0.3m,这很糟糕[就在我的头顶]。同步问题很难发现。
解决方法。在立体声环境中,我们指的是深度分辨率,或者在视差变化的情况下可以解决多少深度。在此处可以找到很好的解释:http ://pub1.willowgarage.com/~konolige/svs/disparity.htm您要查看的方程式是图像焦距和立体基线的函数。。这表示深度分辨力与基线乘以焦距成反比。那就是基线越长,越小越好。这意味着,您可以解决更多的问题。视差的最小变化δŽ乙˚FδŽδdδd1/2δd由图像分辨率和所用算法部分控制。为了进行计算,可以安全地假设至少为。选择最好保持保守。
重叠。您希望摄像机之间有重叠以获取立体声。因此,您需要选择镜头焦距(视野)和基线的组合,以便为应用程序提供足够的重叠。基本上,三角函数可以在板上运行,也可以在快速的matlab / python脚本中运行。
对于UGV,立体声有两种用途。
导航和姿势估计在这种情况下,您很可能需要较大的基线+长焦距。这样可以使立体声更好地看到和分辨深度,并扩大范围。
障碍物的检测和避免您可能需要较短的基线和较宽的镜头(较小的焦距),以便您可以专注于离自己很近的事物。
某些UGV可能同时具有立体声设置,用于导航的较大基线窄视场和用于避障的另一或两个。
请务必小心购买。一些公司提供已经建立的立体声设置。在坚固性方面,这些功能很棒,它们不容易丢失校准,并且始终保持同步。问题在于市售的基准线很小。如果您想建立自己的。我猜测您最终会这样做,请确保相机可同步。Firewire非常适合此功能,同一总线上的两个摄像头开箱即用,同步精度为125微秒!USB和Gige凸轮很难同步。将所有组件放在一起时,您要确保镜头完全不会移动,并且基线是刚性的,对于应用程序来说非常刚性。
在选择镜头时也要小心。并非所有镜头都适用于所有相机。镜头也有分辨率。这是另一个主题,这是此http://www.qualitymag.com/articles/90642-qa--selecting-lenses-for-machine-vision-systems上的简短文章