APP下载

基于Faster R-CNN的人体行为检测研究

2018-11-05莫宏伟汪海波

智能系统学报 2018年6期
关键词:卷积神经网络人体

莫宏伟,汪海波

人体行为检测作为人机交互的重要技术始终受到计算机视觉的广泛关注。但在现实环境中存在的一些繁杂背景、人体被物体遮盖、人体动作千姿百态等问题,使得人体行为检测任务难度较大。

近几年深度学习在图像检测领域获得长足发展,各种网络结构层出不穷,但是所用的训练方式都是随机梯度下降算法,该算法简单高效,但是需要训练者自主设置超参数,调参过程乏味而耗时,批量规范化(batch normalization, BN)[1]算法是针对该问题提出的,作为2016年以来深度学习领域的重要研究结果,已成为深度学习算法的重要组成部分。

R-CNN(regions with CNN features)[2]模型是应用于物体检测任务的经典算法,该模型的算法思路是首先读入图像后为输入的图像生成大约2 000个类别独立的候选区域,之后使用卷积神经网络从每个候选区域中获取长度相同的特征向量,然后使用支持向量机(SVM)[3]对每一个候选区域中的物体进行检测分类[4]。R-CNN模型采用图像仿射变形计算每一个候选窗口固定大小的卷积神经网络输入,不受窗口形状影响。

在R-CNN基础上发展而来的Fast R-CNN[5]、Faster R-CNN[6]等在物体检测方面更为有效。Fast R-CNN模型基于R-CNN模型融合了SPPNet[7]网络特点,提高训练和测试速度,同时提高了模型检测精度。Fast R-CNN模型主要解决了R-CNN和SPPNet 3个方面的问题:测试速度慢、训练速度慢和训练占用空间大。

传统目标检测方法包括有区域建议方法和基于区域的卷积神经网络的方法,但基于区域的卷积神经网络计算量较大,之后通过共享卷积大大降低了深度计算量,Fast R-CNN可以用非常深的网络实现了接近实时的检测速度,这是在忽略生成区域建议框的基础之上实现的,因此如何降低区域建议框的生成时间成为制约卷积神经网络在目标检测领域应用的一大瓶颈。Faster R-CNN网络通过RPN网络生成区域建议框,结合到Fast R-CNN网络进行训练,两者共享卷积层,极大降低了计算复杂度。

1 相关工作

在人体行为检测方面,Ji等[8]在研究中将卷积神经网络拓展到三维形式,设计出了3-D卷积神经网络(3-D convolutional neural networks,3-D CNN),提出了由3-D卷积操作进行视频信息时空特性获取的方法。作者在KTH人体行为数据库上采用这一方法进行了测试,获得了90.2%的识别正确率。

Karpathy等[9]采用Sports-1M数据集对卷积神经网络进行训练。在框架级别处理所有视频,使用近似重复查找算法确定了具体视频中包含的重复帧数,实验结果显示了尽管存在着小部分标签错误的干扰,但是网络仍然能够保持着较好的学习状态。

Sun等[10]采用慢特征分析方法(slow feature analysis,SFA)来实现人体行为检测任务。慢特征分析方法可以从输入的图像信息中学习不变或微弱改变的特征,研究人员将SFA方法与深度学习技术结合起来,用以学习视频数据本身的层次表示,使用具有3-D卷积和最大池化操作的双层SFA学习结构,将方法扩展到大型输入,并从视频中捕获抽象的结构特征,这一方法在Hollywood2,KTH和UCF Sports等体行为数据集上的测试也获得了很好的检测效果。

Donahue等[11]提出了一个长期递归卷积网络模型。结合深层次的视觉特征提取器(例如CNN)和模型,可以用于学习识别语言、视觉信息等任务,科研人员将这一方法应用到人体行为检测任务中,并且在UCF101数据集上检验了模型的准确性。

Gkioxari等[12]提出了利用卷积神经网络进行人体姿势预测和人体行为检测的方法,在PASCAL VOC数据集上对这一方法进行了检验,并将其与已有的主要方法进行了对比。

Gkioxari等[13]提出了一种根据图像中的情境线索来进行人体行为检测的方法,并取得了较高的识别正确率,此外这一方法还可用于属性分类任务。Khan等[14]提出了一种语义金字塔的姿态归一化方法来识别静态图像中的人体行为,并在PASCAL VOC 2010和stanford-40数据集上进行测试,取得了较高的识别精度。

Christoph等[15]提出了一种通用卷积构架,这一架构基于时空特征的乘性交互对视频中人体行为进行检测。此架构是完全时空卷积,并能够在单一的视频通道进行视频评估。实验表明,该模型在两个标准动作数据集上均具有较好的效果。

Gkioxari等[16]通过研究人体部件对动作和属性分类的重要性,提出了一种基于人体部件,利用卷积神经网络进行人体行为检测的方法。实验表明,该方法对人体动作的分类具有较好的效果。

