APP下载

复杂气象条件下的交通场景目标检测算法研究

2021-11-17王海燕

计算机仿真 2021年2期
关键词:网络结构空洞卷积

李 轩,李 静,王海燕

(沈阳航空航天大学电子信息工程学院,辽宁 沈阳 110136)

1 引言

目标检测是从复杂的场景中能准确的识别目标的类别并且能对目标进行相对精确的定位,这是计算机视觉领域最基本和最具有挑战性的问题之一。自深度学习发展,目标检测逐渐突破发展瓶颈,取得了一系列进展。基于深度学习的目标检测根据特征提取和预测的不同方式大体上可以分为两个方向,基于区域建议的Two-Stage检测算法和基于回归思想的One-Stage检测算法。Two-Stage算法以R-CNN[1]及其优化算法为代表,包括R-CNN,SPPNet[2],Fast-RCNN[3],Faster-RCNN[4],R-FCN[5]等。这类算法首先进行区域建议,产生可能包含物体信息的候选区域,再将这些信息传入分类器或者神经网络进行分类和位置预测, 经过区域建议的Two-Stage算法在准确率上一般都有很好的表现;One-Stage算法以YOLO(You Only Look Once)[6],SSD(Single Shot MultiBox Detector)[7],Retina-Net[8]为代表。One-Stage最大的优点在于不需要复杂的候选区域检测过程,直接输出最终需要的结果,因此这类算法具有更快的检测速度。

尽管基于深度学习的目标检测领域已经在检测速度和准确率上已经取得很大的进展,但现实交通场景中目标极易受到天气状况影响,待检测图片视频质量不佳,造成在神经网络提取特征过程中特征信息提取不完善,极易形成目标的漏检和错检等现象。因此本文在原目标检测算法YOLOv3[9]的基础上将质量不佳的图片进行暗通道去雾进行增强处理,再利用密集连接模块对图像特征进行多重利用和传播,达到更准确地检测效果。

2 YOLOv3目标检测模型

YOLOv3在检测过程中首先将输入图像划分成S×S个小格,当物体的中心坐标落在某个小格时该小格负责预测这个物体。YOLOv3借鉴了类似FPN网络的金字塔结构对特征图进行了上采样和融合做法,分别在13×13,26×26,52×52三个尺寸上进行检测,每个单元格首先借助anchor box预测3个检测框,再根据卷积神经网络输出的坐标对anchor box进行修正,最终保留检测框和真实框之间的交并比最大值作为预测框。修正后的边界框坐标为

bx=σ(tx)+cx

(1)

by=σ(ty)+cy

(2)

bw=pwetw

(3)

bh=pheth

(4)

式中cx,cy为目标中心所在小格相对于左上角的偏移量,tx,ty,tw,th为网络学习输出。pw,ph为预设锚点的宽高,具体描述如图1所示。坐标的损失函数采用平方误差损失函数。

图1 YOLOv3坐标预测图

在类别预测方面YOLOv3将原来的单标签改进为多标签分类,网络结构上将原来的softmax层换成用于多标签分类的逻辑回归层。softmax层假设一张图片或者一个待检测物体都只属于一个类别,但这并不适用于复杂的场景中,在复杂的场景中一个待检测的物体可能存在多个标签,分属于不同的类,这就需要用逻辑回归函数对每个类别做二分类。逻辑回归层用到sigmoid函数将输出概率限制在0-1之间,如果一张图像经过特征提取后的某一类输出经过sigmoid函数约束后大于0.5,就表示属于该类。类别公式计算如下

Pr(object)*IOU(b,object)=s(to)

(5)

3 基于YOLOv3的目标检测算法改进

文献[10]证明了暗通道去雾算法在天气质量不佳时尤其在雾霾天气对行人检测起到了很好的增强效果,本文将暗通道去雾算法作为目标检测的前置算法,经过处理后的图片传入神经网络,并且对YOLOv3神经网络提出以下改进。

