YOLO系列论文阅读(v1--v3)

搞目标检测,绕不开的一个框架就是yolo,而且更糟糕的是,随着yolo的发展迭代,yolo网络可以做的事越来越多,语义分割,关键点检测,3D目标检测。。。这几天决定把YOLO系列彻底梳理一下,在进入大模型时代前,我们欣赏一下这个CNN时代最具影响力的作品。

前YOLO时代

在YOLO出现之前,目标检测已经大部迈向了CNN时代。从RCNN到FastRCNN, 再到FasterRCNN。可以看到,模型的速度越来越快,网络结构越来越简洁,启发式的方法论在一步步被抛弃。

但是,基于RCNN的方法需要预先通过region proposal network选择锚框,在保证了精度的同时,也大大耽误了速度。显然,目标检测的发展遇到了瓶颈。此时,YOLO,SSD等one stage方法孕育而生。

而经过多年的发展,YOLO系列在保持自己原来的快速的特点的基础上,在性能上也逐步提升,成为了目标检测在工业上落地的最优选择。

YOLO论文 

YOLO1

论文题目:You Only Look Once: Unified, Real-Time Object Detection

会议: CVPR2016

链接: https://arxiv.org/pdf/1506.02640.pdf

作者: Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi

YOLO v1实现了从原始图像到检测框的单一网络端到端设计。 将图片分割为SxS个方块,每个方块包含2个Bbox的预测。

这里的潜在问题是:如果一个区域包含2个以上的小物体,该怎么办呢?

网络结构

网络包含24个卷积层和2个全连接层(全链接层明显开销会比较大)。此外,作者还提到了精简版的FastYOLO,包含9个卷积层,模型的输出是 7 x 7 x 30 的预测。

训练

模型训练首先采用imagenet数据进行前20个卷积层的训练(作为分类任务),随后,通过4个卷积层和2个全链接层进行检测任务的训练。

局限性

YOLO的局限性在于每一个grid最多只能输出两个物体和一种物体类别。

YOLO2 

发表于: CVPR2017

论文标题:YOLO9000: Better, Faster, Stronger

论文链接:https://arxiv.org/pdf/1612.08242.pdf

作者: Joseph Redmon, Ali Farhadi

 

YOLOv2的网络架构优化

其实,在YOLOv1种就已经提到,YOLO对于多物体的检测能力有限,尤其是当一个grid出现多个物体时。此外,作者还提到,锚框的位置不够准确,recall较低 。面对这些问题,在YOLOv2中,作者给出了解决方式,包括,1. 引入batch normalization,2. 采用高分辨率的图像训练分类器(感觉这个创新点很一般)3. 引入锚框,

这其中,比较值得一说的就是锚框,在YOLO1中通过全连接层进行猫框的预测,但是,在v2中,作者放弃这一设计,转而借鉴Faster-RCNN中提出的先验猫框的概念,通过anchor box的引入,支持的猫框数量大大增加,mAP略微下降,但是recall大大增加,总之,替换的利大于弊。

既然使用锚框,就要提供锚框先验的维度信息,作者没有使用人工选择的方式,而是选择使用K-means的方式,基于数据集找到了5个最优的大小。

此外,YOLO对于检测框位置预测的不精准,主要由于对于物体x,y位置估计的不准确,因此,我们选择预测物体位置与对应网格的相对距离。对于每个特征图的每个网格,我们会获取5个检测框的预测,基于这样的修改,我们可以保证检测框的精度进一步提升。

此外,通过passthrough layer,作者还提高了特征图的分辨率,来保证物体检测的精度(这一步其实没有太明白)。。

YOLOV2的训练策略优化

为了保证网络具有多尺度检测的能力,作者在训练的过程中,还将不同分辨率的图片,作为输入。对于低分辨率的图像,采用更轻量的检测器,可以大大提高帧率。

为了保证backbone的效率,作者认为采用vgg-16.可以,但没必要,因此选择参考googlenet。

为了让训练更高效,作者还利用目标检测数据集和分类数据集,微调网络结构,分别进行训练。

此外,还有其他技巧,这里没有全部展示。

总结

