《基于深度学习的目标检测算法综述论文的解读》

news2024/9/9 0:09:30

论文阅读:《基于深度学习的目标检测算法综述论文的综述》的总结

作者 : 包晓敏,王思琪 ( 浙江理工大学 信息学院,浙江 杭州 310018)

本文章介绍了两阶段深度学习算法和单阶段深度学习算法。

一、目标检测的定义
目标检测( object detection)将待测目标的分割、识别、语义等高级视觉问题合为一体,对图像中的物体进行识
别和定位,其准确性和实时性是衡量整个计算机视觉系统的一项重要标准。
二、两阶段深度学习算法
两阶段深度学习算法通过选择性搜索、边界箱等常见区域选择方法生成候选区域,接着在候选区域与卷积神经网络相结合提取特征并进行回归分类。这一类检测算法需要分两步完成,即先产生候选区域再进行特征提取
(1)特点
具有准确度高但是速度相对较慢的特点。
(2)分类
典型的基于候选区域的检测算法有区域卷积神经网络( region-CNN,R-CNN) 、空间金
字塔池化网络( spatial pyramid pooling-Net,SPP-Net)[16]、快速区域卷及神经网络( fast R-CNN) 、快速区域卷及神经网络( faster R-CNN) 和掩模卷积神经网络( mask R-CNN) 。
2.1 R-CNN
R-CNN(region-CNN,区域卷积神经网络)
算法流程:

  1. 通过选择搜索( selective search) 网络对图像的纹理、颜色等特征进行分析,选取出2000个大小不同的候选区域;
  2. 对特征向量进行归一化处理;
  3. 通过深度网络对输入的候选区域进行前向计算获得特征;
  4. 训练支持向量机( support vector machine,SVM) 分类器进行分类;
  5. 使用回归器精细修正每个候选框的位置。
    在这里插入图片描述

优点:

  • 相较于传统的物体检测方法,R-CNN 通过选择性搜索确定候选区域来进行目标检测,从根本上提高了检测效率。

缺点:

  • 候选区需要进行归一化处理,这容易导致图像信息缺失;
  • 资源利用率低,在分类和回归操作时 CNN 模型的参数没有进行同步修改;
  • 每一个候选区域都需要输入到 CNN 中提取特征,占用大量磁盘空间,时间复杂度高。
  • 在数据集 Pascal VOC2007 中,基于 VGG 卷积神经网络模型的 R-CNN 算法,检测一张图像的平均时间高达 47 s。

2.2 SSP-Net
SSP-Net: 在 2015 年,He K M 等人在 R-CNN 模型的基础上进行改进提出了 SSP-Net 模型,其在全连接层前接入了金字塔池化( spatial pyramid pooling,SPP) 层来适应任何尺寸的图像输入,解决了 R-CNN 模型由于归一化导致的信息缺失问题。
在这里插入图片描述
金字塔池化的作用:其在全连接层前接入了金字塔池化( spatial pyramid pooling,SPP) 层来适应任何尺寸的图像输入,解决了 R-CNN 模型由于归一化导致的信息缺失问题。
对R-CNN的特征提取步骤的改进:
SPP-Net 对 R-CNN 的特征提取步骤进行了修改,这样特征提取不再需要每个候选区域都经过 CNN只需要将整张图片输入。感兴趣区域( region of interest,ROI) 特征可以直接从特征图获取,使得运行速度得到了极大的提高。
缺点:
算法仍然使用的是 R-CNN 框架,所以缺点十分明显,在运行时占用巨大的磁盘资源。

2.3 Fast R-CNN

Fast R-CNN解决的问题:

  • 训练分步过多导致训练速度慢,通过对整幅图像进行卷积操作,再从特征映射中选择候选区域,极大地提高了训练速度;

  • 训练时间和内存消耗比较大,R-CNN 在训练 SVM 和回归的时候需要用网络训练的特征作为输入,将特征保存在磁盘上再读入。

Fast R-CNN的改进:

Fast R-CNN 结合了 SPP-Net 网络的优点,将 R-CNN 网络进行改进:

  • 对整张待测图像进行卷积操作,减少重复计
    算;
  • 整张待测图像归一化后送入深度网络,通过最后少数几层处理每个候选框,提升了运行速度;
  • 引入多任务损失( multi-task loss) 函数,用深度网络统一实现类别判断和位置调整,减少内存占用。
    在这里插入图片描述
    在同样使用最大规模的网络的情况下,在数据集 PAS-CAL VOC 2007 上进行测试发现,Fast R-CNN 相较于 R-CNN的准确率相似,但在训练和测试时间上有了明显的缩短。

