基于Tiny-yolov3的行人目标检测研究

2021-05-25 05:26宋祥龙李心慧
软件导刊 2021年5期
关键词:网络结构行人卷积

宋祥龙,李心慧

(山东科技大学计算机科学与工程学院,山东青岛 266590)

0 引言

行人检测在汽车自动驾驶领域具有很大的应用前景,是近年来是模式识别领域研究的热点课题之一[1]。随着深度学习相关理论的快速发展,硬件计算能力不断加强,相应数据集不断构建,深度神经网络在不同的视觉任务中取得了巨大成功,深度网络模型也被广泛应用于行人检测领域,并逐步成为计算机视觉领域的研究热点之一。

传统行人检测方法在进行行人检测任务时所用到的特征是通过人工提取的,但这种方式存在特征维度高、泛化能力差的缺点,对传统方法的改进通常是建立在梯度直方图(HOG)、Haar 特征、局部二值模式(LBP)等基础上。

目前,目标检测主流算法主要基于深度学习模型,分为以下两类:

(1)区域提名检测算法[2]。此类算法包括两个阶段,首先产生候选区域,在此基础上利用卷积神经网络对候选区域进行分类[3],通常具有很高的精度。这类算法的代表是R-CNN 系列算法,如Fast R-CNN[4]、Faster R-CNN[5]、Mask R-CNN[6]等。

(2)端到端检测算法[7]。除去产生候选区域阶段,直接得出物体位置坐标值及类别概率,牺牲了一定的检测精度,但提升了检测速度,代表算法有YOLO 和SSD。

现有的目标检测算法中,R-CNN 系列算法检测精度高,但检测实时性较差,很难推广到实际场景中加以运用。YOLO 系列算法在不断改进后,在检测的实时性方面表现优异,但是训练环境对硬件要求较高,一般需要GPU 显存大于4GB,资源消耗巨大,在部署方面具有一定难度。

Tiny-yolov3[8]是YOLOv3[9]的简化版本,网络卷积层的数量比YOLOv3 少得多,这意味着Tiny-yolov3 不需要占用大量显存,减少了对硬件的依赖。较为简单的网络结构极大加快了检测速度,但却损失了部分检测精度。本文在Ti⁃ny-yolov3 的基础上加以改进,更好地权衡了检测速度与检测精度,使其更加适用于实时检测场景。首先对输入图像作随机旋转和随机扭曲HSV 颜色空间模型操作,增强网络泛化性,并根据行人尺寸特征改变图片输入尺寸,方便更好地提取行人特征;然后使用K 均值聚类算法[10]筛选预测框,提高模型对数据集的学习能力;最后,在Tiny-yolov3 的基础上优化网络结构,增强目标特征提取能力,提高检测精度。

1 Tiny-yolov3 算法

1.1 检测流程

Tiny-yolov3 算法将输入的固定大小图像平均划分成S×S 的小网格,每个网格使用3 个锚框对其中的目标进行预测,输出为S×S×3×(5+C1)。S 是划分单元格数量,5 指检测框的中心坐标、宽高和置信度,C1 指类别的数量。最后通过非极大抑制[11]去除多余锚框,找到最佳行人检测位置。

置信度计算如式(1)和式(2)所示。

其中,C 代表置信度,Pr(object) 表示预测框中检测到目标的概率,I表示预测框与真实框的区域交并比。

1.2 基础网络结构

Tiny-yolov3 算法是YOLOv3 的简化版,是一个轻量级网络。由7 个大小为3×3 的卷积(Convolution)层[12]、6 个最大池化(max pooling)层、1 个上采样层和两个yolo 层组成。Tiny-yolov3 总计只有24 层网络,比YOLOv3 少107 层,减少了模型训练过程中的内存占用,加快了行人目标检测速度,更能满足实时检测需求。具体网络结构如图1 所示。

神经网络中,输入图像尺寸大小不同,最终得到的输出大小也不同,提取到的特征信息量也不同。在深度7 学习中较为浅层的神经网络可以很好地表征小的物体,而深层神经网络可以很好地表征大的物体[13]。Tiny-yolov3 就是采用了这种思想,运用两种尺寸的预测机制对目标物体进行检测[14]。①在主干提取网络之后再连接一个卷积层,得到13×13 的检测尺寸,该尺度适合对大物体目标进行检测[15];②在倒数第二层进行上采样,再与上一层维度为26×26 的特征进行特征融合,得到26×26 的检测尺寸,该尺度适合对中小物体目标进行检测[16]。

