来源:期刊VIP网所属分类:计算机信息管理发布时间:2019-10-24浏览:次
摘 要: 为了解决不同识别环境下光照强度的变化对手势识别准确率影响的问题,提出了基于ResNet-50残差网络的改进Faster R-CNN手势识别算法。相较于普通的Faster R-CNN算法,该算法用了ResNet-50网络,提高网络特征的学习能力,并在ResNet-50中加入了实例批处理标准化(IBN)方法用于对单个图片的表征内容学习,适应不同的识别环境。实验结果表明,该算法在测试集上的识别率高达98.7%,相较于常用手势识别算法,有效性更高,鲁棒性更好。
关键词: 手势识别; Faster R-CNN; ResNet-50; 实例批处理标准化
推荐阅读:《市场与电脑》是由国内贸易局技术开发中心中国计算机用户协会MO分会主办、CCID北京天利电子出版技术公司编辑出版,中国流通领域信息化主导刊物,带给读者最新的电脑业界动态。
0 引言
人機交互方式逐渐趋于简便化、智能化,让基于计算机视觉的手势识别的人机交互逐渐成为现实。手势识别发展到现在,主要是基于传统检测识别算法和深度学习算法。传统的检测识别算法是利用人体手部区域的颜色特征来实现,即YCbCr[1]、HSV[2]、YUV[3],以及其他人为选出的特征来进行判别。这种识别算法容易受光照强度变化、肢体遮挡及其他复杂环境因素影响,所以鲁棒性低。
基于深度学习的目标检测[4]是目前在图像处理上较为流行的方法,深度学习主要是利用卷积神经网络[5]对大量图像多次训练学习,通过深层卷积自动计算提取目标图像中的特征。深度学习相比于传统的检测识别算法具有识别速度快,精度高[6]的优点。
目前用于目标检测的深度学习算法有Faster R-CNN[7]、SSD[8]等;Faster R-CNN使用区域建议网络[9](Region Proposal Net-work,RPN)逐个检测每一个对象,再综合提取信息,最终对手势所处的位置和类别进行确定。但是该方法仍然没能克服光照强度变化和网络深度不能加深的问题。
手势识别的研究工作主要是手势的检测和识别。本文的手势识别算法是在Faster R-CNN基础上使用残差网络ResNet-50来优化网络深度,加深特征学习,将 IBN结构用于深度卷积网络实现对单个图片表征(光照、颜色等)的多样性学习,克服因不同环境下光照强度变化产生的漏检、错检的问题。
1 Faster R-CNN算法介绍
Faster R-CNN算法模型主要包含了以下三个部分:CNN共享卷积、RPN区域建议网络和感兴趣区域池化[10](Region of Interest Pooling,ROI池化)检测网络。
1.1 共享卷积
共享卷积CNN作为Fast R-CNN和RPN的前端网络,通过深度卷积计算来获取输入图像的特征图,通常使用ImageNet[11]数据集来多次训练和微调CNN网络使其达到最优。目前使用的主流网络有VGG16[12]和ResNet[13]。
1.2 区域建议网络
Faster R-CNN的分类检测是利用RPN在网络的内部计算,产生高质量区域建议框,用于后续的处理分类。
其中,包围盒为([x,y,w,h]),候选框的中心坐标、宽和高为([x1,y1,w1,h1])。则参考标准为GT (Ground-Truth):设标记的矩形框G的真实中心坐标、宽和高为([x*,y*,w*,h*]),预测候选区域坐标向量[ ti],[t*i]是真实目标框的坐标向量.如式(1)、(2)。
[tx=x-x1w1;ty=y-y1w1;tw=log2ww1;th=log2hh1.] (1)
[t*x=x*-x1w1;t*y=y*-y1h1;t*w=log2w*w1;t*h=log2h*h1.] (2)
本文采用的损失函数是[Smooth L1]函数:
[Smooth L1x0.5x2,x≤1x-0.5,otherwise] (3)
1.3 感兴趣池化网络
Faster R-CNN算法是基于SPP-Net算法[14]改進的,在此基础上提出感兴趣区域池,感兴趣区域池化是SPP-Net的一个简化版本,因为只选取了其中一层金字塔,也就是感兴趣区域池化中只含有一种尺度,实验证明,加入ROI池化进行图像处理,使其运算速度加快数十倍。
2 本文算法
2.1 残差网络
ResNet主要是利用残差原理来实现网络的加深,以此避免梯度的消失和爆炸问题.本文采用残差网络来解决目前手势识别网络深度不能加深的问题。
残差网络以高速路网络的跨层链接思想为基础对其改进:利用“shortcut connections(捷径连接)”的方法,会把输入[x]直接传到输出作为初始结果输入到下方,输出结果为:
[Hx=Fx+x] (4)
当[Fx=0]时,则有[Hx=x],这就是前面所提到的恒等映射(identity)。在此基础上,改变ResNet学习目标,不再是通过层层神经网络学习完整的特征输出,而是学习目标值[H(x)]和x的差值,其残差为:
[Fx=Hx-x] (5)
本文采用的是ResNet-50网络结构。但仍然无法克服因光照强度变化造成的图片色度变化而识别不准确这一缺点。为克服此缺点,本文对原有的ResNet-50进行改进,在卷积层输出后加入实例标准化[15](Instance Normalization,IN)和批量标准化(Batch Normalization,BN)作用。
2.2 IBN算法
在深度学习实验中常用的标准化方法为BN,主要用来提高特征层对图像的敏感度,降低风格类变化的鲁棒性,即对图像色调变化,敏感变化的鲁棒性,IN方法提高对风格类变化的鲁棒性。在图2、图3中可以看到IN和BN共同作用于ResNet。这是因为在CNN层中,表征多样性的学习往往在网络浅层,而内容特征的学习往往在模型深层,故据此提出如图3的IBN结构。在浅层中BN和IN同时使用,保证了表征的多样性和内容信息的学习,最后经过IN是为了保留深层网络中图像表征的识别信息。
从式(6)、式(7)中可以看出,BN是对同一个Batch作用,而IN是对单个图像进行作用,有效的保证了图像表征的多样性,其中BN函数为:
[ytijk=xtijk-μiσ2i+ε;μi=1HWTt=1Tl=1Wm=1Hxtilm;σ2i=1HWTt=1Tl=1Wm=1Hxtilm-mμi2.] ⑹
其中IN函数为:
[ytijk=xtijk-μiσ2i+ε;μi=1HWt=1Tl=1Wm=1Hxtilm;σ2i=1HWl=1Wm=1H(xtilm-mμti)2.] ⑺
式中的T为Batch的数量,[xtijk]表示第 tijk个元素,k和j是跨空间维度,i是特征通道(如果为RGB图像就是颜色通道)t是图像在Batch中的索引,W表示输入特征图的宽,H为输入特定的通道数,其中[μi]为均值,[σ2i]为平方差。
3 实验分析
实验的训练样本来自于NUS Hand Posture,对数据集用LabelImg进行标定,选取训练集手势为2512个,测试集手势为528个,并进行迁移学习。
表1可以得到,在测试集上的识别率,ResNet-50和ResNet-101性能不相上下,但考虑到ResNet-101在识别率没有较大提高的前提下,耗时却多出45%,由此选择ResNet-50作为基础网络。
由图3、图4、表2可以看出,本文算法无论是在训练时Loss收敛的速度还是在识别率上,都超过了SSD和Faster R-CNN模型,并且本文算法的召回率提升了3.8%,平均识别率提升了2%达到98.7%,检测耗时上几乎没有变化。
实验中用不同光照强度进行测试,在 ResNet-50网络下,利用背后窗帘打开大小来控制光照强度,实验中处于光线比较均匀的条件下所得到的手势照片较为清晰,都实时地识别出常用的10种手势。当在光照不均匀或者光照较为强烈的环境下,手势的识别效率会降低。当采用传统的Faster R-CNN识别检测,可以看见如图6中(a)、(b)所示,对少数手势会出现漏识,错识。在Faster R-CNN加入了IBN后手势识别检测的正确率有所提高,如图6(a)所示。
期刊VIP网,您身边的高端学术顾问
文章名称: 基于ResNet-50改进的Faster R-CNN手势识别算法
文章地址: http://www.qikanvip.com/jisuanjixinxiguanli/49080.html