基于FasterR-CNN的教室监控人数识别系统的开发与研究

2020-09-29 07:51王子威范伊红赵锦雯王涛
电脑知识与技术 2020年17期
关键词:卷积教室神经网络

王子威 范伊红 赵锦雯 王涛

摘要:通过Opencv调用设备摄像头将数据读入,视频流切分成图片流后进入在Tensorflow框架下训练好的FasterR-CNN模型进行目标识别,将识别出的目标进行标记并输出。在教室环境下由于相互遮挡和密集度大的问题严重,原始的训练模型不能很好地识别困难目标,通过收集大量教室监控截图并进行Data Augmentation数据增强来进一步地扩大样本,提高识别准确度;使用LabelImg对数据进行标注生成训练和测试数据集,将VOC2007及新标注样本进行合并得到NEW_VOC2007,在此新数据集上进行训练及测试生成新模型。实验证明,新模型能够更好地适应教室环境的识别,准确度更高。

关键词:Tensorflow; Opencv; 卷积神经网络;Faster R-CNN;目标识别;LabelImg

中图分类号:TP391           文献标识码:A

文章编号:1009-3044(2020)17-0035-04

Abstract: In the school environment, pedestrian-intensive, sheltered, multi-scale problems are common.In this paper, Faster R-CNN is used for pedestrian detectionin complex environment of school buildings. When training samples,  A training strategy for Difficult Sample Mining is introduced, which adjusts the weight of difficult samples while picking out difficult samples, so as to make training more focused. LabelImg is used to lable the data sampled in complex environment. Then VOC2007 and the annotated samples are merged to obtain extended VOC2007 data set. Training and testing are carried out on this basis to establish the model with good performance. The experimental results show that compared with the four-step training method commonly used in Faster R-CNN, the generalization performance is improved by using this training method.

Key words: tensorflow; opencv; convolutional neural network;faster R-CNN;pedestrian detection;labelimg

1引言

近年來,深度学习(Deep Learning)在机器学习研究的各个领域如计算机视觉、医疗、自然语言处理等都取得了引人注目的成果。而计算机视觉领域的核心问题之一就是目标检测(object detection),它的任务是找出图像当中所有感兴趣的目标(物体),确定其位置和大小。

传统的目标识别算法如Cascade + HOG、DPM + Haar等,必须手动设计特征提取方案,所以算法很难提高识别准确度。就目前图像分类结果的准确率来看,卷积神经网络更为适用。为了加快提取候选区域的速度,克服人工设计特征鲁棒性差的难题,本文借鉴了目标检测领域的卷积神经网络Faster R-CNN模型利用区域建议网络(Regional proposal network,PRN)生成建议候选区域,进行目标检测。Tensorflow是基于Computation Graph的机器学习框架,支持GPU和分布式,是目前最有影响力的开源深度学习系统。本系统在Tensorflow框架下对Faster R-CNN进行扩充训练集训练,使其能够更好地在教室环境下对目标进行更准确的检测,使其能够更好地将每个教室的人数和空座情况反馈给学生、教师和后勤安保部门,进而减少学生找教室和教师课堂点名的时间和学校资源的浪费。

2 Faster R-CNN介绍

Faster RCNN是基于深度卷积神经网络的目标检测算法,主要解决两个问题:1)提出区域建议网络RPN,快速生成候选区域;2)通过交替训练,使RPN和Fast-RCNN网络共享参数。其结构如图1所示。RPN用于预测输入图像中可能包含目标的候选区域;Fast RCNN用于分类候选区域,并修正候选区域的边界框。这两个网络使用共享的卷积神经网络来提取特征(训练模型使用的网络为VGG16。Faster R-CNN主要的四个部分有:

1)特征提取层,用于提取图片的特征,输入为整张图片,输出为提取出的特征称为feature maps;

2)RPN网络(Region Proposal Network),用于推荐候选区域,这个网络是用来代替之前的search selective的。输入为图片,输出为多个候选区域,即预测框;

3)RoI pooling层,将不同大小的输入转换为固定长度的输出;

4)回归和分类,识别目标类别,计算损失值对模型权重参数进行调整。

2.1特征提取层

