基于改进SSD的车辆小目标检测方法

人工智能技术与咨询

来源:《应用光学》,作者李小宁等

摘 要:地面车辆目标检测问题中由于目标尺寸较小,目标外观信息较少,且易受背景干扰等的原因,较难精确检测到目标。围绕地面小尺寸目标精准检测的问题,从目标特征提取的角度提出了一种特征融合的子网络。该子网络引入了重要的局部细节信息,有效地提升了小目标检测效果。针对尺度、角度等的变换问题,设计了基于融合层的扩展层预测子网络,在扩展层的多个尺度空间内匹配目标,生成目标预测框对目标定位。在车辆小目标VEDAI(vehicle detection in aerial imagery)数据集上的实验表明,算法保留传统SSD(single-shot multibox detector)检测速度优势的同时,在精度方面有了明显提升,大幅提升了算法的实用性。

关键词:计算机视觉;目标检测;深度学习;车辆小目标;特征融合

引言

地面目标检测任务[1]中,由于目标外观信息较少[2-3],易受复杂背景干扰等原因,较难精确检测到目标[4]。目前,基于深度学习的目标检测算法[5-6]包括基于候选区域方法及基于回归的方法[7]。Girshick等人最先提出R-CNN(Region-CNN)[8]检测方法,但其存在对同一区域多次重复提取的问题。之后的Fast-RCNN[9]算法仅对原图像进行一次特征提取操作,由于生成候选框的Selective Search 算法[10]耗时较多,检测速度较慢。基于区域推荐方法的另一个主流框架是Ren 等人提出的Faster R-CNN[11]。2016年,Liu Wei 等人提出了基于回归的检测方法SSD[12](single-shot multibox detector),去掉了区域推荐和重采样等步骤,仅在单个步骤完成预测,显著提升了检测速度。

为解决小目标检测难点,本文提出了一种基于扩展融合层的目标检测框架,引入了重要的局部细节信息。此外,本文设计了基于融合层的扩展层预测子网络,在扩展层多个尺度空间内匹配目标,生成目标预测框。为解决过拟合问题,文章采用了数据集增广,BN(batch normalization)[13]层归一化处理的方法。最后,将本文方法与几种主流目标检测算法在VEDAI[14]车辆小目标数据集上进行了对比实验。

1 相关工作

1.1 传统SSD 算法

2016 年Wei Liu 提出的SSD 模型结构包括基础网络,附加提取层和预测层3 个部分。传统SSD模型网络结构如图1 所示。基础网络部分提取的特征图将作为附加提取层的输入。

图1 传统SSD 模型网络结构图
Fig.1 Network structure of conventional SSD model

此外,增加了conv6_1、conv6_2、conv7_1、conv7_2、conv8_1、conv8_2、conv9_1、conv9_2 共8 层附加层。附加层对基础网络层提取的特征图做进一步的卷积运算。选取其中6 层特征层作为预测层,分别在预测层的每个位置上生成固定宽高比的边界框预测结果。

1.2 传统FPN 方法

Tsung-Yi Lin 等人提出FPN(feature pyramid networks)[15],用于目标检测包含2 个关键步骤:1) 在每个尺寸特征图的基础上,分别保留了一个包含最强语义信息的特征层。由这些特征层构建出具有层级的特征金字塔结构[16-18]。2) 采用自上而下的结构,对金字塔高层特征层逐层上采样;再分别与下一层的特征图横向连接得到增强后的高层特征层。最后,对横向连接金字塔的每个特征层分别计算目标类别得分和边框回归。

1.3 传统方法检测小目标存在的问题

传统SSD 直接在不同特征层预测结果,忽略了不同层之间的联系,丢失了部分重要信息,缺乏同时获取局部细节信息和全局语义信息的能力。FPN 模型虽然通过横向连接得到融合特征层,但其采用逐层融合的方法,大大增加了计算量,从而降低了模型的检测速度。对小目标识别与检测问题而言,模型忽略了不同特征层对目标预测贡献的差异。

2 基于扩展融合特征的小目标检测算法

