YOLOv3学习

YOLOv3仅使用卷积层,使其成为一个全卷积网络(FCN)。文章中,作者提出一个新的特征提取网络,Darknet-53。正如其名,它包含53个卷积层,每个后面跟随着batch normalization层和leaky ReLU层。没有池化层,使用步幅为2的卷积层替代池化层进行特征图的降采样过程,这样可以有效阻止由于池化层导致的低层级特征的损失。

在这里插入图片描述
在没有 padding 的前提下,stride = 2 会让输入的尺寸高度和宽度各自减小一般,在最左列经过 5 次CBL中 stride = 2 的卷积核之后,在第三,四,五 Block层 特征图的尺寸分别为 52,26,13。
C 3 , C 4 , C 5 C_3,C_4,C_5 C3,C4,C5 是对应层输出的特征图,第五个 Block 层输出的特征图经过上采样高度和宽度变为原先 2 倍之后和第四个 Block 层输出的特征图 在通道维度上进行 concatenation 拼接。类似地,第四个 Block 层输出的特征图经过上采样扩大后和第三个Block 层的输出进行拼接。

不论是YOLOv1,还是YOLOv2,都有一个共同的致命缺陷:只使用了最后一个经过32倍降采样的特征图(简称C5特征图)。尽管YOLOv2使用了passthrough技术将16倍降采样的特征图(即C4特征图)融合到了C5特征图中,但最终的检测仍是在C5尺度的特征图上进行的,最终结果便是导致了模型的小目标的检测性能较差。

为了解决这一问题,YOLO作者做了第三次改进,不仅仅是使用了更好的主干网络:DarkNet-53,更重要的是使用了FPN技术与多级检测方法,相较于YOLO的前两代,YOLOv3的小目标的检测能力提升显著。

在3个不同尺度的每个特征图上,YOLOv3在每个网格处放置3个先验框。由于YOLOv3一共使用3个尺度,因此,YOLOv3一共设定了9个先验框,这9个先验框仍旧是使用kmeans聚类的方法获得的。在COCO上,这9个先验框的宽高分别是(10, 13)、(16, 30)、(33, 23)、(30, 61)、(62, 45)、(59, 119)、(116, 90)、(156, 198)、(373, 326)。

Bounding Box Prediction

YOLOv3 predicts an objectness score for each bounding box using logistic regression. This should be 1 if the bounding box prior overlaps a ground truth object by more than any other bounding box prior. If the bounding box prior is not the best but does overlap a ground truth object by more than some threshold we ignore the prediction, following. We use the threshold of 0.5. Unlike [17] our system only assigns one bounding box prior for each ground truth object. If a bounding box prior is not assigned to a ground truth object it incurs no loss for coordinate or class predictions, only objectness.

这段话描述的是YOLOv3模型中对于边界框(bounding box)和对象置信度(objectness score)的处理方式。具体来说:

  1. 对象置信度预测 在YOLOv3中,对于每个ground truth对象,只有与之IoU最高的anchor box的对象置信度分数会被设置为1,表明这个anchor box负责预测该对象。其余的anchor boxes的对象置信度分数会被设置为0,表示它们不负责预测该对象。

  2. 忽略预测 如果一个边界框的先验不是最好的,但仍然与真实对象重叠超过某个阈值(在这里是0.5),那么这个预测将被忽略。这意味着在训练过程中,这种情况下的预测不会对损失函数产生影响。

  3. 单一 Anchor box分配 与其他一些系统不同,YOLOv3为每个真实对象只分配一个anchor box负责预测该目标。

  4. 损失函数 如果一个边界框先验没有被分配给任何真实对象,那么它在坐标或类别预测上不会产生损失,只会在对象置信度上产生损失。这是因为这个边界框没有被用来预测任何具体的对象,所以它的位置和类别是不重要的,只有它的对象置信度是有意义的(应该接近于0,因为它没有检测到任何对象)。

