您建议在2D图像中找到障碍物的方法是什么?
以下是我提出的一些要点:
我怀疑我可以使用基于“障碍物数据库”搜索的物体识别,因为我不知道障碍物的样子。 如果路径与对象本身没有太大区别,我认为颜色识别可能会有问题。
可能会增加一个摄像头并计算一个3D图像(就像Kinect那样)会起作用,但是这不会像我要求的那样顺畅。
说明问题;机器人可以骑在路面的左侧或右侧。在下图中,左侧是正确的选择:
答案 0 :(得分:2)
如果您知道路径是什么样的,那么这主要是分类问题。获取一系列不同距离,照明等路径的图像,并手动标记每个图像中的地面。使用此标记数据来训练将每个像素分类为“道路”或“非道路”的分类器。根据道路的纹理,这可以简单到分类每个像素的RGB(或HSV)值或使用OpenCv的内置直方图反投影(即cv::CalcBackProjectPatch()
)。
我建议从手动阈值开始,转向基于直方图的匹配,并且如果更简单的技术失败,则仅使用完整的机器学习分类器(例如朴素贝叶斯分类器或SVM)。一旦整个图像被分类,被识别为“非道路”的所有像素都是障碍物。通过对道路而不是障碍物进行分类,我们完全避免建立“对象数据库”。
在问题的范围之外,最简单的解决方案是添加额外的传感器(“在问题中投入更多硬件!”)并直接测量障碍物的三维位置。按优先顺序排列:
请注意,使用自定义硬件(立体声片上,STOC),专业立体视觉相机可以非常快。基于软件的立体声在现代计算机上也相当快(10-20赫兹)。