2 改进Tiny-yolov3 算法

2.1 行人特征强化

为了更好地提取行人特征,本文从输入图像着手,作出如下改进:

(1)为了减少由于光照带来的明暗程度对模型的影响,本文借鉴文献[17]中的方法,对输入图像进行图片随机扭曲HSV 颜色空间模型操作。HSV 是一种比较直观的颜色模型,相当于改变了行人的明暗程度,不仅增强了数据集的丰富度,也使网络模型具有更好的泛化性[18]。根据后续实验得出的结果可知,使用强化行人特征模块后,模型检测准确率和召回率均有所提高。

(2)行人检测研究表明,行人特征信息在垂直方向上分布较多,在水平方向上分布相对较少。本文对图像的输入尺寸进行调整,选择288×512 的图像尺寸作为网络输入,使行人的纵向信息得到更好的表达。同时,调整后的输入尺寸像素数与原来416×416 的输入尺寸像素数相近,对检测速度影响很小。

2.2 Tiny-yolov3 网络结构优化

(1)多尺度预测。Tiny-yolov3 有两个目标检测尺度,分别是13×13 和26×26。13×13 的检测尺度适合对大尺度行人目标进行检测,26×26 的检测尺度适合对中尺度行人目标进行检测,因此当行人目标在图像中较小时,很容易发生漏检现象。针对模型存在的上述问题,本文决定增加一个52×52 的检测尺度。经过分析,浅层网络提取的特征对小尺度行人目标定位能力好,但是语义表征能力弱。深层网络提取的特征包含丰富的语义信息,但是丢失了小尺度行人目标的定位信息[19]。综合考虑,本文通过上采样将深层网络特征维度放大,然后与相同特征维度的浅层特征进行特征融合,帮助提升模型对小尺度行人目标的检测能力,从而最大程度地减少行人漏检,提升模型检测精度。具体网络结构如图2 所示。

(2)改进网络结构。Tiny-yolov3 的主干网络只有7 个卷积层和6 个池化层,很难对目标特征有较好的提取效果。一般而言,网络结构层数越深,对目标特征的提取效果会越好。常用的卷积核大小有3 种类型:3×3、5×5 和7×7,但是5×5 和7×7 的卷积核不适用于行人检测。因此,本文针对Tiny-yolov3 网络卷积层少的问题,在原有网络基础上选取3×3 卷积核对网络进行加深,加深的网络可以更好地提取行人特征,提高检测精度。

虽然更深层次的网络结构可以提高检测精度,但是模型参数也会随之呈几何增长,这会极大增加计算量,占用内存资源,降低检测速度。本文借鉴Resnet 思想,引入大小为1×1 卷积核。一方面,它可以对卷积核通道数进行降维,在计算量大时降低计算复杂度,节省内存资源;另一方面,可增加非线性激励函数,增加网络特征提取能力,提高检测精度。改进的Tiny-yolov3 网络结构如图2 所示。

Fig.1 Tiny-yolov3 network structure图1 Tiny-yolov3 网络结构

Fig.2 Improved Tiny-yolov3 network architecture图2 改进的Tiny-yolov3 网络结构

2.3 K 均值聚类分析改进

Anchor Box 机制[20]首先在Faster-RCNN 和SSD 中被提出,但是Anchor Box 的大小通常由人工设置,这导致网络在训练过程中收敛缓慢,而且容易出现局部优化问题。Tiny-yolov3 借鉴了Faster-RCNN 的Anchor Box 机制,对Tiny-yolov3 算法在Anchor Box 方面作出调整,通过维度聚类确定最优Anchor Box 个数及宽高维度。传统的K 均值聚类算法使用欧式距离函数,但这意味着较大的Anchor Box 要比较小的Anchor Box 具有更多的错误聚类,并且聚类结果可能会产生偏差。为此,本文采用IOU(生成的候选框与原始标记框的重叠率)评分来评价聚类结果,从而避免了由于框的尺度而引起的误差。距离函数计算公式如式(3)所示。

其中,box 是样本,centriod 是聚类的中心点,IOU(box,centriod)是聚类框与中心框的重叠比例。本文从混合数据集共计4 287 个框中,采用改进的K 均值聚类方法比较不同K 值下的IOU 得分。考虑到模型的复杂性,最终选择K值为9,采取每层分配3 个Anchor Box 的策略。得到的聚类结果为:(19,81)、(33,161)、(71,198)、(46,314)、(77,384)、(136,272)、(114,452)、(171,465)、(265,511)。

