经典目标检测神经网络 - RCNN、SSD、YOLO

这篇具有很好参考价值的文章主要介绍了经典目标检测神经网络 - RCNN、SSD、YOLO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 目标检测算法分类

目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与Two-Stage是两种不同的思路,其各有各的优缺点。

One-Stage
    主要思路:直接通过卷积神经网络提取特征,预测目标的分类与定位;

Two-Stage
    主要思路:先进行区域生成,即生成候选区域(Region Proposal),在通过卷积神经网络预测目标的分类与定位;

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

优缺点

优缺点 One-Stage Two-Stage
优点 速度快;避免背景错误产生false positives; 学到物体的泛化特征 精度高(定位、检出率);Anchor机制;共享计算量
缺点 精度低(定位、检出率);小物体的检测效果不好 速度慢;训练时间长;误报相对高

从目前看,在移动端一般使用 One-Stage算法。现在很难说,精度和准确率的问题,因为影响因素不仅仅取决于算法,还跟数据集大小、图像标注质量、训练参数等有很大的关系。

主要算法

One-Stage:YOLO系列(v1-v8),SSD系列(R-SSD、DSSD、FSSD等),Retina-Net,DetectNet,SqueezeDet。

Two-Stage:RCNN系列(Fast-RCNN、Faster-RCNN、Mask-RCNN),SPPNet,R-FCN。


2. 区域卷积神经网络

2.1 R-CNN

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

使用启发式搜索算法来选择锚框。

使用预训练模型来对每个锚框抽取特征。

训练一个SVM来对类别分类。

训练一个线性回归模型来预测边缘偏移框。

当锚框每次选择的大小不同,我们如何使这些锚框称为一个batch呢?

兴趣区域(ROI)池化层

ROI Pooling

  • 给定一个锚框,均匀分割成   n ×   m \ n\times\ m  n× m块,输出每块里的最大值
  • 不管锚框多大,总是输出 n m nm nm个值

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

2.2 Fast R-CNN

对图片整体抽取特征。

  • 不再对每一个锚框做CNN的特征抽取,而是对图片整体使用CNN进行特征抽取
  • 使用RoI池化层对每个锚框生成固定长度特征

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

2.3 Faster R-CNN

  • 使用一个区域提议网络来代替启发式搜索,来获得更好的锚框。
    经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

2.4 Mask R-CNN

  • 如果有像素级别的标号,使用FCN来利用这些信息
  • 在无人车领域运用较多

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

在做像素级别预测时,边界位置不要发生太多的错位。

2.5 速度和精度比较

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

总结:

  • R-CNN是最早、也是最有名的一类基于锚框和CNN的目标检测算法
  • Fast/Faster R-CNN持续提升性能
  • Faster R-CNN和Mask R-CNN是在最求高精度场景下的常用算法

3. 单发多框检测(SSD)

SSD全称Single Shot Multibox Detector,是一种单阶段目标检测器。其优点是原始的YOLO和Faster R-CNN在推理速度和精度之间取得了更好的平衡。SSD模型是由Wei Liu等人在使用卷积神经网络(CNN)进行目标检测的研究中,提出的一种改进思路。

SSD用于图像分类、物体检测和语义分割等各种深度学习任务。相对于其他目标检测算法,SSD模型有更高的精度,而且速度也是非常快的。其主要思路是通过在CNN的最后几层添加多个预测层实现多尺度的目标检测,然后通过一个过滤策略对每个检测框进行筛选,最后输出最终的检测结果。

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

生成锚框

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

  • 对每个像素,生成多个以它为中心的锚框
  • 给定n个大小为 s 1 , s 2 , . . . , s n s_1,s_2,...,s_n s1,s2,...,sn m m m个高宽比,那么生成 n + m − 1 n+m-1 n+m1锚框,其大小和高宽比分别为:

( s 1 , r 1 ) , ( s 2 , r 1 ) , . . . , ( s n , r 1 ) , ( s 1 , r 2 ) , . . . , ( s 1 , r m ) (s_1,r_1),(s_2,r_1),...,(s_n,r_1),(s_1,r_2),...,(s_1,r_m) (s1,r1),(s2,r1),...,(sn,r1),(s1,r2),...,(s1,rm)

SSD模型

  • 一个基础网络来抽取特征,然后多个卷积层块来减半高宽
  • 在每段都生成锚框
    • 底部段来拟合小物体,顶部短来集合大物体
  • 对每个锚框预测类别和边缘框

总结:

  • SSD通过单神经网络来检测模型
  • 以每个像素为中心的产生多个锚框
  • 在多个段段输出上进行多尺度的检测

4. YOLO

You Only Look Once

YOLO系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类与目标定位的回归问题结合起来,从而做到了高效、灵活和泛化性能好,所以在工业界也十分受欢迎。

Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。

经典目标检测神经网络 - RCNN、SSD、YOLO,Python,目标检测,神经网络,YOLO,RCNN,SSD

yolo尽量让锚框不重叠。

  • SSD中锚框大量重叠,因此浪费了很多计算
  • yolo将图片均匀分成 S × S S\times S S×S个锚框
  • 每个锚框预测 B B B个边缘框
  • 后续版本(V2,V3,V4…)有持续改进