YOLOV2中,作者对于网络结构,和训练策略都做了调整和改进。对于网络架构的修改,有效的弥补了YOLO的短板,而关于训练策略的优化,作者展示了统一目标检测和分类这两类任务的雄心。此外,也提到了在物体分割领域的应用可能。

此外,作者的笔风也逐渐飘逸,说实话better,stonger,faster作为小标题,并不利用读者梳理论文的框架。

YOLOv3

标题: YOLOv3: An Incremental Improvement

作者: Joseph Redmon, Ali Farhadi

发表于:CVPR2018

YOLOV3的论文基本是以技术报告的形式展现。

这里整理一下我认为比较重要的几个创新点

1. Backbone的改进

在V2中,作者提到backbone的设计借鉴了googleNet,而在V3中,作者则借鉴了resnet的残差设计,网络层数也大大加深,从YOLOv2 的Darknet-19 变为了Darknet-53。

2。 引入多尺度信息

YOLOv3在三个尺度进行特征提取。然后通过上采样的方式进行特征融合,通过类似v2中K-means的方法获得了9个先验的尺度信息,然后分布在3个特征提取层中。

总结

Yolov3的创新点给人一种重剑无锋的感觉,没有太多冗余的更新,但是backbone优化,和多尺度信息引入又大大的改进了YOLOv2的效果。而作者开源的YOLOv3 c++推理代码也为YOLO的黄金时代画下了一个完美的句号。

多尺度预测,残差网络的运用

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

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

相关文章

leet hot 100-4 移动零