2.4 迁移学习机制引入

为了防止过拟合,加速网络收敛速度,本文在训练中引入迁移学习机制。Tiny-yolov3_voc.weights 文件是Tinyyolov3 模型在PASCAL VOC 2007 数据集中进行30 000 次迭代训练得到的权重文件,保留了前15 层卷积层的参数。从Tiny-yolov3_voc.weights 权重文件中进行提取,得到改进Tiny-yolov3 算法的训练模型文件Tiny-yolov3.conv.22,然后在混合数据集上进行训练。采用迁移学习机制,不但可以使模型在训练过程中更快地收敛,而且能够避免模型因数据量较少而产生的过拟合[21]。

3 实验及结果分析

3.1 实验环境

本文实验平台配置如表1 所示。

Table 1 Hardware and software configuration of the experimental platform表1 实验平台软硬件配置

3.2 数据集

INRIA 行人检测数据集的行人数据人体姿态复杂、光照条件多变,适合进行行人检测。其图片库被分为只有车、只有人、有车有人和无车无人4 个类别,数据集由训练集和测试集两部分组成。训练集中包含了正负样本,其中正样本614 张,负样本1 218 张;测试集中包含正样本288张,负样本453 张。本文提取INRIA 行人检测数据集中902 张正样本图像,并将其转化为Pascal VOC 数据格式。由于INRIA 数据集训练样本较少,本文数据集还加入了1 000 张实际生活中拍摄的图片,这些图片根据Pascal VOC 的标签标注标准,使用Labelling 标注工具,生成训练所需要的xml 文件,每一个图片名对应一个label.xml。

3.3 模型搭建与训练

本实验在深度学习框架Darknet 上搭建改进的Tinyyolov3 模型。Darknet 是应用广泛的框架,对多种格式的输入图片均适用。

超参数的选择对模型训练效果起到了至关重要的作用,合理地设置网络参数可以极大提高模型训练和检测效果。为了加速网络系数训练,首先加载预训练模型,然后设置batch=64,subdivisions=16,每轮迭代会从所有训练集中随机抽取64 个样本进行训练,这64 个样本被平均分成16 组,送入网络进行训练,极大减轻了内存占用压力。整个训练过程中采用的参数如下:动量(momentum)为0.9、权重衰减(decay)系数为0.001、初始学习率为0.001、最大迭代次数为30 000 次,在迭代次数为24 000 次和27 000 次时将学习率减小10 倍。在此基础上利用行人数据集进行模型训练并保存日志文件。

3.4 目标检测评价指标

训练好的网络模型,需要一套合理的评价指标进行评价。本文选择mAP[22]值作为测试结果精度指标,Recall[23]为召回率(查全率)的评价指标,IOU[8]为定位精度评价指标,FPS 为实时检测速度指标。

mAP(mean average precision)的定义公式如式(4)所示,含义是h 类目标物体平均精度的均值。

召回率(Recall)的定义如式(5)所示,表示测试数据集全部目标中被检测到的数量所占比例。

平均交并比(IOU)的定义如式(6)所示,表示两个候选框的重叠程度,将真实框记为A,预测框记为B。SA代表A框的面积,SB代表B 框的面积,SA∩B代表A 框与B 框交集部分的面积,IOU 的值取0~1。通常而言,值越接近于1代表重叠度越高,相应的候选框更精确。

FPS 是图像领域中的定义,是指画面每秒传输的帧数,FPS 值反映了保存以及显示动态视频的信息数量。FPS 越大,表示每秒钟的帧数越多,所显示的视频就越流畅。

3.5 实验结果与分析

3.5.1 强化行人特征图像处理模块测试

对加入强化行人特征模块的模型进行训练和测试,并将测试结果与未加入强化模块的原始模型作对比,实验结果如表2 所示。结果表明,本文提出的方法使mAP 值提高了2.1 个百分点,召回率提高了3 个百分点。

Table 2 Test results after strengthening the pedestrian feature processing module表2 强化行人特征处理模块测试结果

3.5.2 损失函数曲线分析