Kar等[17]提出了一种新的视频帧合并方法,用于人类行为检测的任务。该方法发现少量的视频帧有可能包含了足够的信息,以此为依据进行视频中的行为分类。并在两个标准数据集上实验,实现了较高的识别效果。

Feichtenhofer等[18]将双流卷积神经网络和残差网络ResNet进行结合,提出了一种时空域上的人体行为检测方法,该方法依然使用了两个流,运动流和外观流,运动流接收的输入依然是堆叠的多帧光流灰度图片。该方法刷新了HMDB51数据库和UCF101数据库行为检测的精度。

Herath等[19]对过去10年的人体行为检测从传统方法到深度学习的方法进行了系统的综述,筹集了新的问题,对人体行为检测的进一步研究指明了方向。

中国科学技术大学邓利群研究团队[20]提出了一种以动作检索表为主要依据的识别方法,该方法提出了将动作信息分割成5个片段,然后针对各片段执行聚类操作和映射操作等,每种动作的检测任务都需要经过全局检索对比和类型匹配等操作来完成。申晓霞等[21]提出了基于深度图和RGB图像的行为描述算法,并将其应用到了人体行为检测领域;王忠民等[22]将卷积神经网络应用于人体行为检测中,在应用中将经过简单处理的原始数据直接作为卷积神经网络的输入,然后由卷积神经网络进行特征获取,再将得到的特征交由分类器执行分类操作,该方法对测试人员的行为识别正确率达到了84.8%,验证了算法的有效性;迟元峰等[23]通过对卷积神经网络和循环神经网络结构的研究分析,提出了一种新的深度神经网络结构用于检测视频中的人体行为,实验结果表现出了该方法应用在人体行为检测方面所取得的良好效果;朱煜等[24]对近年来人体行为检测方法出现的新进展进行了分析总结和算法综述。

2 改进Faster R-CNN算法

BN层的基本思想很直观:BN就是通过一定的规范化手段,把每层神经网络任意神经元输入值的分布强行拉回到均值为0,方差为1的标准正态分布,这样可以大大加快训练速度,同时避免了因参数变化而导致的梯度消失的问题。

如果说批量规范化算法是在网络的结构上对算法进行优化,那么在线难例挖掘(online-hard-example-mining,OHEM)[25]算法则关注如何利用现有的样本对网络进行更有效的训练。

在Fast R-CNN算法中提出的mini-batch用来进行随机梯度下降时并不具有高效和最优的状态,而OHEM算法可以取得更低的训练损失和更高的平均类别和位置精度(mAP)。最初的OHEM算法与Fast R-CNN进行结合使检测算法得到了一定程度的提升,所以在理论上将OHEM算法与Faster R-CNN算法进行结合,可以进一步提高Faster R-CNN的检测效果。

简单来说,OHEM算法就是从RoI中选择难例,而不是简单的采用。难例挖掘一般需要迭代地进行模型的训练和用模型寻找难例,这些难例无非就是那些分错了并且置信度还很高的样本,这要是放在网络里面,这个样本对应的训练损失就应该很大,因此一个基本思路是利用网络训练损失找到这些难例,具体方法如下:

1)对于一张输入图像,首先利用卷积网络计算出特征图。

2)RoI网络利用1)中计算好的特征图和RPN网络得到的RoI进行一次前向传播,最后的loss表示RoI网络对这个RoI检测的好坏程度,将每一个RoI对应的loss进行排序,取前面B/N个RoI进行反向传播。

3)因为在同一张图中的RoI很多之间相互重叠,如果一个RoI是难例,那么和它重叠较大的RoI很大程度上也是难例,这样在反向传播的时候就进行了一次重复的梯度计算。为了避免这种情况,首先根据损失大小进行排序,然后进行非极大值抑制,最后再选择B/N个RoI进行反向传播,实验中,非极大值抑制的阈值选取0.7。

4)提出的在线难例挖掘算法主要是通过两个RoI网络实现的:只读RoI网络(图1上部分所示)和标准RoI网络(图1下部分所示),只读的RoI网络进行前向传播并计算出所有的RoI的损失;之后标准RoI样本挖掘模块进行样本挖掘,得到困难样本并输入到只读RoI网络中,网络只读困难样本进行前向和后向传播,计算梯度并传播到卷积神经网络。

图1 Faster_RCNN_OHEM算法原理图Fig. 1 Faster R_CNN_OHEM algorithm schematic

在改进算法中,首先使用更深的预训练模型ResNet进行参数初始化和特征提取。其次使用BN算法对输入样本和隐藏层中的每个输入都进行批量规范化处理,以允许网络使用较大的学习速率进行训练,加快网络的训练速度,具体做法如图2所示。最后使用OHEM算法选择难例进行前向和后向传播,计算梯度并传播到卷积神经网络,以获得更低的训练损失和更高的类别和位置精度。改进算法的整体流程见图2。

图2 批量规范化处理Fig. 2 Batch normalization

3 实验过程

3.1 数据集及实验环境

