目标检测:YOLO V2思路解读

news2024/12/30 3:50:49

目标检测:YOLO V2思路解读

  • YOLO V1存在的问题
  • 主要改进
    • Batch Normalization
    • High Resolution Classifier
    • Convolutional With Anchor Boxes
    • Dimension Cluster
    • Direct location Prediction
    • Fine-Grained Features
    • Multi-Scale Training
    • Loss Function

在这里插入图片描述

YOLO V1存在的问题

  1. 对于小或者多的目标识别效果不好(由于grid cell 少且每个grid cell预测两个框)
  2. 与同时期的检测网络相比recall 比较低
  3. 速度与精度都不如ssd

主要改进

Batch Normalization

如果还不了解BN层:Batch Normliaztion 详细指南
BN层起初作者认为可以缓解 内部斜变量便宜,后来通过实验说其实是通过对每个batch的每个神经元➕噪声来缓解过拟合,增加泛化性能,这也是它不与DropOut在一起用的原因。作者在每一个卷基层后都加上了BN层,与原始的YOLO相比,加入BN层为模型精度贡献了2%左右的mAP。

High Resolution Classifier

作者原始在YOLOV1中使用了在ImageNet数据上Pre-Train的模型BackBone,由于检测任务对feature map的 细粒度要求苛刻,作者把224 * 224 的input size 换成了 448 * 448,但是ImageNet数据集的图片的尺寸是224 * 224 ,这意味着模型需要去适应新的尺寸,所以我们把把imagenet448尺寸的图像在backbone中训练了10个epoch以达到fine-tune的效果,这个操作为我模型精度贡献了4%左右的mAP。

切换尺寸不需要改变模型结构的原因是结尾的全连接层用全局平均池化层代替。

Convolutional With Anchor Boxes

RCNN系列论文解读
在YOLO V1中,每个grid cell 采取直接预测bounding box坐标的方式,而Faster RCNN是采取Anchor的机制来预测(手动采取先验框),为了简化学习目标,作者在YOLO中也加入了Anchor的机制,预测的是偏移量,具体细节下方详细介绍。

其次作者把input size 从448改为416,当出现特别的大目标的时候,通常占据了正常图像的很大一部分,作者希望负责预测的这个大目标的grid cell的位置在图像正中央,而416刚好可以划分出grid cell长宽个数为基数,也就是正中央存在唯一的 grid cell。

最后 image通过卷积网络后得到 13 * 13 * 125 (25 * 5 5个anchor ,每个anchor有 4个坐标+ confidence + 20class)的feature map。
通过上述操作,为模型反而减少了0.2的map,但是recall从 81%增加到了 88%,但是这意味着模型有更大的提升空间。

Dimension Cluster

在这里插入图片描述

在采取anchor机制的时候遇到了两个问题,第一个问题是在anchor的大小需要手动选择,网络不能根据数据去调整来得到更好的priors,为了让模型更好与容易的学习检测任务,作者通过k-means方法聚类数据集中真实框,收敛后,每个聚类中心就是我们anchor的尺寸,我们划分多少个聚类中心,每个gird cell就有多少个anchor,最后作者选择5来达到一个速度与精度的权衡。
对于特定问题,作者也采取特定的distance metric:
在这里插入图片描述
最后作者通过实验对比发现:在这里插入图片描述
通过聚类只要生成5个 anchor就能达到Faster RCNN9个anchor的作用。

Direct location Prediction

作者在引入anchor机制后遇到的第二个问题就是在模型训练的初期,预测框的坐标以前的计算公式参考了Faster RCNN的方法,公式如下:
在这里插入图片描述
其中x y 为预测框的中心点,tx ty为模型预测的偏移量, wh为anchor的宽高,xa ya为anchor的中心点,但是这个方法tx ty是不受限制的,在训练初期数值不稳定,于是作者对其做了归一化处理,具体处理方法如下:
在这里插入图片描述
对tx ty做了sigmid归一化,其中b 为预测框的坐标,tx为模型输出的偏移量,而这个偏移量与rcnn的方式不同,这个偏移量不是相对于anchor,而是相对于grid cell左上角坐标的偏移量,也 cx cy 就是grid cell左上角的坐标。
上述操作会让学习变得更稳定,问模型的mAP贡献了1%的精度。