简而言之,这段话描述了YOLOv3中如何处理边界框和对象置信度的预测,以及如何在训练过程中计算损失。

Class Prediction

YOLOv3中的多标签类预测是指模型能够为每个检测到的对象预测多个类别标签,而不是只预测单一的类别。这对于处理那些可能属于多个类别的对象特别有用,例如在某些场景中,一个对象可能既被视为"人"也被视为"运动员"。

在YOLOv3中,这种多标签类预测是通过使用逻辑回归(而不是传统的softmax函数)来实现的。对于每个对象,模型会为每个类别输出一个独立的置信度分数,这个分数表示对象属于该类别的概率。这些置信度分数是独立的,因此一个对象可以同时具有多个高置信度的类别标签。

Predictions Across Scales

在YOLOv3中,多尺度预测指的是使用不同尺寸的特征图(feature maps)来进行目标检测。这些特征图分别对应于网络中不同深度的层,每个层捕获了图像的不同尺度的信息。通过这种方式,模型能够同时检测图像中不同尺寸的对象,从而提高了检测的准确性和鲁棒性。

YOLO的多尺度训练是一种技术,用于提高模型在不同大小的对象上的性能。在训练过程中,输入图像的尺寸会在一定范围内随机变化,这样模型就能够学习在不同尺度上识别对象。

YOLOv3在 3 个不同的尺度上预测边界框。使用与特征金字塔网络相似的概念从这些尺度中提取特征[8]。在基本特征提取器中,作者添加了几个卷积层。最后一层预测了一个3维张量编码边界框、对象和类预测。在使用COCO[10]的实验中,作者在每个尺度上预测3个边界框,因此对于4个边界框偏移量,1个物体预测和80个类别预测,张量是 N × N × [ 3 ∗ ( 4 + 1 + 80 ) ] N × N ×[3∗(4 + 1 + 80)] N×N×[3(4+1+80)]

这段话描述了YOLOv3在三个不同尺度上预测边界框的方法,以及它是如何利用特征金字塔网络(Feature Pyramid Networks,FPN)的概念来提取特征的。具体来说:

  1. 多尺度预测 YOLOv3在三个不同的尺度上预测边界框。这意味着模型能够检测不同大小的对象。

  2. 特征提取 模型从基础特征提取器中添加了几个卷积层,最后一个卷积层预测一个三维张量,该张量编码了边界框、对象置信度和类别预测。在COCO数据集上的实验中,每个尺度预测3个边界框,因此张量的维度是 N × N × [ 3 × ( 4 + 1 + 80 ) ] N × N × [3 × (4 + 1 + 80)] N×N×[3×(4+1+80)],其中4代表边界框的偏移量1代表对象置信度预测80代表类别预测

  3. 特征融合 接着,模型将前两层的特征图上采样2倍,并将其与网络更早层的特征图通过连接(concatenation)合并。这样做可以从上采样的特征中获取更有意义的语义信息,同时从早期的特征图中获取更细粒度的信息。然后,模型添加了一些卷积层来处理这个合并的特征图,并最终预测一个类似的张量

  4. 重复操作 模型再次重复这个设计,以预测最后一个尺度的边界框。因此,第三个尺度的预测受益于之前的所有计算以及网络早期的细粒度特征。

  5. 边界框先验 模型仍然使用 k-means 聚类来确定边界框先验。模型选择了9个聚类和3个尺度,然后在尺度之间均匀地划分聚类。在COCO数据集上,9个聚类的尺寸分别是: ( 10 × 13 ) , ( 16 × 30 ) , ( 33 × 23 ) , ( 30 × 61 ) , ( 62 × 45 ) , ( 59 × 119 ) , ( 116 × 90 ) , ( 156 × 198 ) , ( 373 × 326 ) (10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326) (10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)

总的来说,这段话描述了YOLOv3是如何在不同的尺度上预测边界框,并利用特征融合来提高模型对不同大小对象的检测能力的。

Feature Extractor