移动零 原题链接思路代码 原题链接 leet hot 100-4 283. 移动零 思路 遍历数组 将非0数字 移动到数组前端 数字0就会被移动到数组末端 时间复杂度O(n) 空间复杂度(n) 代码 class Solution { public:void moveZeroes(vector<int>& nums) {int start 0;int ind…

Spring篇----第五篇

系列文章目录 文章目录 系列文章目录前言一、Spring IoC 的实现机制。二、什么是 spring bean?三、spring 提供了哪些配置方式?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

CNCF之毕业Projects简介

CNCF组织管理着大量的云原生基础设施软件系统&#xff0c;如著名的k8s&#xff0c;不同的系统解决不同的技术点&#xff0c;也有一些系统是解决同一个问题的&#xff0c;形成一个自由竞争的关系&#xff0c;互相促进彼此创新进步&#xff0c;同时也给我们做技术选型带来了多样性…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码&#xff0c;并且执行&#xff0c;从而实现窃取用户信息等攻击 攻击&#xff1a; 防御&#xff1a; 1.对输入进行过滤&#xff0c;对输出进行编码 2.cookie设置http-only

Android 如何添加自定义字体

Android 如何添加自定义字体 比如我要添加 jetbrains 相关字体 在 res 文件夹中添加 font 文件夹。里面放入你的字体文件 .ttf .otf&#xff0c;字体文件名需要是小写&#xff0c;只能是字母和下划线。 在 xml 布局文件中直接通过 android:fontFamily"font/jetbrainsmo…

Spring事务失效场景

【事务的回滚仅仅对于unchecked的异常有效。对于checked异常无效。也就是说事务回滚仅仅发生在&#xff0c;出现RuntimeException或Error的时候。通俗一点就是&#xff1a;代码中出现的空指针等异常&#xff0c;会被回滚。而文件读写、网络超时问题等&#xff0c;spring就没法回…

1.openEuler概述及安装指南(一)

openEuler OECA认证辅导,标红的文字为学习重点和考点。 1.openEuler简介 openEuler是一款面向全球的开源操作系统 支持ARM、X86等多种处理器,能够充分释放计算芯片的潜能:高效、稳定、安全 适用于数据库、大数据、云计算、人工智能等多种应用场景 通过社区合作,打造创新平…

[面试] 什么是死锁? 如何解决死锁?

什么是死锁 死锁&#xff0c;简单来说就是两个或者多个的线程在执行的过程中&#xff0c;争夺同一个共享资源造成的相互等待的现象。如果没有外部干预线程会一直阻塞下去. 导致死锁的原因 互斥条件&#xff0c;共享资源 X 和 Y 只能被一个线程占用; 请求和保持条件&#xf…

Chapter 8 - 18. Congestion Management in TCP Storage Networks

Comparison with Lossless Networks Recall that in Fibre Channel fabrics (explained in Chapter 3, “Detecting Congestion in Fibre Channel Fabrics”) and lossless Ethernet networks (explained in Chapter 7), when the source of congestion is within an end-devi…

U版YOLO-World来了,YOLOv8再度升级,三行代码上手YOLO-World!

本文首发&#xff1a;AIWalker 欢迎关注AIWalker&#xff0c;近距离接触底层视觉与基础AI https://arxiv.org/abs/2401.17270 https://github.com/AILab-CVC/YOLO-World https://github.com/ultralytics/ultralytics https://www.yoloworld.cc/ YOLO-World亮点 YOLO-World是下…

安珀警报发挥重要作用

在周二&#xff08;2月13日&#xff09;的傍晚时分&#xff0c;美国加州发生了一起令人震惊的绑架事件。一名年仅四岁的男童在其父送外卖时被一名嫌犯带走。在加州公路巡逻队和长滩警察局发布安珀警报后&#xff0c;全城的人们都行动了起来。 安珀警报&#xff0c;全名为Ameri…

MiKTeX安装后,Latex编译后PDF无法预览,是灰色的

解决方式删掉编译器就可以&#xff0c; 即删掉MiKTeX MiKTeX安装后会将编译器默认修改为MiKTeX&#xff0c;这个时候会显示报错&#xff0c;简单粗暴的方式是删掉MiKTeX软件

AI:135-基于卷积神经网络的艺术品瑕疵检测与修复

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

YOLOv9:目标检测的新里程碑

YOLOv9&#xff1a;目标检测的新里程碑 摘要&#xff1a;YOLOv9是目标检测领域的一个重大突破&#xff0c;它在性能、速度和准确性方面都取得了显著的进步。本文详细介绍了YOLOv9的架构创新、优化策略以及在实际应用中的表现&#xff0c;并通过与YOLOv8等先前版本的比较&#…

Github 2024-02-21 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-21统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目8非开发语言项目1TypeScript项目1 gpt4free 语言模型集合改进计划 创建周期&#xff1a;300 天开…

并发编程(4)共享模型之无锁

6 共享模型之无锁 本章内容 CAS 与 volatile原子整数原子引用原子累加器Unsafe 6.1 问题提出 有如下需求&#xff0c;保证 account.withdraw 取款方法的线程安全 import java.util.ArrayList; import java.util.List;interface Account {// 获取余额Integer getBalance();…

复旦大学MBA:AIGC时代,科技与商业迸发更绚烂的火花

ChatGPT问世以来&#xff0c;AI技术及应用进入一个全速推进的通道&#xff0c;快速迈入通用大模型时代。从AGI(人工通用智能&#xff09;到AIGC(AI多模态内容生成&#xff09;&#xff0c;AI正在飞速重塑各个行业、人类生活乃至人类的未来。在商业领域更是给营销场景和营销工具…

Mac OS 搭建C++开发环境【已解决】

Mac OS 搭建C开发环境 文章目录 Mac OS 搭建C开发环境一、安装命令行工具&#xff1a;二、安装vscode三、安装gcc3.1 安装Homebrew3.2 安装gcc3.3 修改配置 四、更改VSCode默认编译器五、安装gdb六、安装Cmake && git七、编译运行 本地环境&#xff1a; Mac OS Sonoma …

3.openEuler物理存储及逻辑卷管理(一):磁盘存储挂载与使用

openEuler OECA认证辅导,标红的文字为学习重点和考点。 如果需要做实验,建议下载麒麟信安、银河麒麟、统信等具有图形化的操作系统,其安装与openeuler基本一致。 磁盘大类: HDD, (Hard Disk Drive的缩写) : 由一个或者多个铝制或者玻璃制成的磁性碟 片,磁头,…

xtu oj 1248 Alice and Bob 2.0

题目描述 Alice和Bob在玩骰子游戏&#xff0c;他们用三颗六面的骰子&#xff0c;游戏规则如下&#xff1a; 点数的优先级是1点最大&#xff0c;其次是6,5,4,3,2。三个骰子点数相同&#xff0c;称为"豹子"&#xff0c;豹子之间按点数优先级比较大小。如果只有两个骰…