2.4 Faster R-CNN
在 2015 年,Ren S Q 团队[19] 在之前的基础上提出了Faster R-CNN 算法,该算法在简单网络的目标检测速度达到 17 fps,在PASCAL VOC 上准确率为 59.9 %,而复杂网络下达到 5 fps,准确率 78.8 %。
该算法将目标检测的4个基本步骤整合在一个深度网络中,提高了算法的综合性能,尤其是在检测速度方面。

Faster R-CNN算法的基本流程:

  1. 将待测图像输入卷积网络中,生成特征映射; 2) 使用区域投标网络[20]( region pro-posal network,RPN) ,在生成候选区域的同时产生锚点( anchors) ,通过判别函数判断并使用边框回归调整 Anchors 以获取准确的候选区域,图 4 为 RPN 算法示意图;
    在这里插入图片描述
  2. 通过RoI 池化层,解决最后输入全连接层的特征图的尺寸大小不同的问题;
  3. 通过完全连接层来分别判断物体的类别和精准位置。由于采用 RPN 代替 Fast R-CNN 算法的选择性搜索方法,在检测率相同的情况下,Faster R-CNN 算法的检测速度是之前的 10 倍。
    在这里插入图片描述

2.5 Mask R-CNN
2017 年 He K M 等人[22]在基于 Faster R-CNN 的基础上进行改进提出了 Mask R-CNN,该算法可以精确到像素级输出,高质量完成分割任务。此外两者的输出也有所不同。
Faster R-CNN 输出为种类标签和 box 坐标,而 Mask R-CNN则会增加一个输出,即物体掩膜( object mask) 。
物体掩膜概念,参考下面的博客:
https://blog.csdn.net/bitcarmanlee/article/details/79132017
Mask R-CNN的特点:

  • 通过引入感兴趣区域聚集(ROI Align) 层来替代 Faster R-CNN 采用的高校池以解决仅通过池化直接采样导致特征图谱在原图的对应位置与真实位置有所偏差的问题;
  • 多任务损失函数包括分类误差、回归误差、分割误差,即将识别预测和分割预测分割,掩膜
    分支针对每个 RoI 产生一个 K×M×M 二值的掩膜输出,其中K为分类物体的类别数目。
    在这里插入图片描述
    三、单阶段深度学习方法
    **单阶段深度学习方法定义:**两阶段深度学习的算法,即分为候选区域生成和区域分类两步,存在着实时性较差的缺点。单阶段深度学习方法[23],即端对端、单阶段对物体进行检测,对于一张待测图像仅使用一个卷积神经网络直接预测不同目标的类别与位置。
    单阶段深度学习方法分类:
    这种端对端的检测方法极大地提高了算法的运行速度,满足目标检测实时性的要求,典型的算法有 YOLO( you only look once)系列、SSD( single shot multibox detector) 系列
    3.1 YOLO算法
    在 2016 年,Redmon J 等人[24] 提出 YOLO 算法使得基于深度学习的目标检测算法有了单阶段和两阶段的区分。
    与之前两阶段目标检测算法最明显的区别在于 YOLO 舍弃候选框提取,直接采用回归的方法进行物体分类和候选框预测[25]。这样的改进简化了网络结构,将检测速度提升至了 Faster R-CNN 的 10 倍左右。至此,基于深度学习的目标检测算法能够满足实时性的需求。
    YOLO V1的算法流程:
    YOLO v1 首先将待测图像进行归一化处理,然后将处理后的图像输入 CNN 中进行特征提取以及边界框置信度的预测,最后采用非极大值抑
    制( non-maximum suppression,NMS) 算法过滤边界框获得最优结果。
    缺点:但是算法只针对最后特征图进行分析,使得它对小目标的检测效果不佳,当多个目标出现在一个网格单元时不容易区分。
    在这里插入图片描述
    YOLO V2算法
    时隔一年,Redmon J 等人[27]在 YOLO v1 的基础上进行改进提出了 YOLO9000,该算法的检测速度远远超过其他检测算法,代表着当时业界最先进的检测水平。YOLO9000 相
    较于 YOLO v1 做出了以下改进:
  • 对网络结构进行了优化,在消除对其他正则化的依赖的同时,提高了收敛性;
  • YOLO v2提高了分辨率,为了适应高分辨率输入,使用新的高分辨率分类器;
  • 使用卷积层预测边界框位置并用标准欧氏距离的 K-means 聚类方法代替手动选择边界框个
    数、形状,以提高置信分数;
  • 采用新的特征提取网络模型
    Darknet—19,以提取到物体更精细的特征;
  • 采用多尺度图像训练,通过采用不同分辨率的图像进行模型迭代训练,增强模型对多尺度图像的预测鲁棒性。
    YOLO V3算法
    2018 年,Redmon J 等人[26] 在 YOLO v2 的基础上提出了效果更佳的 YOLO v3 算法,
  1. 调整了网络结构,使用残差网络模型[29]Darknet—53 进行特征提取;
  2. 采用多尺度特征进行目标检测,借鉴特征金字塔网络( feature pyramid networks,FPN) 思想,通过采用了 3 个不同尺度的特征图能获
    得细粒度的特征;
  3. 进行分类时,采用多个单独的 Logistic
    分类器取代了 SoftMax,提升了检测速度与精度。

