基于深度学习的教室人数统计系统设计
2019-12-04陈久红张海玉
陈久红 张海玉
摘要:教室是学生上课和自习的主要场所,由于学校教室有限,寻找无课或人少的教室往往需要花费学生较多时间。开发一个教室人数统计系统,帮助学生快速找到一个合适的自习室很有意义。在教室监控图像中学生个体是小目标,而现有基于卷积神经网络的R-FCN目标检测算法对小目标检测困难。针对这一问题,在R-FCN基础上进行一系列改进,大大提高了R-FCN目标檢测算法对小目标的识别能力。在自制的数据集上进行验证,准确率达到了89.4%。
关键词:人数统计;人头检测;R-FCN;卷积神经网络
DOI:10.11907/rjdL.182682开放科学(资源服务)标识码(OSID):
中图分类号:TP301文献标识码:A 文章编号:1672-7800(2019)010-0027-03
0引言
基于深度学习的教室人数统计系统成本低,学生通过查看此系统可快速找到空闲教室进行学习,从而节省大量时间。除此之外,该系统还可用在许多公共场合,如大型会议场所、商场超市的出入口等,用于统计场内人数情况;在城市交通运输中进行人数统计可更好地管理和调配资源。
近年来,基于深度学习的目标检测领域取得了很大突破,从R_CNNE到Fast R_CNNE,再从Faster R_CNNt到R_FCNE,使得某些任务如人脸检测、行人检测得以轻松实现。文献采用人脸检测作为教室人数统计依据,使用一系列预先设定的具有不同尺度和宽高比的anchor来检测人脸。这种基于人脸检测的人数统计方法使用方便、便于部署,缺点是如果学生低头记笔记或看书,就会检测不到人脸,人数统计准确度得不到保证;文献设计一种基于人头检测的实时人数统计方法,采用SSD目标检测算法检测人头,这种统计方法比人脸计数更加稳定,对人体姿态没有特殊要求,具有很强的鲁棒性。缺点是通用型目标检測算法对小目标不敏感,在监测视频中人体一般很小,人头在整个图像的占比更小,运用SSD目标检测算法进行人头检测会出现较严重的漏检。
综上,采用人头检测进行人数统计方法较好,因此本文采用人头检测进行教室人数统计。本文使用R-FCN目标检测框架进行检测。教室中的学生在监控图片中相当于一个个小目标,而通用的目标检测网络对小目标不是很敏感。本文对R-FCN目标检测框架的训练机制进行一系列优化,增强对小目标的识别能力,从而解决基于人头检测的方法无法检测小目标的问题。
1R-FCN简介
R-FCN是一种全新的目标检测架构,由微软亚洲研究院的代季峰研究员于2016年提出。R-FCN对传统的Faster R-CNN目标检测架构内部进行了改造,将FasterR-CNN的RoI Pooling层后的所有全连接层移除,并利用一种位置敏感特征图评估各个类别概率,在保持较高定位准确度的同时大幅提高检测速率。
R-FCN是基于VGG的分类网络,在其基础上进行目标检测分为两个步骤:①定位目标;②对定位目标进行具体的类别分类。R-FCN目标检测框架如图l所示。首先利用卷积网络进行特征提取,生成一系列特征映射图;再利用RPN区域网络,在生成的特征映射图上进行滑窗操作,生成一系列anchors,然后对anchors进行回归和分类操作,最终确定目标候选框。在此基础上,再利用R-FCN提出的位置敏感得分图对目标候选框进行分类和回归。
目标检测解决最小化预测区域与真实区域之间的误差和最小化分类误差,一般用损失函数衡量。神经网络的优化目标就是最小化损失函数,通常使用随机梯度下降法对网络中的参数值进行更新,使损失函数最小化。R-FCN目标检测框架中的损失函数由分类误差Lcls和回归误差Lreg两部分组成,损失函数为:
2教室检测器
在教室场景下本文对R-FCN目标检测框架采用了如下几种优化方法。
2.1roi-align
在常见的两级目标检测框架中,全连接层是基本组成结构,但是全连接层只接受固定尺寸输入,而卷积层操作产生的特征图大小完全由输入图片大小决定,因此卷积操作产生的特征图不能直接作为全连接层输入。2015年Ross Girshick在Faster R-CNN目标检测框架中提出了RoI Pooling层。RoI Pooling层的核心作用是将预选框的坐标映射到最后一个卷积层产生的特征图中,然后采用最大池化或平均池化方式产生新的特征图,此时新的特征图拥有固定尺寸,可以作为全连接层的输入,以便进行后续的分类和回归操作。预选框的位置由目标检测模型中的区域推荐网络RPN回归得到,在进行预选框映射和池化操作过程中,RoI Pooling层存在两次量化过程:①将候选框的边界坐标映射到最后一个卷积层产生的特征图中,将映射后的边界浮点数坐标变成整数坐标值,这样映射区域就会变小;②在RoI Pooling层中,由于池化操作,将映射区域平均分割成k*k个单元,对每一个单元的边界进行整数量化。经过上述两次量化,此时的RoI pooling层产生的特征图出现了一定的信息丢失,影响到检测准确度。
为解决Roi Pooling的上述缺点,本文使用RoI Align代替RoI Pooling。RoI Align的思路是取消量化操作,使用双线性内插方法获得坐标真实值,从而将整个映射和池化过程转化为一个连续的操作,使特征信息得以完整保留。而两者在各自的反向传播上有着巨大差异,常规的RoIPooling反向传播公式如下:
式(5)中,xi代表池化操作前特征图上的点,yrj代表池化操作后第r个候选区域的第j个点。由式(5)可以看出,只有当某个候选区域上的某个点在池化操作过程中采用了xi值,也就是满足i=i*(r,j)时,才在xi点处进行梯度回传。
Rol Align的反向传播公式如式(6)所示。
其中,yri代表池化操作后的第r个候选区域的第j个点,xi是某个候选区域在池化操作过程中采用的一個点,i*(r,j)表示与xi的横纵坐标都小于1的点,d(·)表示两点之间的距离符号,△h和△w表示xi与i*(r,j)横纵坐标差值的绝对值,这里作为双线性内插系数乘在原始的梯度上。两者的最大区别是:RoI Pooling只是在池化操作中被选用的点才有梯度值,其余点的梯度都为零;而在RoI Align中,不仅在池化操作中选用的点有梯度值,而且与xi的横纵坐标都小于1的点也有梯度值。而候选区域是候选框在高维特征图上的映射,候选区域的梯度值对卷积层的权重更新有直接关系,因此候选区域的梯度值包含越少的零值,权重更新就越快,模型收敛也越快。
2.2OHEM算法
OHEM(online hard example miniing)算法的核心思想是根据输入样本损失筛选出hard example(对分类和检测影响较大的样本),然后将筛选得到的这些样本在随机梯度下降法中进行训练。OHEM算法对于数据的类别不平衡问题不需要采用设置正负样本比例的方式解决,因为这种在线选择方式针对性更强。而且随着数据集的增大,算法的提升会更明显。因此本文采用OHEM算法,使负样本更具有针对性,更能代表整个负样本空间集,能提升分类器的分类效果。OHEM算法在R-FCN网络的位置如图2所示。
2.3ResNet残差网络
学生在教室监控图片中是一个个小目标,经过一系列卷积层后,在高语义低分辨率的特征映射图中就不存在学生的高维特征。如果有一种融合方式将低语义高分辨率的特征映射图融合进高语义低分辨特征映射图,这样高语义低分辨率的特征映射图就有了低语义高分辨率的特征映射图信息,就可保证在以后的特征提取过程中不会丢失小目标信息,增强模型对小目标的检测能力。ResNe网络采用shortcut恒等连接,结构如图3所示。前一层特征映射图可通过shortcut恒等连接直接作用于后一层的特征映射图,这样就可将低语义高分辨率特征映射图融合进高语义低分辨率的特征映射图中,保证了高维特征图不会丢失小目标。本文将基于VGG分类网络的目标检测框架改成基于ResNet残差分类网络框架,使得高语义低分辨率的特征映射图存在小目标特征,使整个网络对小目标有较好的检测能力。
2.4anchor尺寸分配
在使用RPN区域提取网络目标检测框架中,anchor通常设置为128、256和512三个基本尺度,而教室中学生的尺寸远小于anchor尺寸,此时anchor与真实目标框不满足线性回归关系,导致检测效果不好,模型失效。
本文将anchor尺度设为8、16、32三个尺度,此时小目标和anchor尺度较接近,满足线性回归关系。
3实验
为验证本文改进架构的实际效果,采集不同状态下的教室图片共2533张,包含6339个学生个体的目标数据集。对监控图片中的学生个体进行标签标注,作为真实标签进行训练,最终检测结果如图4所示。
4结语
本文通过对人数统计方法和通用型目标检测框架的深研究,发现基于人头检测的人数统计方法远好于基于人脸检测的人数统计方法,对R-FCN目标检测框架进行相关优化,增强了R-FCN目标检测算法对小目标的识别能力。