为解决车辆小目标识别与精确定位的问题,本文提出了基于扩展融合特征的小目标检测算法,基于融合浅层特征高边缘信息和深层特征的高语义信息的思想,设计了一种轻量化的特征融合模块。将融合特征层经额外的6 层卷积层扩展得到预测子网络,以此作为依据预测目标。本文网络结构中引入BN(batch normalization)层,以加速算法收敛,提升模型的泛化能力。本文算法的整体结构如图2 所示。

图2 基于扩展融合特征的目标检测模型结构
Fig.2 Structure of object detection model based on extension of fused feature

2.1 特征层选择

由于浅层特征图具有更小的感受野,其对应产生的默认边界框大小更适宜小目标检测。但其缺乏目标分类重要的语义信息。深层特征虽包含更多语义信息,但感受野过大,对小目标定位不够精确。因此,考虑在高层特征中引入浅层局部细节信息。本文采用VGG-16 卷积神经网络作为特征提取网络,表1 为部分特征层结构参数。

表1 部分特征层结构参数
Table 1 Structure parameters of partial feature layer

Conv4_3 层之前的特征层,虽然具有更高的分辨率,但包含较少的语义信息,考虑将Conv4_3 层作为浅层特征融合层。更深层的特征中,结合航拍数据集中车辆小目标特点,选取Conv7_2 层作为高层特征融合层。

2.2 特征融合子网络设计

输入图像映射为相同尺寸(300×300)后,经卷积和池化等的计算,特征层尺寸逐层递减。Conv4_3层特征层特征图大小为38×38,维度为512 维,Conv7_2 层特征图大小为19×19。将2 层特征图变换为相同维度再进行连接,得到融合特征层。特征融合子网络示意图如图3 所示。

图3 融合子网络示意图
Fig.3 Schematic diagram of feature fusion sub-network

分别对Conv4_3 和Conv7_2 层采用1×1 卷积层变换通道,降低原特征层维度。再对Conv7_2_new 层采用双线性插值方法,映射为同Conv4_3 相同维度,插值后的特征层Conv7_2_inter 维度为38×38×256。将两层特征层连接得到融合层(维度为38×38×512)。结合浅层局部细节信息和深层高语义信息的融合层作为依据,预测小目标的位置及类别。

2.3 扩展预测子网络设计

本文方法在融合层后增加BN 层以加速网络收敛速度。BN 层前向传导公式为

引入BN 层对输入数据进行归一化操作,消除了权值放缩带来的影响,从而避免了梯度弥散现象,同时进一步提升了模型的泛化能力。传统的SSD 及FPN 方法预测流程示意图对比,如图4所示。

图4 SSD 及FPN 方法预测流程示意图
Fig.4 Schematic diagram of prediction process of SSD and FPN

本文方法延续了特征金字塔的思想,在融合特征层后增加6 层卷积层,每层卷积层后紧跟一层ReLU 层。分别在扩展层的不同尺度空间内匹配目标,预测目标类别得分和边框位置。本文方法的预测流程示意图如图5 所示。

图5 本文方法的预测流程示意图
Fig.5 Schematic diagram of prediction process of our method

在扩展预测子网络中的6 层特征层做预测,对第k 层而言,默认边界框的缩放比例计算公式如下:

式中:Smin=0.3,表示最低层的缩放比例为0.3,Smax=0.9,则最高层的缩放比例为0.9。假设原图像大小M×N,a 为宽高比,则每个特征层对应默认边界框的宽和高的计算公式如下:

3 实验结果与分析

为验证改进后算法在小目标检测问题的效果,实验在车辆小目标数据集VEDAI(vehicle detection in aerial imgery)进行实验测试,并与当前主流的几种深度学习目标检测方法对比结果。

3.1 VEDAI 数据集

Sebastien Razakarivony 等于2016年提出的数据集VEDAI 为卫星航拍图像,共包含1 210 张1 024×1 024 像素的图像。平均每张图像中车辆数量为5.5 个,且目标像素占图像总像素的0.7%。图像目标车辆尺寸小(约40×20 像素),方向随机且光照变化大,是小目标检测标准数据集之一。

3.2 模型训练

