基于视觉的应用往往涉及到机器人的应用 6D 现在的位置估计或位置测量问题 Pose Estimation 现在有很多论文,也有很大的创新,但目前SOTA工作一般面向几个特定的数据集,如 LineMod,YCB,T-Less等等,主要面向复杂多目标场景。事实上,在许多应用场景中,只涉及单个目标对象的位置测量。对于这个相对简单的场景,总结基于视觉的常用方法:
1. 只用RGB: 二维码贴在目标上ArUco Marker,结合相机参考目标表面的二维码 6D 位姿 (2D - 3D) 2. 只用RGB: 检测目标上的具体关键点,结合目标CAD使用基准模型对应关键点的位置PnP与基准模型相比,解决目标相对基准模型 6D 位姿 (2D - 3D) 3. RGB Depth:在RGB在图像上检测目标的特定关键点,在深度图像中读取相应关键点的深度,并结合相机内参生成目标的每个关键点 3D 位置,进而解算目标整体 6D 位姿 (3D - 3D) 4. RGB Depth:在RGB图像分割目标区域,在深度图像中根据分割结果提取对应深度区域,结合相机内参,得到目标点云,利用CAD基准模型点云和目标点云ICP配准,得到目标 6D 位姿 (3D - 3D) 5. 只用Depth:在深度图像上检测目标的特定关键点,并根据深度生成目标的每个关键点,结合相机内参 3D 然后解决目标的整体位置 6D 位姿 (3D - 3D) 6. 只用Depth:利用深度图像生成场景点云,分割目标区域获得目标点云,利用CAD基准模型点云和目标点云ICP配准,得到目标 6D 位姿 (3D - 3D)
基于关键点检测的方法 2、3、5难度在于关键点检测的准确性;基于点云配准的方法 4, 6 问题主要在于目标区域的分割精度和准确算法的时间效率;基于二维码的方法1,效率和精度高,OpenCV有现成的实现,但问题是这是一种接触式测量,因为接触式测量。
由于精度和实时性要求特别高,非接触式方法难以实现,RGB-D或者双眼视觉传感器的精度有限,高精度三维扫描仪的点云处理速度非常慢。可以实现激光跟踪仪或移动捕捉镜头结合相应的特殊标志点等接触方法。