使用一种新的网络提取特征 Darknet 53

在这里插入图片描述
过去,YOLO在处理小物体时遇到了困难。然而,现在作者看到了这一趋势的逆转。通过新的多尺度预测,作者看到YOLOv3具有相对较高的APS性能。但是,它在中型和大型对象上的性能相对较差。要弄清这件事的真相,还需要更多的调查。

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

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

相关文章

【网络原理】HTTP 请求 (Request)详解

文章目录 🎍请求格式🎄认识URL🌸query string🌸关于 URL encode 🍀认识 “方法” (method)🌸GET方法🌸POST 方法🌸GET 和 POST 的区别 🌲认识请求 “报头” (header)&…

权限管理系统-0.5.0

六、审批管理模块 审批管理模块包括审批类型和审批模板&#xff0c;审批类型如&#xff1a;出勤、人事、财务等&#xff0c;审批模板如&#xff1a;加班、请假等具体业务。 6.1 引入依赖 在项目中引入activiti7的相关依赖&#xff1a; <!--引入activiti的springboot启动器…

Git进阶命令-reset

一、reset命令使用场景 有时候我们提交了一些错误的或者不完善的代码&#xff0c;需要回退到之前的某个稳定的版本,面对这种情况有两种解决方法: 解决方法1&#xff1a;修改错误内容&#xff0c;再次commit一次 解决方法2&#xff1a;使用git reset 命令撤销这一次错误的com…

汽车KL15、KL30、ACC的区别

文章目录 前言一、KL30是什么&#xff1f;二、KL15是什么&#xff1f;KL15信号的演变 三、为啥用KL15、KL30呢&#xff1f; 前言 相信刚接触汽车电子的伙伴都会有一个疑惑&#xff0c;什么是KL15?什么是KL30? 内心一脸懵逼…… KL是德语Klemme的缩写&#xff0c;指的是ECU的…

RCE漏洞

RCE漏洞概述 远程命令执行/代码注入漏洞&#xff0c;英文全称为Reote Code/CommandExecute&#xff0c;简称RCE漏洞。PHPJava等Web开发语言包含命令执行和代码执行函数,攻击者可以直接向后台服务器远程执行操作系统命今或者运行注入代码&#xff0c;进而获取系统信息、控制后台…

2023年五级区划省市县乡镇行政村社区边界数据

行政区划数据是重要的基础地理信息数据&#xff0c;根据国家统计局公布的数据&#xff0c;行政区划共分为五级&#xff0c;分别为省级、地级、县级、乡镇/街道级、村/社区级。 该套数据以2020-2023年国家基础地理信息数据中的县区划数据作为矢量基础&#xff0c;辅以高德行政区…

Spring Security源码

WebSecurityConfigurerAdapter已废弃&#xff0c;官方推荐使用HttpSecurity 或WebSecurity。 都继承了SecurityBuilder public interface SecurityBuilder<O> {O build() throws Exception;}亮点&#xff1a;通过这种方式很容易知道知道自己构建的Object HttpSecurit…

Shell脚本学习-if循环

最小化的if语句 无实际用途 if [ ] ;then echo fi 脚本解释 if 判断 [ ] 里面的条件是否成立 后面跟then&#xff0c;代表条件成立 如果在一行则使用分号隔离&#xff08;;&#xff09; 如果不在一行使用则直接在下一行驶入then即可。 如果条件成立则输出echo 后面…

IT管理备考TOGAF10证书有哪些好处?

现今&#xff0c;随着信息技术的快速发展&#xff0c;企业对于高效的IT管理需求日益增长。而TOGAF10证书作为全球公认的企业架构管理标准&#xff0c;成为了IT管理者的必备工具。本文将为您详细介绍TOGAF10证书的好处&#xff0c;以助您更好地了解和利用这一强大的工具。 首先&…

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 并训练自己的数据集

