一种改进的轻量人头检测方法

2021-01-11 09:12高玮军张春霞
计算机工程与应用 2021年1期
关键词:候选框人头尺度

高玮军,师 阳,杨 杰,张春霞

兰州理工大学 计算机与通信学院,兰州730050

随着人口数量的增多,尤其是在商场、火车站等人口密集的公共区域,容易引起人员拥堵、推搡踩踏等安全事故。通过视频监控实时统计公共场所的人数,政府部门可以及时安排公安消防等人员对人流进行疏散和引导,可以有效预防及减少突发性的安全问题。

现有的密集人数统计方法概括为以下两种实现途径[1]:基于回归的人数统计方法和基于检测的人数统计方法。

一种常用的人数统计方法是基于输入图像预测密度图训练回归模型,以像素为单位取整个密度图的总和来预测最终人数。Zhang等[2]设计了一种简单有效的多列卷积神经网络MCNN,从任意密度和任意视角准确估计单幅图像中的人数。Li 等[3]设计了一个更深的网络CSRNet,引入膨胀卷积层作为后端部署,以扩大感受野并提取更深的特征。Jiang等[4]提出的基于Trellis编解码器网络TEDNet。这些算法已经取得非常好的结果,但缺点是对于输入图像的分辨率非常敏感,且不考虑密度映射中计数贡献来自何处的位置,无法精准定位。

另一种常用的人数统计方法是基于检测的方法。将图像直接输入到经过预先训练的目标检测框架中进行分类,计算出类别为人的边界框数量,以获得最终的人数。现有的检测算法分为以下两大类:一类是两阶段检测算法,典型代表为R-CNN[5]、Fast-RCNN[6]、Faster-RCNN[7]等;另一类是一阶段检测算法,典型代表为SSD[8]、YOLO[9]等。但是通过检测统计人数通常将整个人体作为检测对象,由于高矮不一、胖瘦不均等原因,在人口密集的公共区域很容易出现高遮挡情况导致检测结果不佳。

为了解决以上相应模型中存在的问题,Gao 等[10]提出用局部部位检测计数的方法,利用检测到的人头数目统计人数。Luo等[11]通过头肩模型来统计人数。Vu等[12]提出一种包含三个子模型人头检测模型。Peng 等[13]设计了一种具有两个检测器的特征细化网和级联多尺度结构的头部检测模型。Vora[1]设计的FCHD人头检测模型能够实现快速准确的人头检测,并适合在嵌入式设备上运行。Chi 等[14]提出的JointDet 网络能够同时检测头部和人体。

本文采用人头检测的方法在密集场景中能够精确定位且有效避免了高遮挡问题,并采用轻量级的网络更加适合用于工业领域搭载嵌入式设备运行,快速准确地实现人头检测,提高人数统计的准确率。本文的研究工作主要有以下两点:

(1)通过在YOLOv3-tiny网络上增加一个尺度改进网络结构,将低层更多包含人头的特征信息提取出来,与高层语义信息相融合,实现不同卷积层多元信息的分类预测与位置回归,提高检测的精度。

(2)根据人头较小且尺度变化不大的特点,结合有效感受野的思想,采用K-means聚类的方法分析设置初始候选框,提高候选框的精度。在测试集上对该方法进行测试,与改进前的方法对比,漏检率降低,检测精度和检测速度均有所提升。

1 YOLOv3-tiny检测算法

YOLOv3-tiny 是YOLOv3(You Only Look Once)的轻量级版本,作为目前最优秀的目标检测架构之一,采用回归的方式做到了真正的端到端检测,极大地提高了检测实时性,并且借鉴了FPN 的思想,在多个尺度的融合特征图上分别独立做检测,以轻量级、成本低的优点已被广泛运用于各大工业中。其主要思想是将输入图片划分为S×S个格子,图像中的候选区域个数为S×S×K,若某个物体ground truth 的中心位置的坐标落入到某个栅格,则这个栅格就负责检测出物体。置信度反映是否包含物体以及包含物体情况下位置的准确性,定义如下:Conf(Object)=Pr(Object)×Pr(Object)表示是否有目标物落入候选框对应的单元格中。若有,单元格对应的候选框的置信度为Conf(Object)=;否则,认定候选框中没有目标物,即Conf(Object)=0

表示预测框与真实框的交并比。对存在目标物的候选框进行人头检测,目标是人头的条件概率Pr( )

Person|Object,则候选框中包含人头的置信度Conf:

