我正在研究一个基于立体摄像头的移动机器人避障系统。它将在室内使用,所以我假设地平面是平的。我们还可以设计自己的环境,这样我就可以避免产生误报或误报的特定类型的障碍。
我已经找到了大量的资源来校准相机和获得图像排列,以及关于生成视差图/深度图的信息。我正在努力研究的是从中探测障碍物的技术。另一种通过探测地平面而起作用的技术也同样有用。
我正在使用openCV,并使用书学习openCV作为参考。
谢谢,所有的
从我读过的文献来看,有三种主要的方法:
-
地平面接近从立体数据中确定地平面,并假设所有不在平面上的点都是障碍物。如果假设地面是图像中的主平面,那么您可以使用鲁棒模型拟合算法(如RANSAC)将其简单地找到重建点云的平面。
-
视差贴图方法跳过将立体声输出转换为点云。我见过的最流行的算法是v-视差和uv-视差。两者在视差图中寻找相同的属性,但uv-disparity可以检测到v-disparity单独无法检测到的某些类型的障碍物。
-
点云方法将视差图投影成三维点云,并对这些点进行处理。其中一个例子是"倒锥算法",它使用最小障碍物高度、最大障碍物高度和最大地面倾斜度来检测任意非平坦地形上的障碍物。
在这三种方法中,检测地平面是最简单和最不可靠的。如果你的环境中有稀疏的障碍物和有纹理的地面,这就足够了。我对差异图方法没有太多经验,但结果看起来很有希望。最后,Manduchi算法在各种条件下都能很好地工作,包括在不平坦的地形上。不幸的是,它很难实现,而且计算成本非常高。
引用:
- v-Disparity: Labayrade, R. and Aubert, D. and Tarel, J.P. 基于v-视差表示的非平坦道路几何立体视觉实时障碍物检测
- uv-Disparity: Hu, Z. and Uchimura, K. uv-Disparity:一种基于立体视觉的高效场景分析算法
- 倒锥算法: Manduchi, R. and Castano, A. and Talukder, A. and Matthies, L. 自动越野导航的障碍物检测和地形分类
有几篇论文是关于地平面障碍物检测算法的,但我不知道有一篇好的。如果你只是需要一个起点,你可以在本设计报告的4.2.3节和4.3.4节中阅读我对最近一个项目的实现。这里没有足够的空间来讨论完整的实现,但是它确实解决了您可能遇到的一些问题。