朱宪飞,颜卫忠,孙运涛,孔凡伟,吴晓斌
(上海航天电子有限公司,上海201800)
人机交互在未来月球探测中扮演着越来越重要的角色,航天员手势语义控制信息的有效传达需要机器人精准的解读。研究人员针对手势识别提出多种算法,从基础的图像背景减除到诸如曲率、指尖检测等手势特征的提取和训练,从隐马尔科夫模型(HMM)到人工神经网络(ANN),取得了一定的研究成果。丁海洋[1]提出多尺度模型,通过提取指尖位置信息,将指尖与掌心距离和夹角作为特征。江冬梅[2]将不同尺度和方向下的手势直方图作为特征。但受空间复杂背景等影响,以上基于边缘的检测及识别,受到单一阈值的限制约束。近年来,手势检测与识别在机器学习尤其是深度学习的技术支持下发展迅速。Pugeault[3]利用 RGB图像和深度图像,基于OpenNI+NITE框架进行手势的识别和跟踪,但算法计算复杂。手势检测模块中提取不同尺度下的手势特征,将静态图像体现的颜色、边缘、大小等特征进行有效融合,并在手势识别模块中设计算法使得机器根据目标特征进行精准分类,做出相应的语义解读,这些都成为人机交互领域的研究热点。
本文针对检测和识别两方面分别提出基于目标区域的手势定位算法和基于卷积神经网络(Convolutional Neural Networks,CNN)的手势识别算法。在手势定位方面,利用选择性搜索(Selective Search,SS)算法的多策略融合优势,将待测图像生成手势目标候选区域,然后提取各区域分层梯度方向直方图(Pyramid Histogram of Oriented Gradient,PHOG)特征,结合支持向量机 (Support Vector Machine,SVM)分类器,检测包含手势的感兴趣区域(Region of Interest,ROI)并进行定位分割。在手势识别方面,将16类手势样本输入7层卷积神经网络进行训练,得到迭代模型后,在待测图像ROI区域输入训练好的模型进行类别判断,得到识别结果。最后,进行手势定位和识别验证实验。
在月面坏境下,机器人捕捉到含有手势的静态图像,手势可能会出现在图像中的任意位置。针对手势目标展现的颜色、纹理、边缘、大小等特征都可能对手势定位产生影响。本文提出基于SS-ROI的手势定位方法:首先采用SS算法,生成手势目标候选区域,结合手势区域的矩形特征进行初步筛选,得到过滤后的候选区域集。然后提取各区域PHOG特征,因其无需进行输入图像归一化操作,保留了原本梯度直方图特征。将提取的特征输入SVM中进行训练,得到分类模型。测试集测试分类器得到误检的难例,进行二次训练,获得更新后的分类模型。待测图片首先生成目标候选区域,分别提取 PHOG特征,输入训练的SVM模型进行判断,保留判断标签为1的矩形区域,对出现嵌套的区域采用非极大值抑制算法,完成手势目标定位。图1为手势定位算法流程图。
SS算法是一种目标域搜索算法。该算法有两大特点:一是采用自底向上的分组策略,可以捕获图像中任意尺度的目标;二是采用多样化策略对区域进行相似合并,解决了单一策略无法应对多种类别图像的问题。其算法过程为[4]:①利用Felzenszwalb和Huttenlocher算法获取最初区域,初始化相似区域集;②计算每个相邻区域的相似度;③将相似度高的两个区域合并为新集;④循环计算新集与其他子集的相似度,直至区域集为空,提取所有目标可选区域。
本文采用SS算法产生待测图片中手势目标的候选区域,并分别标定正负样本集标签。图2所示为手势目标的候选区域。
图1 手势定位算法流程图Fig.1 Flowchart of gesture location algorithm
图2 手势目标候选区域Fig.2 Proposals of gesture target object
PHOG特征是HOG特征的进阶,最初由Anna Boschd等[5]人提出。在图像尺寸固定的情况下,计算不同尺度下的HOG特征,之后进行级联得到,具有较强的形状描述能力[6]。PHOG特征提取算法过程:①对3通道彩色图片灰度化处理,激活Canny算子获取图像边缘特征。②图像分层。第1层为输入的整幅图像,第2层将图像2×2等分,第3层将图像4×4等划分。③对划分好的每一层逐像素计算梯度方向,将所有角度等分为若干份,逐像素操作后得到统计直方图,得到一维向量,即 HOG特征。④拼接图像每一层的HOG特征,然后级联合并各层HOG特征,得到整幅图像的PHOG特征描述。
本文提取PHOG特征参数为:图像分层L=2,角度设为180°,数据分组设为9,因此可获得手势目标候选区域189维的PHOG特征向量。图3为待测图像的灰度值次数直方图,图4为对待测图像的PHOG特征直方图。
图3 灰度值次数直方图Fig.3 Occurrence times of grayvalue histogram
图4 PHOG特征直方图Fig.4 PHOG feature of images
对高维数据二分类时,支持向量机SVM解决了低维空间下高维数据不可分的问题,即将其映射到1个高维空间里,根据训练样本确定最大分类间隔的分割超平面,找到最优分割超平面[7]。本文采用径向基核函数进行训练,将正负样本集的PHOG特征分别标签化后送入SVM训练。生成的模型由测试集继续交叉验证,得到误检难例,通过将其反馈回负样本集后,SVM重新启动训练更新分类模型。再学习后训练效果如图5所示。
利用SS算法对不同实验者手势图像进行分割,从得到的区域中挑选出样本集,不同尺度大小的正样本1600张,选取含20%~50%正样本等图片作为负样本,一共2300张。随机选取200张图像作为测试集用于模型测试。图6所示为训练集中正、负样本示例。
图5 再学习后目标定位效果图Fig.5 Result of target localization after learning
图6 部分样本图像Fig.6 Part of samples
在很多手势定位算法中,特征的选择也在由之前单一的边缘性特征逐渐倾向于鲁棒性更好的手势特征[7]。方向梯度直方图(HOG)特征是检测中较常用的特征。随机选取200张图片作为测试数据集,结果如表1所示。从表中可以看出,选择PHOG特征的误检率低于HOG单一性特征的误检率2.4%。PHOG特征的鲁棒性优于HOG特征。
表1 手势定位结果比较Table 1 Comparison of gesture localization results
由于卷积神经网络对输入样本的平移、缩放、扭曲保留高度不变性优势,选择7层卷积神经网络对手势样本进行训练得到迭代模型。
CNN是一种包含卷积层、池化层、全连接层的多层监督学习网络,权值共享的特性减少了权值数量使得网络易于优化,局部连接降低了模型的复杂度,减小数据过拟合的风险。输入数据逐级经过卷积层和池化层等环节进行前向传递,计算所得残差通过梯度下降法反方向传递,权重在每一次的传递中得到修正。
卷积层作为整个网络的重要结构,其通过一个权重可调的卷积核与上一层特征图进行卷积运算,经过激活函数,得到输出的特征图[7],可以使得原始信号在降低噪声的同时得到增强。公式表述为式(1):
式中:l为网络层数,X为特征图,W为卷积核,b为偏置参数,f为激活函数,Mj表示选择的上一层函数的集合。池化层主要是进行特征图的降采样过程,避免了因特征图维数过高而出现过拟合现象[7]。全连接层在输出层通过将相邻网络层之间所有的单元节点进行连接,来对特征进行分类。本文算法采用SoftMax全连接,通过归一化处理将得到的特征向量分类,输出分类结果,并输出对应类别的概率值,将概率值最高的类作为网络的预测结果。目前,已经被许多研究人员开发的 CNN 架构,有 AlexNet[8]、Inception[9]、LeNet-5-[10]等。本文基于 LeNet-5,配置 MatConvNet工具包,用于图像分类。图7为卷积神经网络基本结构图。
图7 卷积神经网络结构图Fig.7 Structure of CNN
卷积神经网络作为一种有监督学习方法,其训练过程可以分为数据的前向传递和误差的反向传播[7]。前向传递阶段中,输入数据进行逐层计算和变换,在输出层计算相应的实际输出,反向传递传播阶段中,通过比较实际输出与理想输出,将二者的差值进行反馈,调整网络中的权值和阈值,经过多次迭代后,判断是否满足精度要求,满足则停止迭代,保存神经元的权值和阈值等参数,此时分类器形成,不满足则再次迭代。
为了增强网络的表达能力,CNN的训练过程引入非线性激活函数Rectifier,采用Rectifier的单元称为修正线性单元ReLu,Rectifier在网络训练过程中不会出现“梯度弥散”的现象,加快了网络的收敛速度[7]。池化核取为2,步长为1。表2为CNN的参数设置。
表2 CNN参数设置Table 2 Parameter setting of CNN
月面机器人和航天员的交互过程分为舱内裸手操作过程和舱外着航天服操作过程。采用裸手数据集对网络进行训练。网络参数设定为初始卷积核大小为5×5,池化核为2,步长为1,网络学习速率为0.001。为保证识别精度和训练速度,选择7层网络进行训练,实验效果如图8所示。验证误差为2.37%,验证识别率可达97.63%。
图8 目标函数收敛结果Fig.8 Convergence result of object function
1)运用SS算法采取颜色、纹理等多种策略得到图像ROI。
2)选取鲁棒性更强的PHOG特征进行提取,避免了因进行归一化处理导致的特征提取误差。
3)提出了基于7层CNN网络的识别算法,在ROI区域基础上,设计7层网络结构,通过对16种手势的语义进行定义,迭代50次,获得分类模型。并采用实验进行识别验证,验证识别率可达97.63%。因航天员着航天服手势样本数据较少,后续将通过加大航天员着航天服手势样本对网络进行训练与验证。
4)航天员与机器人的手势交互过程,通过手势检测和识别过程对手势进行跟踪,实现实时信息解读,后续将从手势跟踪方面展开研究。