特征提取层用于提取图片的特征,特征图被共享用于后续RPN(Region Proposal Network)层和全连接层,特征提取层选用的网络为VGG16,VGG16由13个卷积层,3个全连接层,5个池化层构成,具有简单高效的特点,它的卷积层均采用相同的卷积核参数,池化层也均采用相同的池化核参数,能够很大程度上减少了模型的参数数量,降低网络复杂程度而且能够很好地降低模型的过拟合程度。输入图片经过Reshape操作统一变成M*N大小地图片送入特征提取层,经过VGG16网络运算后输出从图片提取的多张特征图用于后续计算。

2.2 RPN网络

RPN网络(Region Proposal Network),如图1,用于推荐候选区域。经典的检测方法如OpenCVadaboost使用滑动窗口+图像金字塔生成检测框、RCNN使用SS(Selective Search)方法生成检测框,都非常耗时,而Faster RCNN则抛弃了传统的滑动窗口和SS方法,直接使用RPN生成检测框,这也是Faster RCNN的巨大优势,能极大提升检测框的生成速度。RPN做两件事:1)把feature map分割成多个小区域,识别出哪些小区域是前景,哪些是背景,简称RPN Classification;2)获取前景区域的大致坐标,简称RPN bounding box regression。这个网络实际分为2条线,上面的网络分支通过softmax分类anchors获得前景和背景;下面的网络分支用于计算对于anchors的边界框回归的偏移量,以获得精确的目标候选区。

2.3 RoI pooling层

ROI(region of interest),感兴趣区域即用于框出目标的方框,该区域用向量[x,y,l,w]表示,(x,y)表示方框顶点坐标,l和w分别表示方框的长和宽。RoI Pooling层负责收集proposal(建议区域,即目标方框),将proposal划分为n*n块子区域(n取决于RoI Pooling输出矩阵大小),并通过maxpooling,如图2,计算每个子区域的最大值,生成特定大小的特征图proposal feature maps,送入后续网络。具体计算流程如下(n取2)。

2.4回归和分类

分類用于识别目标类并用n*1大小的向量表示每个类别的概率,n表示类别数。回归是指通过计算损失值对模型权重参数进行调整,模型预测效果更加准确。边框回归,如图3,是指对于窗口一般使用四维向量(x,y,w,h)来表示,分别表示窗口的中心点坐标和宽高。对于图3,红色的框P代表原始的Proposal,绿色的框G代表目标的Ground Truth,我们的目标是寻找一种关系使得输入原始的窗口P经过映射得到一个跟真实窗口G更接近的回归窗口G^。

3系统设计

该系统在Tensorflow-GPU框架下进行Faster R-CNN神经网络模型的训练,训练使用的数据集为VOC2007数据集,使用的网络模型为VGG16,使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算,最后得到训练后的模型;在第一轮训练的基础上,把VOC2007数据集进行扩展,把大量收集的教室监控截图通过Opencv进行数据增强操作,对图片进行翻转、切割、修改亮度和对比度等进行数据再扩充,并通过LabelImg进行标图,将其制作成数据集用于训练和测试。再次训练模型得到新模型,新模型更加适应教室环境的目标检测。再通过Opencv调用设备的摄像头进行视频流数据输入,加载二次训练得到的新模型并将视频流分割成图片流并输入进行目标检测,再将结果图片拼凑转换成视频流输出。程序流程图如图4所示。

在教室环境下由于相互遮挡和密集度大的问题严重,原始的训练模型不能很好地识别困难目标,通过收集大量教室监控截图并进行Data Augmentation数据增强来进一步扩大样本,提高识别准确度。

4模型训练

模型训练的目的是通过大量的数据来不断循环迭代进行参数权重调整,从而在获得最优的权重参数使其在真实情况下获得更高的准确率。本文的模型训练方法为四部训练法(也称联合训练):1)单独训练RPN网络,网络参数由预训练模型载入;2)单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入;3)再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;4)那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。训练通过反向传播进行神经元权重参数调整,神经网络反向传播流程图如图5所示。