模型训练采用基于动量的SGD(stochastic gradient descent)算法(随机梯度下降算法)。匹配策略中,最小jaccard overlap 值为0.5。硬件平台为:NVIDAI Titan X GPU(12 GB 显存),PC 机操作系统为Ubuntu 14.04,模型训练框架为Caffe 框架,mini batch 尺寸为32。

初始学习率为0.000 5,20 000 次迭代后,学习率调整为5e-05,60 000 次循环后训练终止。权值衰减系数为0.000 5,动量因子为0.9。

3.3 测试结果

测试阶段选取数据集中248 张图片作为测试集验证检测效果。召回率和mAP 是目标检测2 个重要指标。召回率和准确率的计算公式分别如下:

式中:TP 代表分类正确的正样例;FP 为分类错误的正样例;FN 为分类错误的负样例。准确率随召回率变化构成PRC(precision-recall curve)曲线,平均精度mAP(mean average precision)则为曲线与坐标围成的面积,计算公式如下:

将主流目标检测方法与本文方法在VEDAI 数据集上进行实验对比,结果如表2 所示。

表2 不同检测模型在VEDAI 数据集上的检测结果对比
Table 2 Comparison of detection results on VEDAI of different models

由表2 可知,对于VEDAI 数据集中像素为1 024×1 024 的图像检测,改进后模型达到最高的召回率和平均检测精度(mAP),分别为74.6%和56.2%,其较传统SSD 算法在车辆目标检测精度上有了显著提升(约10%)。表3 为不同检测模型检测速度对比结果,基于区域推荐的方法Fast R-CNN检测速度最慢,为0.4 fps,而Faster R-CNN 较其略快,检测速度为5.4 fps。基于回归方法SSD(VGG-16)检测速度为19.2 fps。图6(a)为不同检测模型检测精度和速度分布图。

表3 不同检测模型检测速度对比
Table 3 Comparison of detection speed of different models

图6 不同检测模型检测结果对比
Fig.6 Comparison of detection results of different detection models

图6(b)为改进SSD 算法与传统SSD 算法随迭代次数增加,检测精度的变化趋势。约在25 000次迭代后,检测精度值保持平稳上升,由图6 可知,改进后算法精度较传统SSD 有了显著的提升。图7 展示了改进算法在VEDAI 数据集上的部分检测结果。

图7 VEDAI 数据集部分检测效果
Fig.7 Partial detection results on VEDAI dataset

测试结果表明,本文提出的算法较传统SSD等主流目标检测算法,对VEDAI 数据集的平均检测精度显著提升,算法采用单个步骤内预测目标,保留了传统SSD 算法检测速度快的优势。融合子网络有效地利用了浅层特征层中丰富的局部细节信息及深层特征层的高语义信息,因此模型的泛化能力得到提升。

4 结论

为提高车辆小目标检测效果,本文提出了基于扩展融合特征的小目标检测方法。该方法结合小目标尺寸较小、依赖局部细节信息等特点设计了融合子网络,融合了高局部信息的浅层特征信息与高语义信息的深层特征。此外,本文设计了基于扩展金字塔的预测网络,在多个尺度空间匹配目标,提升了目标检测效果。为解决模型过拟合问题,本文引入BN 层提高了模型的泛化能力。改进算法有效地提升了车辆小目标检测精度,同时,具有更高稳定性和鲁棒性。下一步,将对模型中权值进行研究,以提升算法在复杂背景下的检测性能。

我们的服务类型

公开课程

人工智能、大数据、嵌入式                    

内训课程

普通内训、定制内训                         

项目咨询

技术路线设计、算法设计与实现(图像处理、自然语言处理、语音识别)

