目标检测算法:YOLO v1论文解读

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

目标检测算法:YOLO v1论文解读

前言

​ 其实网上已经有很多很好的解读各种论文的文章了,但是我决定自己也写一写,当然,我的主要目的就是帮助自己梳理、深入理解论文,因为写文章,你必须把你所写的东西表达清楚而正确,我认为这是一种很好的锻炼,当然如果可以帮助到网友,也是很开心的事情。

说明

​ 如果有笔误或者写错误的地方请指出(勿喷),如果你有更好的见解也可以提出,我也会认真学习。

原始论文地址

​ 点击这里,或者复制链接

https://arxiv.org/abs/1506.02640

目录结构

1. 文章内容概述:

​ 作者提出了一种新的目标检测方法,是一种单阶段检测方法,称其为YOLO,全称为You only look once。这个方法的主要特点是不再生成区域建议框,而是全部交给网络架构来实现,是真正的端到端结构(其实并不是严格意义上的端到端,因为还需要进行后处理操作)。

​ 正是因为没有了区域建议框的生成,其运行速度非常快,可以实现实时检测,但是同样的,其mAP和最先进的检测方法Faster-RCNN比还是较低。

2. YOLO流程介绍:

​ 如果你看了我之前的关于RCNN、Fast-RCNN、Faster-RCNN的解读,你马上就会感概,YOLO真的好简单。

​ 论文原图如下:

目标检测算法:YOLO v1论文解读

​ 对上图进行简单的说明:

  • 首先,将输入图片改变大小(一般是取大的分辨率,文中取得的是448*448)

问题:为什么要取大分辨率图像?

​ 因为检测问题需要更细致的信息,因此提高分辨率。

  • 然后,将该图片传输给CNN架构,然后产生输出(即预测框和类别预测信息)

3. CNN架构:

​ 这里作者自己设计了CNN架构,当然,对于读了这么多的CNN架构论文来说,小case(如果你是无基础直接看的话,当我没说,此时建议你可以先看看基础的)。

​ 论文原图如下:

目标检测算法:YOLO v1论文解读

​ 具体的网络架构就不谈了,只是要注意,其实网络架构中用到了激活函数,并且不是我们常规的ReLu激活函数,而是leaky relu(最后一层还是relu):

目标检测算法:YOLO v1论文解读

​ 另外,需要注意它的输出,**这是最重要的部分。**因为它的输出和我们平时的输出不一样,因为无论是图像分类的架构,还是之前的两阶段检测算法,输出就没有三维结构的。

​ 那么,7*7*30是什么意思?下面先分开解释,再结合一起解释。

解释:7*7含义

​ 作者将一张图像划分为S*S个网格,如下图(S=7):

目标检测算法:YOLO v1论文解读

​ 作者认为:

  • 如果某个物体对象中心落在某一网格中,那么该网格就负责该对象的检测
  • 每个单元格预测B个边界框和其对应的置信度分数,以及一组类概率(比如总共20个类别,则产生20个概率值)

​ 其中,置信度公式和概率公式分别如下,其中Pr(object)取{0,1},表示该网格有对象,则取值为1,否则取值为0。

目标检测算法:YOLO v1论文解读
目标检测算法:YOLO v1论文解读

解释:30含义

​ 30=(4+1)*2+20,其中4和1分别表示4个坐标值(x,y,w,h)和一个置信度分数;2表示每个单元格预测2个边界框,那么自然需要乘以2;20是因为数据集共20个类别。

解释:7*7*30怎么才能满足我们的要求?

​ 神经网络的神奇之处,就是在于我们可以让它去适应任意的任务。比如这里,我们需要它按照我们的想象输出7*7*30,并且这里的值必须为我们所想的(比如30里面为坐标值、概率值等)。想要让它输出和我们想得一样,就必须让它在训练的时候,告诉它,30里面的值我们要用来生成预测框和判断类别。而,这个控制它的过程,就是定义一个优秀的损失函数,让7*7*30的值各有所用。

4. 损失函数:

​ 原文中,给出的损失函数公式如下:

目标检测算法:YOLO v1论文解读

​ 下面进行一一解读:

1[上标:obj,下标:ij] 、 1[上标:noobj,下标:ij] 和 1[上标:obj,下标:i] 含义:

​ 1[上标:obj,下标:i],表示如果对象在单元格i中,则取值为1,否则取值为0。

​ 1[上标:obj,下标:ij],表示如果对象在单元格i的第j个边界框中,则取值为1,否则取值为0。

​ 1[上标:noobj,下标:ij],与上面恰好相反,即如果对象没有出现在单元格i的第j个边界框中,则取值为1,否则取值为0。

S和B 含义:

​ S就是一张图片划分为多少个单元格,文中为7*7。

​ B就是一个单元格有B个边界框预测,文中为2。

xi、yi、wi、hi、Ci、pi© 含义:

​ xi、yi、wi、hi就是中心点坐标值和预测框的宽高。

​ Ci是预测框的置信度分数,公式上面已经给过了。

​ pi© (小写c)是一个边框的一组概率值(向量)。

​ 在这些变量上加上*号,表示为真实值。

λcoord,λnoobj 含义:

​ 这两个值是超参数,主要是平衡值。因为,不包含对象的预测框肯定是多数,这会导致计算损失时,值失衡。因此一般会让λcoord值取得比较大,比如5,λnoobj取得比较小,比如0.5。

