深度学习在机器视觉中的应用
2015年,国务院出台《中国制造2025》,开始部署全面推进实施制造强国战略。机器人作为十大重点发展领域之一,其智能化应用是目前中国传统制造业转型升级的关键,也是为实现“机器换人”这一重要举措的必经之路。随着机器人智能化的提高,环境感知技术作为智能机器人核心模块之一发挥着非常重要的作用。机器人领域的环境感知技术根据传感器的种类可以分为视觉(Vision)、激光(Laser)、声波(Wave)等。在机器人领域中的视觉技术也可称为机器视觉(Machine Vision),如同人眼一样,可以为机器人提供最丰富的环境信息。在机器人领域中的机器视觉主要是解决两类问题,其一是对周围环境进行识别,确定操作目标的位置,即物体识别(Object Recognition),其二是通过周围环境信息确定自身位置,即同步定位与建图(SLAM)。这里涉及的技术主要针对于解决第一类问题。
传统机器视觉中的物体识别方法一般都需要人工定义一些物体上的特征点,以及具有鲁棒性的特征描述子,而选择一种合适的最能反映物体本质特性且能够在背景中区别开的特征需要依靠经验和不断尝试,很多时候可能很难做出最佳选择,因此极大地限制了其在诸多机器人任务中的实用性。
2006年,Hinton等人首先提出了深度学习的概念,其源于人工神经网络的研究,该类方法主要是通过组合神经网络低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示,是一种基于对数据进行表征学习的方法。其中深度学习领域的卷积神经网络(CNN)自2012年Alex Krizhevsky提出Alexnet结构,以及使用GPU,Dropout等训练技巧之后,具有了强大的学习能力,使得我们可以无需手动设计提取特征,而让CNN自动学习图片中的特征。这一改进使得物体识别分类效果突飞猛进,在ImageNet大规模物体识别竞赛(ILSVRC)中采用深度学习技术的GoogleNet算法已经到达了一个很低的失败率。
因此,深度学习可以很大程度提高机器视觉在诸多实际任务中的实用性,我们实验室对这方面的研究主要有以下两部分:
其一,一般物体的2D检测与抓取。原始的CNN深度学习对整张图片进行学习分类,因此无法确定物体在图片中的确切位置。而为了实现物体2D检测的功能,一般使用滑动窗口扫描的方式,这种类似与野蛮搜索的方式效率低,无法适用于一些实时性要求高的场合。 2015年,Wei Liu提出了SSD算法,其采用VGG16结构并将一系列卷积层代替原有的全连接层,能够很好地预测物体的2D包围框(Bounding Box)以及置信度。
图 1 一般物体的2D检测与抓取
如图1所示,我们采用SSD算法的框架实现了一般物体的2D检测,首先选定待抓取的物体并构建训练数据集,对数据中的每张图片进行标注,其中标注工具是LabelMe。之后,调整SSD网络结构的网络输出以满足待检测的物体数量,配置Caffe环境进行网络训练。训练结束后会生成网络权值文件,在实际检测过程中,传感器获取RGB图像经过网络前向传播即可生成预测的物体2D包围框以及置信度。我们采用的RGB-D传感器可以同时获取某一时刻的RGB图像与配准后的Depth图像,因此在得到物体包围框后,即可计算物体大致的重心位置(平均深度值),并提供机械臂抓取物体的目标位姿。
其二,弱纹理物体(工业零件)识别与6D姿态估计。1999年以来SIFT,SURF,ORB等局部特征描述子的提出,使得具有颜色纹理信息的物体(如饮料瓶,图书,零食袋等)的识别与定位问题难度大大下降。但是,在家庭场景或工业场景中还有很多物体缺少或没有纹理信息,即弱纹理物体(Texture-less Object)。如图2所示,我们采用卷积自编码器(CAE)对物体局部图像块进行特征降维,通过网络训练得到能够表达局部图像块信息的特征描述子,该特征并非人工设计而是通过网络训练学习得到,具有较高的鲁棒性。在实际识别过程中,传感器获取RGB-D图像,采样生成多个局部图像块并输入卷积自编码器进行前向传播,对网络输出的特征进行匹配与回归计算物体的6D姿态。该应用中,深度学习技术用于提取鲁棒的特征表达。
图 2 弱纹理物体(工业零件)识别与6D姿态估计