算法损失变化曲线如图3 所示。观察可知,两种模型的损失值在前2 000 次迭代内均迅速降低,但改进的Tinyyolov3 算法明显比Tiny-yolov3 更快。Tiny-yolov3 在2 500次迭代以后,损失值从一开始的6 下降到1.5 附近,之后开始缓慢下降,最终在25 000 次迭代后,损失值趋于稳定。本文提出的改进Tiny-yolov3 算法在2 500 次迭代以后,损失值就从6 迅速下降到了1 附近,之后开始平稳下降,大约在20 000 次迭代后趋于稳定。分析比较可知,在训练过程中,改进后的Tiny-yolov3 算法较Tiny-yolov3 算法损失值下降更迅速,网络更加稳定且收敛较快,稳定之后的损失值也更小,说明本文提出的改进Tiny-yolov3 算法优于原算法。

Fig.3 Loss curve图3 损失变化曲线

3.5.3 模型检测结果分析

为了对改进后算法的检测精度进行更加严谨的评估,本文引入了Tiny-yolov2 算法作对比分析。对3 种算法在测试集中的识别结果进行统计,具体结果如表3 所示。

Table 3 The test results of three algorithms on the test set表3 3 种算法在测试集上的测试结果

根据表3 中的数据可以发现,改进Tiny-yolov3 算法的mAP 值比Tiny-yolov2 算法提高了18.76 百分点,相较于Tiny-yolov3 算法提高了7.25 百分点。与此同时,改进后的Tiny-yolov3 算法的召回率相较于Tiny-yolov2 算法提升了17 百分点,相较于Tiny-yolov3 算法提升了9 百分点。总而言之,改进后的Tiny-yolov3 算法在mAP 值和召回率方面,相较于前两种算法均有所提升。

为了评价改进Tiny-yolov3 网络的定位精度,利用平均交并比作为指标进行评测。根据表3 测试结果表明,相较于Tiny-yolov2 网络,改进的Tiny-yolov3 网络平均交并比提高了15.39 百分点,相较于Tiny-yolov3 网络提高了8.91百分点。这说明,改进的Tiny-yolov3 网络产生的预测框与原标记框重叠率更高,对行人定位精度更好。

根据表3 测试结果得到的FPS 数据,可以看到改进的Tiny-yolov3 检测模型达到了62 帧,由于本文对其加深了网络结构,相较于Tiny-yolov3 下降了5 帧,但仍可以满足实时性需求。

为了验证改进后的Tiny-yolov3 算法在实际应用中的效果,本文将测试集分别输入到Tiny-yolov3 和改进的Ti⁃ny-yolov3 两种网络模型作对比分析,分别得到两种目标检测算法在测试集上的测试结果,部分测试结果如图4 和图5 所示。

Fig.4 Tiny-yolov3 pedestrian target detection results图4 Tiny-yolov3 行人目标检测结果

Fig.5 Improved Tiny-yolov3 pedestrian target detection results图5 改进的Tiny-yolov3 行人目标检测结果

根据上面两组测试结果可以发现,当在图像中有大量行人且存在目标重叠时,Tiny-yolov3 存在识别精度不高和明显漏检现象,而改进的Tiny-yolov3 表现良好。对于检测目标所处环境光线较暗的情况,Tiny-yolov3 漏检严重,改进的Tiny-yolov3 加入了强化行人特征模块,极大降低了光线对目标检测的影响,表现优异。当行人目标在图像中较小时,改进的目标检测算法由于增加了检测尺度,而在检测精度上明显高于Tiny-yolov3。分析可知,改进的Tinyyolov3 算法泛化能力更好,抗干扰能力更强,对于各种复杂情形的目标检测都有良好表现,相较于Tiny-yolov3 提升明显。

4 结语

本文基于Tiny-yolov3 目标检测算法,针对目前目标检测算法存在的实时性差、检测精度不高、对硬件过度依赖的问题,给出了一系列优化方案。实验结果表明,本文提出的改进算法相较于Tiny-yolov3 效果提升明显,无论在检测精度还是实际场景的泛化能力方面都有不错的表现。

虽然相较于原算法模型有了明显提升,但是改进的模型在检测精度上仍有待提高。下一步考虑从优化训练集图像质量和进一步优化网络结构两方面着手,在保证算法检测实时性的基础上,进一步提高检测精度。

猜你喜欢
网络结构行人卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
毒舌出没,行人避让
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
我是行人
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
一种基于卷积神经网络的性别识别方法