3.1 网络结构的改进

YOLO V3采用Darknet-53残差网络结构,加深了网络层数,同时通过大量使用1×1卷积结构压缩网络channels数量,降低了参数量,但对于场景较为单一的检测来说会显得过于冗余复杂,训练过程需要更多的数据并且拖慢检测时间,因此本文提出使用密集网络结构(Densenet)代替残差网络(Resnet)。Densenet相比Resnet网络结构具有如下特点:第一,对于每一个网络层,前面所有特征图的输出都是它的输入,因此加强了特征传播,鼓励了特征复用,Densenet和Resnet网络连接公式对比如公式(6)。式中x0,x1,…,xl-1表示将0到l-1层特征图的输出。第二,减少了训练中的特征弥散现象,Densenet每层都能获取前面各层的损失函数,有效加强了特征的前向传播,因此可以训练出更深的网络层。第三,在特征重用的角度上,极大的减少了参数。

xl=HL(xl-1)+xl-1

xl=Hl([x0,x1,…,xl-1])

(6)

图2为DenseNet结构图,DenseNet的整体结构主要包含稠密块(Dense Blocks,x1,x2,x3,x4),过渡块(transition layers,H1,H2,H3,H4),池化层,卷积层。Dense Blocks内部必须特征图大小一致,是稠密连接的high-way模块,而不是ResNet的element-wise连接,每个Dense Blocks由数目不同的Bottleneck Layer组成,Bottleneck Layer中包含3×3和1×1卷积,在进行3×3卷积之前首先用一个 1×1进行通道压缩,达到降维的目的。Dense Blocks每一层的输入都来自这个模块内这一层之前所有层输入的concat拼接。Transition layers起到连接Dense Blocks的作用,Transition layer中包含的Pooling层会改变特征图的大小,通过BN层和dropout进一步执行归一化和过拟合处理。

3.2 空洞卷积

空洞卷积在空洞卷积可以在不增加网络架构的卷积层层数或计算量的情况下扩大了感受野, 这从根本上降低网络架构的复杂程度;同时空洞卷积允许灵活地聚合多尺度上下文信息。空洞卷积是将具有K×K小卷积核的滤波器, 扩大为KX×KX卷积核的滤波器,KX=K+(K-1)×(r-1), 其中K为原滤波器的卷积核大小,r为空洞卷积的空洞率,KX为扩张之后滤波器的卷积核大小。本文在YOLOv3多尺度输出前将普通卷积替换为空洞卷积。

3.3 本文网络结构

本文所使用的网络结构Yolov3_dense如下图所示,由4个Dense Block和3个transition layer组成,采用上采样和特征融合方法最终输出13×13,26×26,52×52三个不同尺度的特征图进行多尺度预测。对于网络特征提取方面采用3×3卷积代替7×7,实验表明,采用多个3×3小卷积核参数量上大大减少,并且网络提取特征性能并没有受到明显影响;其次将Y1,Y2,Y3输出前的普通卷积替换成空洞卷积,增大了感受野;另外,针对各个Dense Block的输出通道数,通过实验对比,最终将各层输出通道数从上至下确定为6,12,24,16,实验表明,本文的网络结构参数量较传统YOLov3网络参数减少30%。

3.4 基于维度聚类的anchor选取

基于回归系列的深度学习目标检测yolov3算法先验框采用手工设计。虽然理论上模型可以直接输出预测框的宽度和高度,但是这可能会导致训练期间梯度不稳定,很难快速收敛。所以YOLOv3算法设置预定义检测框大小,再根据情况进行简单的偏移,更容易收敛使模型达到局部最优。Yolov3采用kmeans算法对数据进行聚类分析,确定anchor的个数和尺度。

Kmeans如果使用标准的欧式距离大尺度的预测框会比小检测框产生更多的误差,所以采用交并比作为距离评价指标来避免尺寸对kmeans损失的影响,自定义的度量公式为:

d(box,centroid)=1-IOU(box,centroid)

(7)

其中,centroid表示簇中心,box表示样本,IOU(box,centroid)表示簇中心框和聚类框的交并比。下图对比了K=[2-9]之间不同值时交并比之间的关系,从图中可以看出当K>=9时曲线趋于平稳,本文选取k=9,anchor的参数分别为[20,21], [28,69], [34,26], [49,34], [68,148], [73,45], [117,63], [181,102], [295,179]

图4 预测框个数与交并比关系图

4 分析与讨论

本文的算法在开源框架Keras框架上实现,电脑配置为Intel(R) Core(TM) i3-4170CPU@3.70GHZ,运行内存8G,显卡1050Ti,操作系统为Windows 10。采用召回率,平均精度,F1分数作为算法评价指标。

其中:TP为真正例,FP为假正例,FN为假负例。AP为平均精度。AP采用PascalVOC竞赛中的Interpolating all points全插值法作为评价标准

(8)

4.1 数据集

本文算法在行人检测数据集INRIA基础上进行扩增。INRIA是最常用的静态行人检测数据集之一,训练集1832张包含2400多个行人,测试集741张包含1100多个行人。扩增数据集在此基础上加入北京市交通路口行人流动集,用Labelme对数据进行标注处理。标注结果如图5所示

图5 数据集处理

4.2 训练方法

本文的训练过程参考YOLOv3 Keras框架训练方法分为两个阶段,第1阶段训练40个epochs,采用冻结Densenet原本网络结构,只训练后69层不同尺度特征提取层的迁移学习方法。在此训练过程中将数据集拆分为10份,训练9份,验证1份,学习率η=0.001,权重衰减系数为0.0001,优化器采用Adam。同时,在训练过程中,也会不断保存epoch完成的模型权重,设置参数为:只存储权重(save_weights_only);只存储最优结果(save_best_only);每隔3个epoch存储一次(period)以达到稳定网络参数的目的。第2阶段,使用第1阶段已训练完成的网络权重,继续训练:将全部的权重都设置为可训练, 优化器仍使用Adam,学习率减少至0.0001。从第40个epoch开始,一直训练到第80个epoch,增加了两个提前终止的条件。

当评价指标不在提升时,减少学习率,每次减少10%,当验证损失值,持续3次未减少时,则终止训练。当验证集损失值,连续增加小于0时,持续10个epoch,则终止训练。至此,在第2阶段训练完成之后,输出的网络权重,就是最终的模型权重。第二阶段训练目的旨在调整饱和度,色调,曝光度等微调,达到更好的识别效果。

4.3 INRIA数据集上检测结果比较

将本文提出的算法与Tiny-YOLOv3,YOLO v3进行对比如表1所示,可以看出本文提出的算法都有较为明显的优势。平均准确率较YOLOv3提高了4.77%,较Tiny-YOLOv3提高27.29%,在召回率上也有较好的表现效果。在模型收敛和特征提取上均达到了超出以往算法的效果。

表1 INRIA扩增数据集上不同算法检测性能比较

5 结论

本文主要基于当下性能最优的目标检测算法YOLOv3网络架构进行改进,设计出一个加入密集连接模块的网络主架构,并在多尺度检测输入前加入膨胀卷积增大感受野。实验表明本文提出的YOLOv3_dense算法在复杂气象条件下交通场景目标检测中表现出良好的鲁棒性,在精确度,召回率和运行速度上较原YOLOv3均有改善,并且本文算法权重文件166M较原YOLOv3权重235M参数量上减少了30%。本文的算法在更换数据集的情况下适应性较差,下一步旨在继续增大数据集,优化网络,权衡精确度和速度两个指标,找到更优更好的模型。

猜你喜欢

网络结构空洞卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
北极上空出现罕见臭氧层空洞
利用瑞利波法探测地下空洞
空洞的眼神
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究