基于改进SSD的车辆小目标检测方法相关推荐

  1. 基于改进SSD算法的小目标检测与应用

    人工智能技术与咨询 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者刘洋等 关键词: SSD:深度学习:小目标检测 摘要: 摘要: 针对通用目标检测方法在复杂环境下检测小目标时 ...

  2. 基于深度学习的小目标检测方法综述

    随着深度学习的发展,基于深度学习的目标检测技术取得了巨大的进展,但小目标由于像素少,难以提取有效信息,造成小目标的检测面临着巨大的困难和挑战. 为了提高小目标的检测性能,研究人员从网络结构.训练策略. ...

  3. 小目标检测:基于深度学习的小目标检测方法

    基于深度学习的小目标检测方法 小目标检测的难点:分辨率低.信息少,噪音多.图像模糊 解决方法:图像金字塔.特征金字塔.对包含小目标的图像进行oversampling.对小目标进行复制粘贴操作(不遮挡原 ...

  4. 关于如何改进YOLOv3进行红外小目标检测的?

    关于如何改进YOLOv3进行红外小目标检测? 对于提高效果可以做出努力的方向 1. 对数据集进行统计 2.修改anchor 3. 构建Baseline 4.数据集部分改进 ①过采样 ②在图片中任意位置 ...

  5. kettle spoon判断增量更新_【论文推荐】张斌等:基于改进 SOINN 算法的恶意软件增量检测方法...

    基于改进SOINN算法的恶意软件增量检测方法 张斌1,2, 李立勋1,2, 董书琴1,2 1 信息工程大学,河南 郑州 450001 2 河南省信息安全重点实验室,河南 郑州 450001 摘要:针对 ...

  6. 目标立体检测 红外图像_一种有效的红外小目标检测方法

    [3]CHEN Bing-wen, WANG Wen-wei, QIN Qian-qing. Infrared dim target detection based on fuzzy-ART neur ...

  7. 深度学习中的单阶段小目标检测方法综述

    随着深度学习的不断发展,目标检测技术逐步从基于传统的手工检测方法向基于深度神经网络的检测方法转变.在众多基于深度学习的目标检测方法中,基于深度学习的单阶段目标检测方法因其网络结构较简单.运行速度较快以 ...

  8. 值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)

    作者 | 黄浴 来源 | 转载自知乎专栏自动驾驶的挑战和发展 [导读]在近日发布的<值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)>一文中,作者介绍了一部分各大公司和机构基于 ...

  9. 基于轻量级卷积网络的小目标检测--轻量级骨干网络部分

    基于thundernet框架+dlanet网络+shufflenetv2卷积模块的小目标检测--轻量级骨干网络 前言 1 骨干网络框架DSNet(dlanet网络+shufflenetv2) 1.1 ...

最新文章

  1. cocos2d-js 自定义事件监听派发
  2. 三次样条插值Python实现
  3. 应届毕业生突破909万,数据盘点哪行工资最高,有你心仪的吗?
  4. matlab神经网络1:功能特色
  5. 集成学习(期末复习)
  6. 《HotSpot实战》读后感
  7. java 空接口_学Java,java接口搞明白了吗?大牛让你一文搞清楚
  8. 全源最短路径之弗洛伊德算法(C语言)
  9. 关于ORACLE MYSQL NOT IN和NOT exists需要注意的 NULL值
  10. 终于换了杀毒工具(NOD32教育网升级)
  11. python从指定文件夹导入模块_Python实现的在特定目录下导入模块功能分析
  12. c# 将doc转换为docx
  13. python组合和继承_Python基础系列讲解——继承派生和组合的概念剖析
  14. React的学习曲线
  15. ITEXT-PDF彩色字体显示-支持中文
  16. 赋能泉城 2017中国软件生态大会再下一城
  17. vc c语言标准库头文件,VC++ 6.0中添加库文件和头文件
  18. Binder机制之Service Manager(大内总管)
  19. 建立集群——rsh(remote shell)实现无密码访问
  20. 同济:004.三角函数(1.1映射与函数)

热门文章

  1. linux 内核宏container_of剖析
  2. 生活中的计算机趣味知识大全,五个有趣的电脑小知识
  3. mysql pdo prepare_PDO::prepare
  4. 常见的蓝牙4.0模块
  5. 台式计算机时间不准,每天开机电脑时间都不正确怎么办?试试这个办法!
  6. tableau linux无网络安装_四十二、Linux网络管理,软件安装,进程管理总结
  7. 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码
  8. 【Pytorch神经网络实战案例】10 搭建深度卷积神经网络
  9. python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理
  10. LeetCode MySQL 1454. 活跃用户(连续dense_rank排名函数)