我正在将Stereolabs ZED相机用于我的计算机视觉项目。我对市场上的几种传感器进行了小型研究,最终我们决定使用ZED相机。

但是我发现相机的精度不是很好。而且,点云占用了过多的存储空间。有人发现同样的问题吗?如果是这样,您是如何管理它们的?

评论

您能否更明确地说明“良好的精度”对您意味着什么?您对存储空间的限制是什么(为什么您不能仅仅添加更多内容?)?

在Stack交换上,我们倾向于根据您遇到的实际问题提出实用,可回答的问题,因此,这些问题可征询经验,询问方法列表或对方法的主观建议(如如何构建某些东西,如何完成某件事,做什么某事)有能力等)。请查看“如何询问和游览”以获取有关堆栈交换如何工作的更多信息。

#1 楼

我不知道您所说的“精度”是什么意思,以及您如何衡量它。感测精度可能会回到相机校准精度和所使用的立体声匹配算法。如果他们“校准”了设备,那么没人会知道在工厂对摄像机进行校准之后以及在您获得设备之前(机械震动,温度波动)发生了什么,因此,您最好自己重新校准(使用OpenCV,Matlab等)。 。

如果您对立体视觉本身的深度精度感兴趣,请参见以下公式:


其中dz是深度误差(以米为单位),z是深度深度(以米为单位),de是视差误差(以像素为单位),f是相机的焦距(以像素为单位),b是相机基线(以米为单位) 。上面的方程式的主要信息是深度误差随深度(与相机的距离)本身的平方而增大。鉴于ZED相机具有这两种相对较小的特性-基线“仅”为120mm,并且由于对角线110度的FOV相当大,f将非常小(f为“ FOV倒置”,因此,较宽的FOV可使f变小)。对您有好处的是高分辨率,这应该意味着较小的视差误差,可以弥补不良的f和b值。

关于点云大小-这可以追溯到传感器的相当高的分辨率ZED相机。立体声可能实际上并不需要高分辨率,因为1)立体声匹配需要很长时间2)点云很大3)深度精度可能不会好得多,因为视差通常是由子像素精度决定的。因此,请查看您的项目所需的角度分辨率-您可以计算出相机(= sensor + lens)的每个角度(水平,垂直)有多少像素。如果太大,则可以降低角度分辨率(=降低传感器分辨率),而不会损害计算机的视觉效果。

希望这会有所帮助!

#2 楼

为了提高精度,请尝试使用MATLAB中的“立体声相机校准器”应用程序校准相机。

就点云占用的内存而言,这实际上取决于您拥有多少个点。您总是可以尝试降低相机的分辨率,对点云本身进行下采样和/或使用精度较低的数据类型来存储坐标。