3.2SSD算法

在 2016 年,Liu W 等人[28]提出了 SSD 算法,解决了同时期 YOLO 算法存在的定位精度低、难以检测小目标等问题。
SSD 算法有以下改进:

  1. 采用 CNN 来直接进行检测,避免了 YOLO 方法在全连接之后再进行检测的操作;
  2. 提出尺度不同的特征图来对物体进行检测,通过快速检测不同尺度特征图的准确度,明确区分预测;
  3. 结合 Faster R-CNN 算法中的 Anchor 机制,通过大小不同的先验框在特征图中获取候选区域,提高了召回率。
    在这里插入图片描述

SSD 通过对 Faster R-CNN 算法和 YOLO 算法的优点结合,利用特征的金字塔结构充分挖掘卷积层的特征信息,使得其在满足检测精度的同时保证了算法的速度,在一定程度上克服了 YOLO 算法难以检测小目标、定位不准的缺点。
DSSD算法
2017 年,Fu C Y 等人[30]对 SSD 算法进一步优化提出了 DSSD( deconvolutional single shot detector) 算法,将 SSD 中的融合模块采用反卷积代替传统的双线性插值上采样,将
高层语义与低层特征信息进行充分融合,进一步提升了对小目标的检测精度。与此同时,随着网络的复杂度增加,算法的检测速度有所下降。
在这里插入图片描述
FSSD算法
同年,Li Z X 等人[31]提出了 FSSD( feature fusion single shot multibox detector) 算法,通过借鉴 FPN 算法思想,将多尺度特征与信息融合,虽然对小目标的检测精度有所下降,检测速度得到了明显的提升。
在这里插入图片描述

参考文献
[1]包晓敏,王思琪.基于深度学习的目标检测算法综述[J].传感器与微系统, 2022, 41(4):5.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt Designer,仿作一个ui界面的练习(二):部件内容的填充

有了完成了布局的基本框架设计之后,对各个部件逐步完成内容的填充。 一、还是从顶边栏开始: 1、在顶边栏的topLogo里面拖入一个QLabel(标签),命名为logoImage,删除标签的文字。 2、右键点击topLogo&#x…

[Linux安全运维] LAMP 环境搭建保姆级教学(Apache + MySQL + PHP) ~~

LAMP LAMP 是一种网站技术,可以实现动态的网站页面部署。 1. LAMP概述 1 .1构成 Linux: 简介: Linux 是一种开源的操作系统,以其稳定性和安全性而著称。在 LAMP 堆栈中,它作为服务器操作系统运行。作用: 为应用程序提供一个稳定、安全的运…

为了方便写CURD代码,我在UTools写了个插件SqlConvert来生成代码!

-1. 前言 为了方便摸鱼,我之前写过一个通过sql生成代码的工具,但是服务器到期了,也就懒得重新部署了。 技术框架是 SpringBoot MybatisPlus Velocity Vue ElementUI Sql-ParseeSql-Parser-ui 0. Utools应用安装 官网地址: https://u.too…

达梦数据库归档介绍

一、什么是归档 数据库归档是一种数据管理策略,它涉及将旧的、不经常访问的数据移动到一个单独的存储设备,以便在需要时可以检索,同时保持数据库的性能和效率。 归档的主要目标是为了释放数据库中的空间,以便更有效地利用高性能…

如何用PostMan按照规律进行循环访问接口

①设置动态变量 步骤一: 设置环境变量 1. 创建环境变量集合 在 Postman 左上角选择 "环境",然后点击 "添加" 来创建一个新的环境变量集合。给它起一个名称,比如 "uploadDemo". 2. 添加初始变量 在新创建的环境变量集…

校车购票小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,我的乘车信息管理,车辆信息管理,座位管理,系统管理 微信端账号功能包括:系统首页,车辆信息,我的 开发系统…