在模型训练中往往会出现过拟合,使得模型在训练集上获得非常高的准确率但在新的测试集上准确率反而大大下降,即训练出的模型泛化性弱,不是一个好模型。神经网络模型训练的三种情况如图6所示。

为了避免过拟合的问题,使用了L1正则化方法(regularization)同时使用Dropout随机忽略一部分神经元。正则化的思想就是在损失函数中加入刻画模型复杂程度的指标。神经网络模型的效果以及优化的目标是通过损失函数(lossfunction)来定义的。

FasterRCNN的的损失主要分为RPN的损失和Fast RCNN的损失,并且两部分损失都包括分类损失(cls loss)和回归损失(bbox regression loss)。使用的损失函数为Smoooh L1 Loss,计算公式如下:

上式中分类的损失值是在RPN层中计算的,是前景的softmax结果,由于[Lcls]和[Lreg]结果差距过大,引入k平衡二者的值。

Faster R-CNN用于处理多分类任务,所以简单的线性二分类不适用。为了解决这个问题,使用激活函数来实现去线性化。激活函数往往是非线性函数,在卷积神经网络VGG16的每个神经元的输出经过一个激活函数处理使其呈现非线性化,从而使得整个神经网络的模型也就不再是线性的了。常用的激活函数有ReLU激活函数(如图7)、sigmoid激活函数、tanh激活函数,而ReLU激活函数更适用于深层卷积神经网络,故选择ReLU作为网络的激活函数。

5测试

在神经网络模型中,往往通过mAP (Mean Average Precision),平均精确度来测量模型的预测精度。原始模型的mAP和扩充数据后进行再训练得到的模型mAP数据对比如下表1所示。

由此可见随着训练轮数的增加,模型的准确度再不断上升,且经过40000轮训练后对比发现,使用VOC2007数据集经过训练得到的模型在教室这种特定的环境下模型mAP最高值为79.60%,经过数据增强后扩展原始VOC2007数据集能提升模型的mAP最高值为83.43%,提高了4.83%,模型的预测效果更好。

用原始模型和扩充数据集再训练后的识别效果对比图如图10所示。(图10-a、10-b为用原始模型进行目标检测)

对比可知,对原始VOC2007数据集进行数据增强后的数据集扩充能够使模型更好地适应教室环境下的目标检测,识别的人数和准确值都有所提升。

6 结束语

由于本系统是针对教室这种频繁出现目标重叠、目标密度大的复杂环境进行目标检测,通过Faster R-CNN在原始的VOC2007数据集上进行训练得到的模型并不能够很好地适应教室环境,所以通过收集大量教室监控的截图并通过Opencv对图片进行数据增强处理,然后通过LabelImg标图来扩展数据集,并再次训练模型,使模型更能适应特定环境。经过实验发现,针对特定环境采用大量该环境下的图片通过数据增强处理来扩充数据集,能够提升训练出的模型在特定环境下的识别准确度。

参考文献:

[1] Ren SQ,He KM,Girshick R,etal.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017,39(6):1137-1149.

[2] Breiman, L.Bagging predictors.Maching Learning, 1996,24(2):123-140.

[3] Breiman, L.Randomizing outputs to increase prediction accuracy.Maching Learning, 2000,45(3):113-120.

[4] Murthy S K,Kasif S,SalzbergS.A system for induction of oblique decision trees[J].Journal of Artificial Intelligence Research, 1994,2:1-32.

[5] Felzenszwalb P F,Girshick R B,McAllester D,etal.Object detection with discriminatively trained part-based models[J].IEEETransactionson Pattern Analysis and Machine Intelligence, 2010,32(9):1627-1645.

[6] Utgoff, P.E., N.C. Berkman, and J.A. Clouse.(1997). “decision tree induction based on efficient tree restructuring.” Machine Learning, 29(1):5-44.

[7] Valiant L G.A theory of the learnable[J].Communications of the ACM, 1984,27(11):1134-1142.

【通聯编辑:唐一东】

猜你喜欢
卷积教室神经网络
“313”教室
基于3D-Winograd的快速卷积算法设计及FPGA实现
这里的教室静悄悄
神经网络抑制无线通信干扰探究
从滤波器理解卷积
长时间待在教室更容易近视
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定