YOLO v1(2016.5)

news/2024/7/10 23:44:44 标签: YOLO, 深度学习


文章目录

  • Abstract
  • Introduction
    • 过去方法存在的问题
    • 我们提出的方法解决了...
  • Unified Detection
    • Network Design
    • Training
    • Inference
  • Comparison to Other Detection Systems
    • Deformable parts models
    • R-CNN
    • Other Fast Detectors
    • Deep MultiBox
    • OverFeat
    • MultiGrasp
  • Experiments
  • Conclusion

原文链接
代码

Abstract

我们提出了一种新的目标检测方法YOLO,先前在目标检测方面的工作将分类器重新用于执行形式检测。相反,我们将目标检测框架视为空间分离边界框和相关类概率的回归问题。单个神经网络在一次评估中直接从完整图像中预测边界框和类别概率。由于整个检测管道是一个单一的网络,因此可以直接对检测性能进行端到端的优化

我们的统一架构非常快。我们的基本YOLO模型以每秒45帧的速度实时处理图像。一个更小的网络版本,Fast YOLO,每秒处理惊人的155帧,同时仍然达到其他实时探测器的两倍mAP。与最先进的检测系统相比,YOLO会产生更多的定位错误,但背景误差小得多

最后,YOLO学习对象的通用表示,当从自然图像泛化到其他领域(如艺术品)时,它优于其他检测方法,包括DPM和R-CNN

Introduction

过去方法存在的问题

当前的检测系统使用分类器来执行检测,最近的一些方法,如R-CNN,首先使用区域生成方法在图像中生成潜在的边界框,然后在这些候选框上运行分类器,然而这些复杂的管道是缓慢的和难以优化的,因为每个单独的组件必须单独训练

我们提出的方法解决了…

我们将目标检测重新定义为一个单一的回归问题,直接从图像像素到边界框坐标和类概率。使用我们的系统,你只看一次(YOLO)图像,以预测什么物体存在和他们在哪里
YOLO处理图像是简单和直接的。(1)将输入图像的大小调整为448 × 448,(2)在图像上运行单个卷积网络,(3)通过模型的置信度对结果检测进行阈值
单个卷积网络同时预测多个边界框和这些框的分类概率YOLO在完整的图像上进行训练,并直接优化检测性能。与传统的目标检测方法相比,这种统一的模型有几个优点:
首先,YOLO非常快
其次,YOLO在进行预测时对图像进行全局推理,因此,YOLO的背景误差很小
第三,YOLO学习对象的通用表征YOLO高度可泛化的,当应用到新的领域或意想不到的输入时,它不太可能崩溃
YOLO在精度上仍然落后于最先进的探测系统。虽然它可以快速识别图像中的物体,但很难精确定位某些物体,尤其是小物体

Unified Detection

我们将目标检测的独立组件统一到一个单一的神经网络中,YOLO设计使端到端训练和实时速度,同时保持高平均精度
我们定义置信度as Pr(Object) ∗ IOU truth pred
每个边界框由5个预测组成:x, y, w, h和置信度
置信度预测表示预测框与任何真实框之间的IOU
Pr(Classi|Object):条件类概率

条件类概率 × 个体置信度预测 = 类别置信度预测
这些分数编码了该类别出现在框中的概率以及预测框与该对象的匹配程度

Network Design

网络的初始卷积层从图像中提取特征,而全连接层预测输出概率和坐标
我们的检测网络有24个卷积层,后面是2个全连接层,交替的1 × 1卷积层减少了前一层的特征空间。我们在ImageNet分类任务上以一半的分辨率(224 × 224输入图像)预训练卷积层,然后将分辨率提高一倍用于检测

Training

我们对最后一层使用线性激活函数,所有其他层使用以下漏整流线性激活
每张图像中,许多网格单元不包含任何对象,这可能导致模型不稳定,导致训练在早期出现分歧,我们使用两个参数,λcoord和λnoobj来实现这一点。设λcoord =5, λnoobj = .5

我们对模型输出中的和平方误差进行了优化