各行表达式的含义:

​ 第一行+第二行 = 预测框(有对象的预测框)的回归损失,可以看出采取的时类似于MSE的损失,准确来说,后面所有的损失都采取的类似MSE的损失(这是一个缺点,分类损失还是用交叉熵好一点)。

​ 第三行+第四行 = 分别为有无对象的预测框的置信度损失值。

​ 第五行 = 分类损失值。

5. 注意点:

​ 在上面写的时候,有一句”如果某对象的中心落在某单元格,则这个单元格负责该对象的检测“。而在后面中,经常会有”如果某对象落在第i个单元格中“,这里对象落在某单元格就是指的是对象中心落在单元格中。

​ 另外,一个单元格有多个框,是否所有框都负责对象?不是的,而是IOU最大的负责预测,这样可以让不同的框产生不同的作用,有利于提高召回率。

6. 总结:

​ YOLO的特殊之处在于损失函数的构建和网络输出的利用。不过YOLO v1仍然有许多的缺点,比如预测框太少(7*7*2=98个)、损失函数中分类没有交叉熵损失等等。

​ 不过,YOLO相比于两阶段检测方法,的确很简单,这也是它的一大优点。文章来源地址https://www.toymoban.com/news/detail-472077.html

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

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

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

相关文章

  • 第六章:YOLO v1网络详解(统一的实时目标检测)

    文章目录 系列文章目录 技术干货集锦 前言 一、摘要 二、正文分析 1.引入库 2.读入数据 总结 我们提出了YOLO,一种新的目标检测方法。之前的目标检测工作将分类器重新用于检测。相反,我们将目标检测视为一个回归问题,用于空间分离的边界框和相关类别概率。一个单一

    2024年02月13日
    浏览(41)
  • 深度学习(目标检测):YOLO网络学习笔记(YOLO v1,YOLO v2和 YOLO v3)

    两种进行目标检测任务的深度学习方法 : 分类 :深度学习的目标检测的方法可以分为两类,分别是一阶段方法和二阶段方法。 一阶段方法 :YOLO系列模型都是一阶段方法,这一类方法可以一步到位地使用卷积神经网络进行特征提取并输出标注框。 两阶段方法 :两阶段阶段

    2023年04月11日
    浏览(41)
  • 《从零深入理解Yolo系列v1-v8全家桶 + 目标检测面试提问》

    参考文章:AI菌的 从yolov1至yolov5 截止2023.1.17,Yolo系列( you only look once )已经出到了Yolo v8 Yolo中,目标检测=目标分类+目标定位 分类 :得类别; 回归 :得边界框(边界框回归模型)、置信度 将图片分割成SxS个网格,head学到的特征图是SxSx(5+5+class_num),其中5=(x, y, w, h, confide

    2023年04月18日
    浏览(85)
  • 论文解读 | YOLO系列开山之作:统一的实时对象检测

    原创 | 文 BFT机器人  01 摘要 YOLO是一种新的目标检测方法,与以前的方法不同之处在于它将目标检测问题视为回归问题,同时预测边界框和类别概率。这一方法使用单个神经网络,可以从完整图像中直接预测目标边界框和类别概率,实现端到端的性能优化。 YOLO的速度非常快

    2024年02月05日
    浏览(54)
  • 突破极限:YOLO9000 论文解读 - 构建更好、更快、更强大的实时检测系统

    YOLOv2 论文全篇完整翻译 摘要 我们介绍了 YOLO9000 ,这是一种先进的、实时的目标检测系统,可以检测超过 9000 个物体类别。首先,我们对 YOLO 检测方法进行了各种改进,包括新颖的方法和借鉴自先前工作的方法。改进后的模型 YOLOv2 在标准的检测任务(如 PASCAL VOC 和 COCO )上

    2024年02月06日
    浏览(45)
  • 目标检测YOLO实战应用案例100讲-基于深度学习的航拍图像YOLOv5目标检测(论文篇)(续)

    目录 基础理论及相关技术  2.1 深度学习基础理论 

    2024年04月16日
    浏览(50)
  • 【计算机视觉 | 目标检测】Grounding DINO:开集目标检测论文解读

    介绍一篇较新的目标检测工作: 论文地址为: github 地址为: 作者展示一种开集目标检测方案: Grounding DINO ,将将基于 Transformer 的检测器 DINO 与真值预训练相结合。 开集检测关键是引入 language 至闭集检测器,用于开集概念泛化。作者将闭集检测器分为三个阶段,提出一种

    2024年02月10日
    浏览(61)
  • 深度学习|目标检测与YOLO算法

    目标检测(object detection)是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度、姿态不确定,而且可以出现在图片任何地方,同时物体也可是多个类别的。 目标检测在多个领域中被广泛使用。例如,在无人驾驶领域,

    2024年02月04日
    浏览(48)
  • 目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创

    2023年04月09日
    浏览(49)
  • 3D目标检测--PointPillars论文和OpenPCDet代码解读

    解决传统基于栅格化的3D目标检测方法在面对高密度点云数据时的性能瓶颈; 栅格化方法需要将点云数据映射到规则的网格中,但是对于高密度点云,栅格化操作会导致严重的信息损失和运算效率低下; 因此,该论文提出了一种新的基于点云的3D目标检测方法——PointPillars,

    2023年04月22日
    浏览(82)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包