对每个候选框预测其中包含人头的概率以及边界框的位置[15],则每个候选框输出的预测值为:[X,Y,W,H,,其中X、Y为预测框中心相对于单元格边界的偏移,W、H为预测框宽高相对于整幅图像之比[16]。对于输入的每幅图片,最终网络输出为向量:

2 MKYOLOv3-tiny网络

在实际工业运用中,较深地提取网络容易造成梯度弥散和爆炸问题[17]。本文选取YOLOv3-tiny 网络为基础,其优点主要是网络简单,计算量小,可以搭载移动端或设备端运行,但缺点是候选框和分类精度都较低。为解决这一问题,改进网络结构,如图1所示,通过增加一个尺度,让网络同时学习高层的语义信息与低层更多包含人头特征的信息,更加快速,轻量,端到端地提高人头检测的精度。

图1 MKYOLOv3-tiny网络

2.1 调整输入图像大小

YOLOv3-tiny 网络都会对输入任意大小的图像进行缩放或剪裁,统一为相同尺度416×416。而Brainwash密集人头检测数据集中给出每张图片的大小640×480。如果仍对图像进行缩放或者剪裁,原图像中人头的分辨率会减小,这对检测人头这类小目标有很大的影响,增加检测的难度。因此修改网络参数中的width 和height为640×480,以此保持输入图像的分辨率不变。

2.2 改进的网络

在卷积神经网络中低层特征语义信息较少,但目标位置明确;高层特征语义信息较丰富,但目标位置信息较粗糙。为了防止图像通过卷积神经网络对小目标进行特征提取时,低层的信息利用不充分而导致部分信息丢失,本文借鉴特征金字塔的多尺度模块原理,主干网络tiny-darknet仅采用一个7层的conv+max网络提取特征,嫁接网络采用的是20×15、40×30 的分辨率检测网络。为提高人头的检测精度,将预测尺度从原有的两个改为三个。多尺度融合时应当保证输出的特征图尺寸与通道数一致,因此需要对高层的特征进行2倍上采样得到80×60×128,与其对应的低层特征图80×60×128拼接得到80×60×256,随后采用1×1 卷积核而不采用全连接的方式,在不改变特征图大小的同时避免了特征信息的丢失。网络结构如图2 所示,低层特征映射图如图3所示,多尺度融合在对人头的检测上具有更深层次的卷积神经网络结构,三个预测尺度产生了尺度更为精细的特征图,越细的网格划分对人头的适应能力越好,以此提高对人头检测的精确度。

图2 网络结构图

图3 低层特征映射图

2.3 候选框聚类

在目标检测任务中,合适的anchor能够提高检测任务的精度和速度。YOLOv3-tiny 算法中使用的候选框是根据VOC 数据集训练所得,其中包含多个类别且实例尺寸过大,对应候选框的值也偏大。故在本文所使用的数据集中,部分候选框并不合理,如图4所示。

图4 目标检测框的尺寸

本文用的数据集仅针对人头这一单目标,考虑到人头较小的特点,结合有效感受野的思想,采用K-means方法[18]对候选框重新进行维数聚类。聚类的目的是使预测框(anchor box)与真实框(ground truth)的IOU 值尽量大,其中IOU(Intersection-over-Union)是反映预测框与真实框差异的重要指标,IOU 值越大,表明两者差异越小[15]。聚类的目标函数为:

其中,N表示聚类的类别,M表示聚类的样本集,Box[N]表示聚类得到的预测框宽高,Truth[M]表示真实框宽高。具体步骤如下:

(1)聚类的样本集为预先标注好的数据集,其中每个候选框输出的预测值包含[xi,yi,wi,hi],i∈{1 ,2,…,N},聚类中心设定为k个,随机初始化为(Wi,Hi),i∈{1,2,…,k} ,由于卷积神经网络具有平移不变性,仅通过聚类计算出候选框的w和h即可。

(2)针对候选框的w和h进行坐标转换,将相对于整张图片的比例转换为相对于栅格边长的比例(即0到1之间)。

(3)将每个预测框的中心点都与聚类中心重合,通过d=1-IOU(Box[N],Truth[M]),计算预测框和聚类中心点的距离,将预测框分配给“距离”最近的聚类中心。

按照上述方法,对Brainwash 密集人头数据集中的样本进行聚类分析,聚类结果如表1,在YOLOv3-tiny原有的2 个预测尺度上增加1 个,候选框的数量也由6 个增加为9 个,9 个候选框会被3 个预测尺度平分。anchors=(14,14),(15,16),(17,19),(21,19),(20,21),(22,24),(26,26),(31,33),(41,42)。仅针对该数据集人头这一类别,候选框的准确率达到了87.06%。通过对比VOC2012和本文使用的Brainwash数据集,得到K值与AvgIOU 之间的关系,如图5 所示,随着K值的增大,目标函数变化越来越平稳[19]。

表1 聚类结果

图5 K-means聚类分析结果

3 实验与结果分析

3.1 实验环境

本次实验所用的计算机配置:IntelCorei51.4 GHz,4 GB内存;ubuntu14.04,64位操作系统;Tensorflow深度学习框架,仅采用CPU训练。

3.2 训练网络

本文的模型是在Brainwash 密集人头数据集2 的10 461张图像中选取了部分5 000张进行训练的,300张图像进行测试的。Brainwash密集人头检测数据集中给出每张图片的大小为640×480。为保持输入图像的分辨率不变,将图像重塑为640×480大小。数据集按照标准VOC数据集格式进行构建。

(1)整理Brainwash 数据集中给出的.idl 文件(包含文件名,[xmin,ymin,xmax,ymax]),将格式转换成YOLO的<类别><归一化中心坐标x><归一化中心坐标y><归一化图片w><归一化图片h>,首先需要先生成.xml格式Annotations 文件,然后再算出归一化的坐标,归一化的宽高,最后将一幅图像的标注文件添加到以图片名命名的.txt文件中。

(2)将图片及其.xml 文件导入YOLO-mark 进行验证,确认无误后开始训练。

(3)为了加快训练同时防止过拟合,卷积神经网络的超参数的设定只能通过不断尝试的方式获得。每1 000 次迭代保存一次权重文件,以便获取最佳权重。通过多次实验不断调整,本文网络的超参数如表2所示。

表2 网络的参数设置

3.3 聚类前后对比

本文采用K-means 重新维数聚类,聚类前后对比如图6 所示,上下分别为两次实验对比,图(a)为原图,图(b)为YOLOv3-tiny 聚类,图(c)为MKYOLOv3-tiny聚类。可明显看出图(b)改进前的候选框偏大,经过改进,图(c)中候选框的精度得到了有效提升。

图6 聚类前后对比图

3.4 模型有效性分析

为了检验本文提出的人头检测模型的有效性,采用平均准确率mAP(mean Average Precision)、检测时间(单位ms)、漏检个数三个指标作为不同方法在人头检测任务上的性能评价指标。其中平均准确率(mAP)表示人头检测任务的精度;检测时间(单位ms)表示人头检测任务的速度。为了更好地评估方法,在上述广泛使用的精度和速度两大性能评估指标的基础上,额外增加了漏检个数[20]来表示没有被正确检测到的人头个数。其中精确率precision和召回率recall的定义如下:

由于本文只涉及单个目标人头的检测,故mAP即为AP:

在测试集上的表现与其他模型进行对比分析,结果如表3所示。

表3 改进网络检测结果对比

上述实验结果表明:在Brainwash 密集人头检测数据集上MKYOLOv3-tiny与YOLOv3-tiny相比检测精度有明显提升,漏检率降低,且一般的遮挡和人头的检测都能实现。但检测速度稍有下降,这是由于多尺度融合在充分利用上下文语义信息的同时,相当于加深了网络,增加了模型的复杂度。但实际运用于工业领域中仍足够轻量满足搭载移动端或设备端的需求,实时性也不会有太大影响。

卷积神经网络通过对原图像的不同特征进行提取,低层具有更加丰富的包含人头特征的信息,提取效果图如图7 所示,其中图(a)为原图,图(b)为第一层卷积后输出的特征图640×480×16可视化,图(c)为第四层卷积后输出的特征图80×60×128可视化。

图7 低层特征提取效果图

部分测试样本及其检测结果如图8 所示,其中由上到下分别为三次实验对比,图(a)为原图,图(b)为YOLOv3-tiny的识别效果,图(c)为改进的MKYOLOv3-tiny方法的识别效果。实验结果分析如表4所示。

表4 实验结果分析

图8 部分测试样本及其检测结果

通过对比发现,改进的网络检测精度有所提高且漏检个数明显降低,能够更加准确地统计人数。这说明本文提出的方法在提高精度降低漏检率的方面是有效的。

4 结束语

本文提出一种改进的轻量人头检测方法MKYOLOtiny。以轻量级网络YOLOv3-tiny 为基础,通过多尺度融合提取出更多的人头特征,提升检测的精度;通过Kmeans 聚类减小初始候选框的大小,提升候选框的精度。最后,在Brainwash密集人头数据集上验证,结合客观性评价指标的测试,和YOLOv3-tiny相比,MKYOLOtiny检测精度更高,漏检个数更少,满足了实时性,并且适合在移动端或设备端上运行。

猜你喜欢
候选框人头尺度
重定位非极大值抑制算法
面向自然场景文本检测的改进NMS算法
基于Soft-NMS的候选框去冗余加速器设计*
山西省立法禁止野外用火成效显著 林草防火责任明确到山头地头人头
财产的五大尺度和五重应对
假人头防盗大法
一种针对特定目标的提议算法
朋友圈
宇宙的尺度
9