我正在使用OpenCV Haar级联分类器创建静态手势识别系统。我最终希望将这种识别系统变成立体识别系统。这是我的问题,我可以使用Haar Cascade Classifier创建的2D识别系统并在两台相机上实现它,以便在使用OpenCV中包含的立体校准功能后创建视差图吗?或者,我是否必须使用已校准的立体系统拍照来创建级联分类器?
很难找到关于这个主题的好信息,我想计划我的项目并确保在购买和创建所有内容之前我做了正确的事情。
感谢。
答案 0 :(得分:0)
首先,你应该澄清你想要完成的是什么。
您是否需要检测对象然后将其本地化为3D世界坐标?或者您是否需要3D信息才能首先检测到对象?
在前一种情况下,有两种方法可以实现。一种是校准立体摄像系统,检测两台摄像机中的物体,然后通过三角测量找到其3D位置。例如,您可能想要对对象的质心进行三角测量。这种方法的问题在于级联物体探测器的2D定位可能不够精确,无法获得可靠的3D点。
另一种方法是校准您的相机,然后纠正图像,使它们看起来好像相机是平行的和行对齐的。现在,您可以计算整个图像的视差图,而不是对特定点进行三角测量,并为任何像素获得相应的3D位置(理论上)。现在,您可以在相机1中检测您感兴趣的对象,然后使用视差贴图查找对象上任何点的3D位置。
另一方面,如果您想使用3D信息来改善检测,您将不得不阅读一些最近的研究。例如,这是一篇关于people detection using RGB-D sensors的论文。本文讨论了HOD(定向深度直方图)描述符,而不是HOG描述符。这是相关的原因,如果您校准相机并纠正图像,您可以获得与Kinect等RGB-D传感器相同的深度图。