本文实验数据是从VOC 2012 Action选取包括8个目标类别的人体行为数据集,3 347张标记图像,每类动作大约400张。在数据集中,训练验证集大约占整个数据集的50%,测试集大约占整个数据集的50%,训练集大约是训练验证集的50%,验证集大约占训练验证集的50%。算法利用caffe开源框架,在Ubuntu14.04系统下实现,所用的计算机配置是,显卡为GeForce GTX1080Ti,内存11 GB。

3.2 参数选择

使用变学习率策略训练改进的Faster R-CNN算法模型,初始学习率Base_lr为:0.001,批大小Batchs为128,训练步数Stepsize为6 000,变学习率参数gamma为0.1。采用了变学习率策略公式:

式中iter为当前的迭代次数。

合硬件条件和学习效率之后,在用Fast R-CNN进行人体行为检测时选择Batch_size为128。

3.3 模型训练

Faster R-CNN模型训练阶段使用训练好的ResNet模型参数对RPN模型进行初始化,然后独立地对RPN模型进行训练,之后依旧采用在ImageNet上训练好的ResNet模型参数对Fast R-CNN模型参数进行初始化,可以看出RPN网络与Fast R-CNN模型的训练是单独进行的,两个网络不进行参数共享,将上一步中RPN模型生成的建议窗口作为输入样本对Fast R-CNN模型进行训练,再使用训练后的Fast R-CNN模型参数对RPN模型再次初始化,但不更新RPN与Fast R-CNN共享的卷积层参数,仅对RPN网络特有层参数进行更新,再进行训练,此时已实现了两个共享,之后再对Fast R-CNN模型进行训练,如此交替进行训练。

在训练之前首先修改文件中的相关的参数,将类型换成人体行为数据集中的标签。将相应输出的类别数改为类别数加一(类别加上背景)。

4 实验结果与对比分析

测试的结果见表1。表2为ZF+RPN、VGG+RPN实验结果和改进算法的实验结果。

表 1 改进Faster R-CNN算法检测各类别的AP值Table 1 AP of actions of improved Faster R-CN

表 2 ZF和VGG16的mAPTable 2 mAP for ZF and VGG16

图3为ZF+RPN、VGG+RPN和改进算法识别:8个类别的平均精度(AP)柱状图。

图3 3种方法的AP比较Fig. 3 AP comparison of three methods

在测试数据中随机选取了12张人体行为图片进行抽样测试,测试的结果分别展现在图4~5中。图4表示未改进算法的测试结果,从左至右从上至下的人体行为分别为骑马(1.000)、用电脑(0.954)、玩乐器 (0.981)、打电话 (0.994)、阅读 (0.997)、骑车 (0.996)、阅读 (1.000)、玩乐器 (1.000)、跳(0.897)、阅读 (未检测出)、拍照 (未检测出)和骑车(未检测出),其中括号中为检测的位置精确度。图5表示改进算法的测试效果,从左至右从上至下的人体行为分别为骑马(1.000)、用电脑(1.000)、玩乐器 (1.000)、打电话 (1.000)、阅读(0.999)、骑车 (0.996)、阅读 (1.000)、玩乐器 (1.000)、跳 (0.999)、阅读 (0.987)、拍照 (0.934)和骑车(0.926),其中括号中为检测的位置精确度。对比随机选取的测试数据,图4中最后3个动作分别为阅读、拍照和骑车,使用VGGNet时算法并未检测出图中的动作。在图5中同样的图片、同样的行为,改进算法对3种动作均作出了精确的识别,并且图片中的动作均比原始算法的识别精确度要高。相比两种算法,改进的算法不仅能准确地识别出抽样测试图像中所有的人体行为,并且在精度上有所提升。

图4 原始算法检测结果Fig. 4 The original algorithm detection results.

结合表2和图5的实验结果以及随机抽样测试的结果可知,在8种不同的人体行为中,改进的Faster R-CNN算法对玩电脑、骑马和骑车这3种动作的识别效果较好,虽然阅读和玩乐器这两种动作的识别效果相比于其他动作效果略差,但是相对于原始算法识别类别和位置的精度都有着较为明显的改善。并且对于这8种动作,改进Faster R-CNN算法识别效果有着显著提升,平均分类效果和位置精确度均达到80%以上,证明改进算法对人体行为检测任务的有效性。

图5 改进算法检测结果Fig. 5 The improved algorithm detection results

5 结束语

Faster R-CNN算法在物体检测方面有着较好的识别效果,本文针对人体行为检测关键问题将OHEM算法和批量规范化算法与Faster R-CNN算法进行结合改进。在改进算法中,利用OHEM算法的优势可以有效地识别出静态图像中存在的小样本难例,对于人体行为识别整体的识别正确率都有所改善。今后将在通过搜集更多测试样本,增加类别,来测试所提出方法的有效性。

猜你喜欢

卷积神经网络人体
基于递归模糊神经网络的风电平滑控制策略
人体“修补匠”
人体冷知识(一)
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
人体可笑堂
从滤波器理解卷积
基于神经网络的中小学生情感分析
奇妙的人体止咳点