我们的误差度量应该反映出大盒子里的小偏差比小盒子里的小偏差影响小。为了部分解决这个问题,我们预测边界框宽度和高度的平方根,而不是直接预测宽度和高度
1obji 表示目标是否出现在单元格 i 中,1objij表示单元格 i 中的第 j 个边界框预测器“负责”该预测
损失函数只在对象存在于该网格单元中时惩罚分类错误(因此前面讨论了条件类概率)。它也只有在预测器“负责”地面真值框(即在该网格单元中具有最高的预测器IOU)时才会对边界框坐标误差进行化

为了避免过拟合,我们使用dropout和广泛的数据增强

Inference

就像在训练中一样,预测测试图像的检测只需要一次网络评估。在PASCAL VOC上,网络预测每张图像的98个边界框和每个框的类概率。YOLO在测试时非常快,因为它只需要一个网络评估,不像基于分类器的方法

网格设计加强了绑定框预测的空间多样性。通常情况下,一个对象落在哪个网格单元是很清楚的,网络只预测每个对象的一个框。然而,一些较大的物体或靠近多个单元边界的物体可以被多个单元很好地定位。非最大抑制可以用来固定这些多重检测。虽然不像R-CNN或DPM那样对性能至关重要,但非最大抑制在mAP中增加了2- 3%

Comparison to Other Detection Systems

目标检测是计算机视觉中的一个核心问题。检测管道通常首先从输入图像中提取一组鲁棒特征(Haar [25], SIFT [23], HOG[4],卷积特征[6])。然后,使用分类器[36,21,13,10]或定位器[1,32]来识别特征空间中的对象。这些分类器或定位器要么在整个图像上以滑动窗口的方式运行,要么在图像中的某些区域子集上运行[35,15,39]。我们将YOLO检测系统与几个顶级检测框架进行了比较,突出了关键的相似点和不同点

Deformable parts models

可变形部件模型(DPM)使用滑动窗口方法进行对象检测[10]。DPM使用一个不相交的管道来提取静态特征,对区域进行分类,预测高分区域的边界框等

我们的系统用一个卷积神经网络取代了所有这些不同的部分。该网络可以同时进行特征提取、边界框预测、非最大值抑制和上下文推理。与静态特征不同,该网络在线训练特征,并针对检测任务对其进行优化。我们的统一架构带来了更快、更准确的模型

R-CNN

R-CNN及其变体使用区域候选框而不是滑动窗口来查找图像中的对象。选择性搜索[35]生成潜在的边界框卷积网络提取特征支持向量机对边界框进行评分线性模型调整边界框非最大压缩消除重复检测。这个复杂管道的每个阶段都必须精确地独立调整,结果系统非常慢,在测试时每个图像需要40多秒

YOLO与R-CNN有一些相似之处。每个网格单元提出潜在的边界框,并使用卷积特征对这些框进行评分。然而,我们的系统对网格单元候选框施加了空间约束,这有助于减少对同一目标的多次检测。我们的系统提出的边界框也少得多,每张图像只有98个,而选择性搜索大约有2000个。最后,我们的系统将这些单独的组件组合成一个单一的、共同优化的模型

Other Fast Detectors

Fast 和 Faster R-CNN专注于通过共享计算使用神经网络提出区域而不是选择性搜索[14]b[28]来加速R-CNN框架。虽然它们在速度和准确性上都比R-CNN有所提高,但两者的实时性仍然不足

Deep MultiBox

与R-CNN不同,Szegedy等人训练卷积神经网络来预测感兴趣的区域[8],而不是使用选择性搜索。MultiBox还可以通过用单个类预测代替置信度预测来执行单个对象检测。然而,Multi- Box不能执行通用的目标检测,仍然只是在一个更大的检测管道中,需要进一步的图像补丁分类
YOLO和MultiBox都使用卷积网络来预测图像中的边界框,但YOLO是一个完整的检测系统

OverFeat

OverFeat可以有效地进行滑动窗口检测,但它仍然是一个不相交的系统。Over- Feat优化了定位,而不是检测性能。与DPM一样,本地化器在进行预测时只看到本地信息。OverFeat不能对全局上下文进行推理,因此需要大量的后处理来产生连贯的检测

MultiGrasp

