热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【目标检测】YOLOv1onestage

YOLO由24层ConvNet和2层FCs组成。其核心思想是将图片均匀划分为多个gridcell,每个gridcell产生两个bbox和gridcell中如果存在对象,对象是各类的

YOLO由24层ConvNet和2层FCs组成。其核心思想是将图片均匀划分为多个grid cell,每个grid cell产生两个bbox和grid cell中如果存在对象,对象是各类的概率,每个bbox由5个参数组成,xywh和confidence,confidence是bbox中存在对象的概率,将两概率相乘即可表示grid cell存在某类对象的概率。

YOLO的损失函数是全文重点。通过损失函数,使得模型更关注包含对象的bbox。

但也因为网络本身的设置,使得YOLO无法对多个相邻小物体进行识别,并且对定位和大小物体偏差的错误也没能通过微调损失函数解决。

目录

Introduction

Unified Detection

Network Design

Limitations of YOLO


Introduction

目前大多数检测系统是将图像分类任务转换为图像检测任务。YOLO将目标检测问题转换为回归问题。使用一个网络从完整图片中预测bounding boxes和class probabilities。因为整个检测流程是一个单一网络,所以它能够被端到端的优化。相较于最有目标检测算法,yolo存在更多的定位错误

 

Unified Detection

将输入图片分割为S x S网格。如果一个目标的中心在某个网格中,这个网格就负责检测这个目标。每个网格预测B个bounding boxes和对应的confidence scores。Confidence scores反应了模型对box包含目标的confident以及预测目标的accurate。定义confidence:

【目标检测】YOLO v1 one-stage

       如果没有目标存在,则confidence scores应该为0。另外,我们希望confidence scores等于predicted box和ground truth的IoU。每一个bounding box包含5个值:x, y, w, h, confidence。(x, y)表示box中心相对于网格单元的坐标;w, h是相对于整个图片的宽高;因此x, y, w, h的值都在[0, 1]之间。confidence prediction代表predicted box和ground truth box间的IoU。

       每个网格也预测C个类条件概率:

【目标检测】YOLO v1 one-stage

       这个概率是网格包含目标情况下的。每个网格只预测一组类条件概率,与bbox数量B无关。测试时:

【目标检测】YOLO v1 one-stage

这样我们就获得了每个box的class-specific confidence score。

【目标检测】YOLO v1 one-stage

参数设置:对于VOC数据集,S = 7,B = 2,C = 20。

 

Network Design

【目标检测】YOLO v1 one-stage

24卷积层+2全连接层。卷积层从图片中提取特征,全连接层预测概率和坐标。Fast YOLO使用9个卷积层以及更少的卷积核。使用前20层卷积层在ImageNet上训练。之后增加了4层卷积层和2层全连接层,并加大了图片的分辨率,以满足检测对图片细纹理的要求。最后一层使用linear**函数,其余使用leaky rectified linear**函数:

【目标检测】YOLO v1 one-stage

损失函数原型是模型输出的sum-squared error,但存在两个问题:

  1. 它平均的考虑了定位error和分类error,这不太理想。
  2. 许多网格并不包含任何目标,这使得这些网格的confidence scores向着0,导致模型不稳定,出现偏差。

为解决这些问题,我们增加了bounding box坐标预测损失的影响,并且减少不包含目标box的confidence造成的损失。我们使用λcoord和λnobj来调解他们的影响,设置λcoord=5、λnobj = 0.5。

Sum-squared error同时也均衡了大小box的loss。相对于大box中的deviation,小box的deviation更应该被loss function注意。为解决这个,我们将对宽高的预测替换为宽高平方根。

YOLO在每个网格中预测多个bbox,训练时,对每个目标,我们只希望有一个去bbox负责。我们指定bbox的原则是,与ground truth有最高IOU的bbox。这使得每个predictor在对某个目标的size, aspect ratio, class有着更好的表现,改善整体的召回率。训练时,我们最优化一下loss function:

【目标检测】YOLO v1 one-stage

如果一个对象出现在那个网格中,损失函数只惩罚分类错误。如果网格有某个predictor具有最高的IOU,对那个ground-truth box负责,损失函数只惩罚bounding box坐标错误。

 

Limitations of YOLO

  1. 因为每个网格只有两个bbox,只对一个目标负责,YOLO这种对bbox预测的空间限制导致网络无法对过多相邻目标预测。尤其是对鸟群等小目标检测不强。
  2. 因为模型从数据中学习预测bbox,导致他很难拓展到有新的、不寻常aspect ratio和其他参数的目标上。
  3. 错误的主要原因在于错误的定位。Loss function同等对待小bbox和大bbox中的错误,但小bbox的错误会对IOU有更大的影响。

推荐阅读
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
author-avatar
Shaw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有