寻找2D图像中的路径障碍物

时间:2011-05-15 10:27:04

标签: opencv robotics image-recognition

您建议在2D图像中找到障碍物的方法是什么?

以下是我提出的一些要点:

我怀疑我可以使用基于“障碍物数据库”搜索的物体识别,因为我不知道障碍物的样子。 如果路径与对象本身没有太大区别,我认为颜色识别可能会有问题。

可能会增加一个摄像头并计算一个3D图像(就像Kinect那样)会起作用,但是这不会像我要求的那样顺畅。

说明问题;机器人可以骑在路面的左侧或右侧。在下图中,左侧是正确的选择: enter image description here

1 个答案:

答案 0 :(得分:2)

如果您知道路径是什么样的,那么这主要是分类问题。获取一系列不同距离,照明等路径的图像,并手动标记每个图像中的地面。使用此标记数据来训练将每个像素分类为“道路”或“非道路”的分类器。根据道路的纹理,这可以简单到分类每个像素的RGB(或HSV)值或使用OpenCv的内置直方图反投影(即cv::CalcBackProjectPatch())。

我建议从手动阈值开始,转向基于直方图的匹配,并且如果更简单的技术失败,则仅使用完整的机器学习分类器(例如朴素贝叶斯分类器或SVM)。一旦整个图像被分类,被识别为“非道路”的所有像素都是障碍物。通过对道路而不是障碍物进行分类,我们完全避免建立“对象数据库”。


在问题的范围之外,最简单的解决方案是添加额外的传感器(“在问题中投入更多硬件!”)并直接测量障碍物的三维位置。按优先顺序排列:

  1. Microsoft Kinect :便宜,简单,高效。由于环境红外线,它只能在室内工作。
  2. 扫描激光测距仪:非常准确,易于设置,可在室外工作。也非常昂贵(约1200-10,000美元,取决于最大范围和采样率)。
  3. 立体相机不如Kinect好,但它在外面工作。如果您买不起预制的立体相机(约1800美元),您可以使用USB网络摄像头制作一个不错的定制立体相机。
  4. 请注意,使用自定义硬件(立体声片上,STOC),专业立体视觉相机可以非常快。基于软件的立体声在现代计算机上也相当快(10-20赫兹)。