我们的工作在设计上与Redmon等人的抓取检测工作相似。我们对边界框预测的网格方法是基于MultiGrasp系统对抓点的回归。然而,抓握检测是一个比物体检测简单得多的任务。MultiGrasp只需要为包含一个对象的图像预测单个可抓取区域,它不需要估计物体的大小、位置或边界,也不需要预测物体的类别,只需要找到一个适合抓取的区域。YOLO预测图像中多个类别的多个对象的边界框和类别概率

Experiments

首先,我们将YOLO与其他基于PASCAL VOC 2007的实时检测系统进行了比较。为了理解YOLO和R-CNN变体之间的差异,我们探讨了YOLO和Fast R-CNN (R-CNN b[14]的最高表现版本之一)在VOC 2007上的错误。基于不同的误差分布,我们表明YOLO可以用于快速R-CNN检测的重分,并减少背景假阳性的误差,从而显着提高性能。我们还介绍了VOC 2012的结果,并将mAP与当前最先进的方法进行了比较。最后,我们在两个艺术品数据集上证明了YOLO比其他检测器更好地泛化到新的领域





Conclusion

我们的模型构造简单,可以直接在完整的图像上进行训练。与基于分类器的方法不同,YOLO是在直接对应于检测性能的损失函数上进行训练的,整个模型是联合训练的。Fast YOLO是最快的通用对象检测器,YOLO推动了最先进的实时对象检测YOLO还可以很好地推广到新的领域,使其成为依赖于快速、健壮的对象检测的应用程序的理想选择


http://www.niftyadmin.cn/n/5132840.html

相关文章

动态规划20(Leetcode646最长数对链)

代码&#xff1a; class Solution {public int findLongestChain(int[][] pairs) {Arrays.sort(pairs,new Comparator<int[]>(){Overridepublic int compare(int[] arr1,int[]arr2){return arr1[1]-arr2[1];}});int n pairs.length;int[] dp new int[n];for(int i0;i&…

AI:40-基于深度学习的森林火灾识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

计算机视觉注意力机制小盘一波 (学习笔记)

将注意力的阶段大改分成了4个阶段 1.将深度神经网络与注意力机制相结合&#xff0c;代表性方法为RAM ⒉.明确预测判别性输入特征&#xff0c;代表性方法为STN 3.隐性且自适应地预测潜在的关键特征&#xff0c;代表方法为SENet 4.自注意力机制 通道注意力 在深度神经网络中…

力扣labuladong——一刷day12

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣198. 打家劫舍二、力扣213. 打家劫舍 II三、力扣337. 打家劫舍 III 前言 一、力扣198. 打家劫舍 class Solution {public int rob(int[] nums) {int[]…

LNK1168 无法打开 D:\xxx.exe 进行写入

LNK1168错误通常表示无法将新生成的可执行文件写入到磁盘&#xff0c;因为该文件已被另一个进程锁定。这可能是由于前一个运行的实例仍在内存中运行&#xff0c;导致该文件无法覆盖。 为解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 1. 结束正在运行的进程&…

双目视觉计算三维坐标

一、原理 双目视觉的基本原理&#xff0c;以及公式推导&#xff0c;我参考的b站上的视频&#xff0c;链接如下&#xff1a; 2-线性相机模型-Linear Camera Model-Camera Calibration_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Q34y1n7ot/?p2&spm_id_from333.…

Linux UWB Stack实现——FiRa会话状态机

在FiRa标准中&#xff0c;很重要的一个概念就是FiRa会话以及会话的管理&#xff0c;本文主要介绍了在Linux UWB Stack实现中&#xff0c;FiRa会话状态机管理的实现。 在FiRa中&#xff0c;会话分为INIT、DEINIT、ACTIVE、IDLE四种状态&#xff0c;其定义如下。 enum fira_sess…

python随手小练11(南农作业题)

题目1&#xff1a; 计算阶乘的和 可以看出如下形式&#xff1a;12!3!...15! 12(13(14...(15(1)))) 具体操作&#xff1a; x int(input("输入数字&#xff1a;")) res 1 for i in range(x, 1 , -1):res (1 (i * res)) print("阶乘的和为&#xff1a;"…