Fine-Grained Features

这种方法主要是把浅层特征与深层特征融合在一起,可以更好的适应大小目标,方法省略。

Multi-Scale Training

多尺度的训练原始的YOLO使用448×448的输入分辨率。通过添加锚框,我们将分辨率改为416×416。然而,由于我们的模型只使用卷积层和池化层,因此可以实时调整大小。我们希望YOLOv2能够鲁棒地运行在不同尺寸的图像上,所以我们将多尺度训练应用到模型中。
我们不需要修改输入图像的大小,而是每隔几个迭代就改变网络。每10个批次,我们的网络就会随机选择一个新的图像尺寸。由于我们的模型缩减了32倍,我们从以下32的倍数中抽取:{320, 352, …, 608}。因此,最小的选项是320 × 320,最大的是608 × 608。我们将调整网络的尺寸,然后继续训练。

Loss Function

在这里插入图片描述

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

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

相关文章

使用Redis代替Session实现短信登陆

1.集群的Session共享问题 多台Tomcat并不共享Session存储空间,当请求切换到不同tomcat服务器时会导致数据丢失: 当用户量增多,我们需要进行负载均衡、对tomcat做水平扩展,可是存储在Tomcat里的Session不是共享的,这…

从C和C++内存管理来谈谈JVM的垃圾回收算法设计-上

从C和C内存管理来谈谈JVM的垃圾回收算法设计-上引言C内存模型malloc堆内存分配过程malloc为什么结合使用brk和mmapmalloc如何通过内存池管理Heap区域垃圾收集器引言 本文想和大家来探讨一下JVM是如何对堆内存进行管理和垃圾回收,相关书籍如深入理解JVM第三版中已经介绍过了相关…

OSCP-Vulnhub靶机记录-digitalworldlocal-fall

Vulnhub靶机记录-digitalworldlocal-fall靶机描述安装扫描枚举使用kali自带的FUZZ权限提升靶机描述 靶机地址:https://www.vulnhub.com/entry/digitalworldlocal-fall,726/ Description To celebrate the fifth year that the author has survived his infosec ca…

也来聊聊滑块验证码的那些事

单位做攻防演习,我扮演攻击方尝试破解。发现滑块验证码做了升级,比之前复杂了很多。好在仍然是一维验证,不用太麻烦。https接口里读出的是json对象,先从对象里取出图片转的base64编码,然后把字符串转回成numpy.ndarray…

Verilog HDL 基础语法

一、逻辑值 0: 逻辑低电平,条件为假 1: 逻辑高电平,条件为真 z: 高阻态,无驱动 x: 未知逻辑电平二、实际例子 1. 模块名一般与文件名相同 线网型变量会被映射成一条真实存在的物理连线。 寄存器型变量会被映射成一个寄存器。 2. 参数 para…

2、JavaScript快速入门

2.1 引入JavaScript 内部标签 <!-- 在script标签内写JavaScript(简称js)代码&#xff0c;代码块可以放在head中&#xff0c;也可以放在body中--> <script>// alert:弹窗alert(Hello,world!); //注意以分号结尾 </script>外部引入 hello.js alert(Hello,worl…

分享120个ASP源码,总有一款适合您

ASP源码 分享120个ASP源码&#xff0c;总有一款适合您 链接&#xff1a;https://pan.baidu.com/s/1WwTsUTLS_qLvP-TC1w-1vQ?pwdvxpk 提取码&#xff1a;vxpk 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载…

OB0207 obsidian 自动获取url链接:auto-link-title插件使用

序号解读&#xff1a; 01——软件基础使用、基础语法 02——插件使用 03——综合实战 0 写在前面 Ob社区插件汇总&#xff1a;Airtable - OB社区插件汇总 - Johnny整理 - 每周更新 - B站 Johnny学Explore the "OB社区插件汇总 - Johnny整理 - 每周更新 - B站 Johnny学&qu…

过去一年渲染了3亿帧,助力了63.81亿票房、1150亿播放量丨瑞云渲染年度大事记

2022年&#xff0c;注定是充满未知和挑战的一年。抗疫三年&#xff0c;终于在2022年底迎来放开&#xff0c;我们怀着忐忑的心情告别了核酸、行程码和封控&#xff0c;成为了自己健康的第一负责人。这段时间大家应该都忙着和病毒做斗争吧&#xff0c;瑞云各个岗位的小伙伴们也都…