electron 主进程和渲染进程

最近在整理electron 相关的项目问题,对自己来说也是温故知新,也希望能对小伙伴们有所帮助,大家共同努力共同进步。加油!!!! 虽然最近一年前端大环境不好,但是大家还是要加油鸭&#…

kafka leader选举过程浅析

文章目录 概要核心概念leader选举具体流程小结 概要 kafka我们都知道它是通过副本机制,来支持负载均衡和故障转移等高可用的,那么具体副本的选举过程你了解吗?下面我们一起来学习下吧! 核心概念 Controller定义:是特…

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

飞机大战(5)-碰撞及积分 参考敌机的生成 子弹由飞机生成,放在player_node节点子弹重复使用,要使用预制体;子弹新增了动画 ①创建一个预制体 命名为playerBullet_prefab ② 双击预制体将bullet1图片拖入预制体 保存,关闭(场景编辑器里面的) ③ 发射子弹 player加入代码 prop…

尚庭公寓(五)

图片上传管理 由于公寓、房间等实体均包含图片信息,所以在新增或修改公寓、房间信息时,需要上传图片,因此我们需要实现一个上传图片的接口。 **1. 图片上传流程** 下图展示了新增房间或公寓时,上传图片的流程。 可以看出图片上传…

翻译: 可视化深度学习神经网络二

并甚至在图像识别之外做各种各样智能的东西也许你也想分解成一些抽象的层 例如句子的分析涉及到把原始的语音提出一些独特的声音构成一些音节再构成词再构成词组以及更为抽象的思想等。 但回到这些实际是怎样工作的把你自己现在就放到这个的情景怎样来设计 如何在让这层中的激励…

阿里云主机 安装RabbitMQ

一、操作系统 用的是Alibaba Cloud Linux release 3 (Soaring Falcon)系统,可以通过命令:lsb_release -a 查看系统信息。 二、安装RabbitMQ RabbitMQ 是基于 Erlang 语言构建的,要安装RabbitMQ,需先安装Erlang环境。通过Erlang V…

SearchGPT:搜索引擎市场的潜在游戏规则改变者

关注公众号网络研究观获取更多内容。 OpenAI最近发布的SearchGPT原型标志着搜索技术领域的重大进展。我一直在等待这一天,任何关注搜索和搜索引擎优化领域的人也是如此。我们有充分的理由相信,这一举措很有可能颠覆长期由谷歌等巨头主导的搜索引擎市场&…

宠物医院预约系统-计算机毕业设计源码60818

目录 摘要 Abstract 第一章 绪论 1.1 选题背景及意义 1.2 国内外研究现状 1.3 研究方法 第二章 相关技术介绍 2.1 MySQL简介 2.2 Java编程语言 2.3 B/S模式 2.4 springboot框架 第三章 宠物医院预约系统 系统分析 3.1 系统目标 3.2 系统可行性分析 3.2.1 技术可行…

链式队列实现

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝唯有主动付出,才有丰富的果实获得收获! 在计算机科学中,队列是一种先进先出(FIFO, First In First Out)的数据结构…

.NET周刊【7月第4期 2024-07-28】

国内文章 .NET 高性能缓冲队列实现 BufferQueue https://mp.weixin.qq.com/s/fUhJpyPqwcmb3whuV3CDyg BufferQueue 是一个用 .NET 编写的高性能的缓冲队列实现,支持多线程并发操作。 项目地址:https://github.com/eventhorizon-cli/BufferQueue 项目…

Robot Operating System——远程修改日志等级

大纲 日志输出Node修改其他Node日志等级的Node获取日志等级设置日志等级 测试默认等级Debug等级Warn等级Error等级 完整代码 在任何系统中,日志功能的重要性都是不容忽视的。日志功能为开发者、维护者甚至用户提供了一个关键的工具,以监控、理解和调试系…

基于Windows Docker desktop搭建pwn环境

安装虚拟机很重,占空间,影响速度。 今天试了下用Windows下的Docker搭建pwn做题环境,搭配MobaXterm真的很好! 一、Windows下安装Docker desktop 网上参考文章很多,不赘述。 说明:去https://www.docker.com/products/d…

PHP经销商订货管理系统小程序源码

经销商订货管理系统:重塑供应链效率的利器 🚀 开篇:解锁供应链管理的新纪元 在竞争激烈的商业环境中,经销商作为供应链的关键一环,其订货效率直接影响到整个供应链的流畅度和响应速度。传统的订货方式往往繁琐、易出…

【C++深度探索】深入解析AVL树的底层实现机制

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 AV…