一、背景意义

  机器人视觉识别技术是移动机器人平台十分关键的技术,代表着机器人智能化、自动化及先进性的条件判定标准。

  如何在最短时间内最精确地识别检测到出现在深度相机视野范围内的目标,将检测到的三维点云数据提取出来是机器人后续抓取三维物体的基础,并且无论对于工业用还是服务业都有着巨大的意义与研究价值。基于机器视觉的三维物体目标的识别、检测与定位技术已经成功应用于众多工业领域中。

  配合着机械臂平台,以其为基础的操作系统可以完成一系列繁重复杂的工作,大大解放了人类的双手,提高了工业生产效率。

  作为促成这一切成果基础的机器人视觉识别技术正在逐步建立、稳定发展并一步步走向成熟。

  近年来,随着机器人相关技术的快速发展,其依靠的平台也快速的更新换代。

  之前价格较为昂贵的3D工业相机、3D图像传感器、3D扫描仪渐渐得到普及,传感器的微型化、智能化、低功耗以及高效率带来的深度图像设备价格大幅下降,随之机器人视觉识别技术也越发深入且成熟。

  三维物体目标检测和识别、6D位姿估计、机械臂运动规划控制、移动平台的线路规划与基于即时定位与地图构建SLAM(Simultaneous Localization And Mapping)的精确导航、三维物体检测抓取是移动机器人平台的核心关键技术,其精度直接影响着最后整个移动机器人控制系统的抓取成功率以及任务的完成度。

  3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题,最新的研究成果也广泛应用于工业信息化领域的方方面面。

  通过众多的传感器,例如激光扫描仪、深度摄像头、双目视觉传感即可获得三维物体的识别数据,以此为基础开展研究的计算机视觉方向领域也有着较为深入的发展。

二、几种算法分类及原理

  目前在机器人实时抓取策略算法主要存在两种大的分类,一种是以Linemod算法为代表的传统的图像处理算法,另一种则是最近几年开展研究的机器学习的方法。而这两大分类包含了目前主流的四种方法:

 1.基于点对特征。

  2010年Bertram Drost等人提出了基于Point Pair 特征的PPF(PointPairFeature)算法。PPF算法使用物体的全局模型描述,基于定向点对特征,通过快速投票方案在本地匹配全局模型实现物体三维到二维搜索空间上的对应匹配识别,适用于快速监测点云较为稀疏或者缺乏表面纹理信息及局部曲率变化极小的物体。PPF算法在有噪声、部分遮挡情况下有较好的识别能力,然而其不能解决具有相似噪声背景下物体识别问题,而且并没有很好的利用物体的边缘信息。

 2.基于模板匹配。

  2011年Stefan Hinterstoisser等人提出针对3D刚性物体的实时检测与定位算法LineMod算法。其基本原理是通过提取物体各个方向的深度图像采集模型,采用彩色图像的梯度信息结合物体表面的法向特征作为模板匹配的依据,训练其方向梯度生成物体模板后与实际图像的各对应方向位置匹配推测匹配结果。

 最后利用ICP算法对检测结果进行位姿修正完成3D刚性物体的位置检测判断。虽然LineMod利用了物体的多种特征,很好的解决了多种类目标在简单场景下的物体识别,然而其在模板分类时只关注物体的边缘,导致其在稍复杂实时模板匹配时识别率大幅度下降。

2018年Tomas Hodan使用现有的数据集提出BOP算法,建立了新的模板分类基准。

然而其只能识别单个场景下多类物体的识别,遇到同类物体较多以及重叠场景算法识别能力迅速下降。

 3.基于霍夫森林。

  2009年Juergen Gall等人提出了基于霍夫森林的目标检测算法,通过构建一个随机森林(random forest)从图像上提取图像块,在构建的随机森林中的每个决策树上进行判断处理并在霍夫空间中进行投票,图像密集块采样后输出霍夫图像完成对目标重心位置的投票。

 当然在该算法提出后基于Hough Forest算法的目标检测也有着深入的发展。

 4.基于深度学习。

  2017年Wadim Kehl等人提出了基于SSD算法的三维物体6D位姿估计,通过将2D图像深度学习的思路与三维物体RGBD图像的特点,利用深度学习网络完成局部图像2D检测、特征图与预训练核卷积,并使用投影属性来解析深度网络推断的试点及平面内旋转分数以此构建6D位姿假设。

 