大模型主流微调训练方法总结 LoRA、Adapter、Prefix-tuning、P-tuning、Prompt-tuning 概述 大模型微调(finetuning)以适应特定任务是一个复杂且计算密集型的过程。本文训练测试主要是基于主流的的微调方法:LoRA、Adapter、Prefix-tuning、P-tuning和Prompt-tuning,并对…

金蝶云星空——单据附件上传

文章目录 概要技术要点代码实现小结 概要 单据附件上传 技术要点 单据附件上传金蝶是有提供标准的上传接口&#xff1a; http://[IP]/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.AttachmentUpLoad.common.kdsvc 参数说明 参数类型必填说明FileName字符是…

Vue3+JS:实现进度条拖拽

一、效果 二、代码实现 <template><div class"bar" ref"bar"><div class"slider" :style"Pos" mousedown"mousedown"></div></div> </template> <script setup lang"ts"…

8.2K star!史上最强Web应用防火墙

&#x1f6a9; 0x01 介绍 长亭雷池SafeLine是长亭科技耗时近 10 年倾情打造的WAF(Web Application Firewall)&#xff0c;一款敢打出口号 “不让黑客越雷池一步” 的 WAF&#xff0c;我愿称之为史上最强的一款Web应用防火墙&#xff0c;足够简单、足够好用、足够强的免费且开源…

60 个深度学习教程:包含论文、实现和注释 | 开源日报 No.202

labmlai/annotated_deep_learning_paper_implementations Stars: 44.0k License: MIT annotated_deep_learning_paper_implementations 是一个包含深度学习论文的 60 个实现/教程&#xff0c;附带并排注释&#xff1b;包括 transformers&#xff08;原始、xl、switch、feedbac…

Spring MVC(二)-过滤器与拦截器

过滤器和拦截器在职责和使用场景上存在一些差异。 过滤器 拦截器 作用 对请求进行预处理和后处理。例如过滤请求参数、设置字符编码。 拦截用户请求并进行相应处理。例如权限验证、用户登陆检查等。 工作级别 Servlet容器级别&#xff0c;是Tomcat服务器创建的对象。可以…

2024-3-21 市场情绪,嘿嘿嘿

市场的预期终于来到了今天&#xff0c;艾艾精工 13追平了 克来机电 13 &#xff0c;永悦科技8 追平了 睿能科技 8&#xff0c;那么早盘kimi概念卡了1个钟的流动性感觉强度一般般&#xff0c;唯一亮点就是 中广天泽 竞价抢筹&#xff1b;kimi概念本身没有什么大的预期&#xf…

2024 Java开发跳槽、面试心得体会

前言 由于个人发展的原因和工作上的变动&#xff0c;产生了想出来看看机会的想法&#xff0c;在决定要换工作后就开始复习准备。从年前就开始看面经&#xff0c;系统复习自己使用的技术栈&#xff0c;把自己项目中的技术梳理清楚。3月初开始在招聘网站上投简历&#xff0c;到三…

Java小项目--满汉楼

Java小项目–满汉楼 项目需求 项目实现 1.实现对工具包的编写 先创建libs包完成对jar包的拷贝和添加入库 德鲁伊工具包 package com.wantian.mhl.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.FileInputStream…

NC249989 猫猫与主人 (双指针,排序)

本题限制时间1s&#xff0c;而数据范围2e5&#xff0c;也就是说时间复杂度顶多 O ( n l o g n ) O(nlogn) O(nlogn)了&#xff0c;那就不能直接暴力枚举&#xff0c;可以使用双指针。 在使用双指针时要思考主要指针指向什么&#xff0c;在什么条件下能够更新另一个指针。 在本…

【Linux】进程控制 -- 详解

一、进程创建 目前学习到的进程创建的两种方式&#xff1a; 命令行启动命令&#xff08;程序、指令等&#xff09; 。通过程序自身&#xff0c;调用 fork 函数创建出子进程。 1、fork 函数初识 在 Linux 中的系统接口 fork 函数是非常重要的函数&#xff0c;它从已存在进程中…