YOLO家族进化史(V1-V8)文章来源地址https://www.toymoban.com/news/detail-717546.html

  • YOLOv1
  • YOLOv2:对YOLOv1进行改进
  • YOLOv3:对YOLOv2进行改进
  • YOLOv4:对YOLOv3进行改进
  • YOLOv5:对YOLOv4进行改进
  • YOLOx:以YOLOv3作为基础网络进行改进
  • YOLOv6:由美团推出,更加适应GPU设备,算法思路类似YOLOv5(backbone+neck)+YOLOX(head)
  • YOLOv7:是YOLOv4团队的续作,检测算法与YOLOv4,v5类似
  • YOLOv8:是YOLOv5团队进一步开发的

到了这里,关于经典目标检测神经网络 - RCNN、SSD、YOLO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 毕业设计-基于深度学习的交通路面障碍物目标检测系统 YOLO python 卷积神经网络 人工智能

    目录  前言 设计思路 一、课题背景与意义 二、算法理论原理 三、检测的实现 3.1 数据集 3.2 实验及结果分析 实现效果图样例 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各

    2024年02月03日
    浏览(66)
  • 基于卷积神经网络的3D动目标检测方法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ` 一种基于雷达的多类移动目标检测方法,该方法利用了目标级的专业知识(精确的二维定位、解决相位模糊),以及来自全三维立体雷达数据。包含的雷达数据可以在任何对象聚类之前对单个移动目标

    2024年02月08日
    浏览(54)
  • 【计算机视觉】目标检测 |滑动窗口算法、YOLO、RCNN系列算法

    首先通过前面对计算机视觉领域中的卷积神经网络进行了解和学习,我们知道,可以通过卷积神经网络对图像进行分类。 如果还想继续深入,会涉及到目标定位(object location)的问题。在图像分类的基础上(Image classification)的基础上,除了判断图像中的物体类别是什么,还需要给

    2024年02月20日
    浏览(53)
  • yolov5目标检测神经网络——损失函数计算原理

    前面已经写了4篇关于yolov5的文章,链接如下: 1、基于libtorch的yolov5目标检测网络实现——COCO数据集json标签文件解析 2、基于libtorch的yolov5目标检测网络实现(2)——网络结构实现 3、基于libtorch的yolov5目标检测网络实现(3)——Kmeans聚类获取anchor框尺寸 4、C++实现Kmeans聚类算法获

    2024年02月02日
    浏览(46)
  • 【毕业设计选题】基于深度学习的建筑桥梁裂缝检测系统 YOLO 卷积神经网络 人工智能

    目录 前言 设计思路 一、课题背景与意义 二、算法理论原理 2.1 卷积神经网络 2.1 YOLOv5算法 三、桥梁裂缝检测的实现 3.1 数据集 3.2 模型训练 实现效果图样例 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕

    2024年02月19日
    浏览(75)
  • 通过云端自动生成openmv的神经网络模型,进行目标检测

    1.OpenMV4 Plus(低版本的openmv可能算力不够不支持) 2.一根micro usb的数据线 3.电脑、网络 在openMV官网下载openmv IDEhttps://book.openmv.cc/ 下载完毕后进入IDE界面: 1.首先在D盘里创建一个新的文件夹,用来放置一会要存放的数据集: 这里我创建的数据集名为new data 2.打开openmv的IDE,点

    2024年02月14日
    浏览(40)
  • 【毕业设计选题】基于深度学习的学生课堂行为检测算法系统 YOLO python 卷积神经网络 人工智能

    目录 前言 设计思路 一、课题背景与意义 二、算法理论原理 2.1 深度卷积神经网络 2.2 YOLOv5算法 三、检测的实现 3.1 数据集 3.2 实验环境搭建 3.3 实验及结果分析 实现效果图样例 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学

    2024年02月19日
    浏览(112)
  • 人工智能学习与实训笔记(三):神经网络之目标检测问题

    人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 目录 三、目标检测问题 3.1 目标检测基础概念 3.1.1 边界框(bounding box) 3.1.2 锚框(Anchor box) 3.1.3 交并比 3.2 单阶段目标检测模型YOLOv3 3.2.1 YOLOv3模型设计思想 3.2.2 YOLOv3模型训练过程 3.2.3 如何建立输出特征图与预

    2024年02月20日
    浏览(62)
  • 经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程

    和之前实现的YOLOv1一样,根据 《YOLO目标检测》(ISBN:9787115627094) 一书,在不脱离YOLOv2的大部分核心理念的前提下,重构一款较新的YOLOv2检测器,来对YOLOV2有更加深刻的认识。 书中源码连接: RT-ODLab: YOLO Tutorial 对比原始YOLOV2网络,主要改进点如下: 添加了后续YOLO中使用的neck,

    2024年01月18日
    浏览(45)
  • 毕业设计-基于深度学习的锂电池极片缺陷检测算法 YOLO python 卷积神经网络 人工智能

    目录 前言 设计思路 一、课题背景与意义 二、算法理论原理 2.1 YOLOv5算法 2.2 改进后的YOLOv5算法 三、锂电池缺陷检测的实现 3.1 数据集 3.2 网络训练 3.3 网络性能分析 实现效果图样例 最后        📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业

    2024年02月03日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包