补充:

目前深度相机主要的方法有:

1.基于霍夫变换

(可以参考2010年的论文 ppf (point pair feature):Model Globally, Match Locally: Efficient and Robust 3D Object Recognition)

2.基于模板匹配(linemod算法)比1效果要更好

论文:Multimodal Templates for Real-Time Detection of Texture-less Objects in Heavily Cluttered Scenes

(http://campar.in.tum.de/pub/hinterstoisser2011linemod/hinterstoisser2011linemod.pdf)

3.基于patch匹配+random forest(Latent-Class Hough Forests 用于处理linemd在遮挡时候识别率下降的问题)

论文:Learning 6D Object Pose Estimation using 3D Object Coordinates

LCHF:https://arxiv.org/abs/1706.03285

4.基于点云

http://wiki.ros.org/pcl_ros/Tutorials

https://blog.csdn.net/shine_cherise/article/details/79285162(学习资料)

http://ros-developer.com/2017/05/15/object-recognition-and-6dof-pose-estimation-with-pcl-pointcloud-and-ros/(核心项目参考)(也就是https://github.com/adityag6994/3D_Object_Seg_CNN以及可以参考他的分享https://github.com/adityag6994/object_tracking_particle_filter)

https://blog.csdn.net/AmbitiousRuralDog/article/details/80268920(地面点云分割)

5.基于CNN end-to-end

论文:SSD-6D: Making RGB-based 3D detection and 6D pose estimation great agai


  当然,以此四种思路为基础的研究都有各自的发展,且针对三维目标检测的方法也越来越丰富。

  针对传统搜索空间方式效率低下、传统方法难以产生判别描述子来提高模型的鲁棒性及可靠性,2011年Stefan Hinterstoisser等人提出的LineMod算法主要针对的是在复杂场景下无纹理3D刚性无纹理或少纹理物体的实时检测与定位,利用较短的训练时间训练采集的RGBD信息,将其与模版匹配对比后得到物体信息、位姿及自信度。LineMod算法可以广泛应用于工业、生活以及会议等杂乱的场景中,但是对于相互重叠等复杂情况下的物体分割识别存在不足。

 2012年以Hinterstoisser为核心的研究团队针对第一代LineMod算法在物体重叠遮挡情况下物体识别率打分迅速下降的缺点,提出了LineMod第二代升级算法,采用了较为稀疏的视角采样,利用分块匹配的方法提升被遮挡物体打分,借此改进算法固有的遮挡缺陷

  2012年三菱研究实验室的研究人员设计了一套基于三维姿态估计的机器人抓取系统。其将目标物体的三维模型的每一个对应位姿映射为深度边缘图完成模板提取工作,接着利用形状匹配算法(FDCM)来与实际目标进行模板匹配,并利用ICP和Gauss-Newton优化算法完成估计三维物体的位姿估计与目标检测。

  针对复杂杂乱场景以及遮挡问题,2014年Ujwal Bonde等人基于2009年构建霍夫森林完成目标识别的思路,利用单视角点云数据提出了一个高鲁棒性即时物体识别框架。使用随机森林学习辨别物体形状特征,提出随机森林迭代训练方案对三维物体的位置和姿势进行分类

 同年,Eric Brachmann等人提出可以同时处理有无纹理的三维物体6D位姿估计。同样是基于霍夫森林,Alykhan Tejani等人在2014年提出了LCHF模型,借鉴LineMod的模板匹配功能以及霍夫森林的投票方式,使用基于模板的新型分割函数集成到回归森林中的方式来处理严重杂乱和遮挡场景中的3D物体检测和位姿估计

然而,LCHF受限于手动标注特征,针对多个物体以及重叠场景的效率有限。2016年Stefan Hinterstoisser改进了于2010年提出的PPF算法,提出了一种新颖的采样和投票方案,显著的降低了杂波以及传感器噪声的影响,并大大降低了计算量。

  深度学习算法自出现以来便饱受争议并在曲折中逐渐得到了发展。

  2012年AlexNet在ImageNet的出色表现带来了卷积神经网络的快速崛起,在二维领域的人脸检测与识别、物体追踪与检测均有着不俗的潜力,并由此卷起了深度学习之风。2014年的Region CNN算法、Faster RCNN以及近来出现的YOLO算法和其改进版SSD算法让2D物体检测达到了每秒58帧、平均精度(AP)72.1,实现了真正的实时并且高精度检测。

  在此背景下,利用深度学习模型的方式将二维物体识别扩展到三维物体识别便自然而然。

  2015年Alexander Krull和Eric Brachmann利用综合分析的方法开始尝试用卷积神经网络来描述和渲染观察到的图像以此完成6D姿态估计。2017年Wadim Kehl等人扩展了流行的SSD算法,利用合成的模型作为训练的原始数据以达到6D物体位姿估计的目标。

 与SSD框架相类似,SSD-6D采用基于颜色的方法减少模型对深度数据的依赖,利用3D模型姿势空间的分解处理对称性并推断物体6D姿势以此达到三维物体目标检测2018年Yu Xiang等人提出了新的卷积神经网络PoseCNN用于6D物体的位姿估计,并很好的解决了三维物体复杂场景识别中存在的遮挡问题。其引入了一种基于对称物体姿态估计的新型损失函数ShapeMatch-Loss,利用大规模RGB-D视频数据集YCB-Video dataset训练模型,通过定位图像中心预测物体的3D平移,利用回归的四元数估计物体的3D旋转,完成三维物体的位置姿态估计。

  2019年李飞飞夫妇等研究者在PoseCNN的基础上提出了建立在三维物体RGB-D图像的6D位姿估计的深度学习框架DenseFusion。DenseFusion作为一种异质架构网络,在端到端迭代姿态微调程序的帮助下,可单独处理两个数据源。其在YCB-Video和LineMOD两个数据集上都有着优秀的表现。2019年Kiru Park等人提出了一种最新的基于CNN结构的Pix2Pose算法,该算法在特征提取后将预测每个像素的坐标,之后通过投票的方式得到物体的位置和方向。虽然模型大大提高了目标物体姿态估计的鲁棒性,尤其是在严重遮挡的情况下的识别能力,但与其他方法相比达到相近的精度时耗费的计算成本更高。(PS:大多数6D位姿估计的深度学习算法都是开源的)

三、6D位姿估计

  基于二维图像的机器人系统的局限十分明显,极易受到光照环境、物体种类、物体姿态等因素的影响,因此利用三维点云数据来设计机器人视觉系统便具有得天独厚的优势。3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题。 基于三维目标检测与识别的移动机器人控制系统与三维物体的位姿估计息息相关。 三维目标识别精度直接影响机械臂的运动规划的精确度以及机器人的目标识别与抓取的准确性。 移动机器人控制系统首先需要完成广泛复杂场景下特定物体的目标检测识别与位姿估计,得到目标所在的坐标系与自带的深度相机所在的坐标系的位置以及姿态的平移和旋转转换关系,完成包括三维空间位置和三维空间朝向在内的共六个位姿的姿态预测与估计。 


写在最后:这里分享的是毕业论文里的一些东西。版权所有仅供学习交流使用。

另外,准备写的内容大致的逻辑框架是:

1.背景意义以及一些常见的算法

2.我所参考的LineMod算法(模板匹配算法)的原理

3.我论文做的CT-LineMod算法(多目标位姿估计算法)的原理方法

4.CT-LineMod算法(多目标位姿估计算法)的评估及相关实验测试

5.机器人控制系统的构建与实现

6.其他的一些内容,如小的插件、系统、技术问题、经验教训等~