6.7、万维网(如HTTP超文本传输协议)

1、基本介绍 万维网 WWW (World Wide Web&#xff09;并非某种特殊的计算机网络\color{red}并非某种特殊的计算机网络并非某种特殊的计算机网络。 它是一个大规模的、联机式的信息储藏所&#xff0c;是运行在因特网上的一个分布式应用。 万维网利用网页之间的超链接\color{r…

Web进阶:Day5 移动适配、rem、less

Web进阶&#xff1a;Day5 Date: January 10, 2023 Summary: 移动适配、rem、less 移动适配 移动适配指网页元素的宽高都要随着设备宽度等比缩放 rem &#xff1a; 目前多数企业在用的解决方案 vw / vh&#xff1a;未来的解决方案 rem 目标&#xff1a;能够使用rem单位设置网…

2022年跨境物流指数研究报告

第一章 行业概况 指提供跨境物流服务的行业。跨境物流是指在电子商务环境下&#xff0c;依靠互联网、大数据、信息化与计算机等先进技术&#xff0c;物品从跨境电商企业流向跨境消费者的跨越不同国家或地区的物流活动。 图 物流运输行业产业链结构图 资料来源&#xff1a;资产…

Tapdata Cloud 场景通关系列:集成阿里云计算巢,实现一键云上部署真正开箱即用

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata Cloud 自去年发布云版公测以来&#xff0c;吸引了近万名用户的注册使用。应社区用户上生产系统的要求&#xff0c;Tapdata Cloud 3.0 将正式推出商业版服务&#xff0c;提供对生产系统的 SLA 支撑。Tapdata 目前专注在实时数…

VS2010 安装NuGet NPIO 基础连接已经关闭:发送时发生错误

1.下载Nuget并安装 NuGet Package Manager - Visual Studio Marketplace 工具->扩展管理器可看见 2.安装NPOI 3. 如果遇见基础连接已经关闭:发送时发生错误 要把https://packages.nuget.org/改为https://www.nuget.org/api/v2/ VS2019要使用https://www.nuget.org/api/v…

OAuth2.0 详解

OAuth2.0介绍 OAuth&#xff08;Open Authorization&#xff09;是一个关于授权&#xff08;authorization&#xff09;的开放网络标准&#xff0c;允许用户授权第三方 应用访问他们存储在另外的服务提供者上的信息&#xff0c;而不需要将用户名和密码提供给第三方移动应用或分…

【日常系列】LeetCode《26·动态规划1》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) lc 509【剑指 10-1】&#xff1a;斐波那契数列问题 - 动态规划入门 https://leetcode.cn/problems/fibonacci-number/ 提示&#xff1a; 0 < n < 30 #方案…

WebSocket概念及实现简易聊天室

WebSocket实现简易聊天室 1 WebSocket介绍 网络通信协议是HTML5开始提供的一个单个TCP连接上进行全双工通信协议 1.1 诞生原因&#xff08;http无状态、无连接&#xff09; ①HTTP协议&#xff1a; 由于HTTP协议是一种无状态、无连接、单向的应用层协议&#xff0c;通信请求只…

Java反射机制是什么?

Java 反射机制是 Java 语言的一个重要特性。在学习 Java 反射机制前&#xff0c;大家应该先了解两个概念&#xff0c;编译期和运行期。 编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些…

Qt Creator添加自定义向导

文章目录一、前言二、前置说明三、wizard.json解析3.1、宏观结构3.2、微观解释3.2.1、向导信息3.2.2、定义变量3.2.3、页面定义3.2.4、文件生成四、实战一、前言 在Qt Creator中&#xff0c;当我们选择新建时&#xff0c;Qt自带了很多选项&#xff1b; 如果我们在开发过程中&a…

软件测试——使用mujava测试过程中

文章目录下载对应安装包步骤二、修改代码第二部分&#xff0c;修改对应测试文件下载对应安装包 分别下载junit.jar、mujava.jar和openjava.jar三个包&#xff0c;并设定对应系统路径。三个安装包的下载路径以mujava.jar为例子 设置系统环境变量&#xff0c;计算机》属性》高级…