【YOLO学习】YOLOv3详解

news2024/11/25 2:24:35

文章目录

  • 1. 网络结构
    • 1.1 结构介绍
    • 1.2 改进
  • 2. 训练与测试过程
  • 3. 总结


1. 网络结构

1.1 结构介绍

 1. 与 YOLOv2 不同的是,YOLOv3 在 Darknet-19 里加入了 ResNet 残差连接,改进之后的模型叫 Darknet-53。在 ImageNet上 实验发现 Darknet-53 相对于 ResNet-152 和 ResNet101,不仅在分类精度上差不多,计算速度还比 ResNet-152 和 ResNet-101 快多了,网络层数也比它们少。

在这里插入图片描述

在这里插入图片描述

 2. YOLOv3 在三个不同的尺度上对框进行预测。使用类似于特征金字塔网络的概念从这些尺度上提取特征。

  • (1)YOLOv3 采用了 3 个不同尺度的特征图(三个不同卷积层提取的特征)。YOLOv3 通过下采样 32 倍、16 倍和 8 倍得到 3 个不同尺度的特征图。例如输入 416×416 的图像,则会得到 13×13 (416/32),26×26 (416/16) 以及 52×52 (416/8) 这 3 个尺度的特征图。

在这里插入图片描述

  • (2)YOLOv3 每个尺度的特征图上使用 3 个 anchor box。使用 dimension clusters 得到 9 个聚类中心(anchor boxes),并将这些 anchor boxes 划分到 3 个尺度特征图上,尺度更大的特征图使用更小的先验框。

在这里插入图片描述

  • (3)YOLOv3 对每个尺度下的特征图都进行边界框的预测。每种尺度的特征图上可以得到 N × N × [3 × (4 + 1 + 80)] 的结果(分别是 N x N 个 gird cell ,3 种尺度的 anchor boxes,4 个边界框偏移值、1 个目标预测置信度以及 80 种类别的预测概率)

1.2 改进

 1. (1) 没有采用最大池化层,转而采用步长为 2 的卷积层进行下采样。 (2) 为了防止过拟合,在每个卷积层之后加入了一个 BN 层和一个 Leaky ReLU。 (3) 引入了残差网络的思想,目的是为了让网络可以提取到更深层的特征,同时避免出现梯度消失或爆炸。 (4) 将网络的中间层和后面某一层的上采样进行张量拼接,达到多尺度特征融合的目的。

 2. (1) YOLOv3 使用的是 logistic 分类器,而不是之前使用的 softmax。 (2) 在 YOLOv3 的训练中,使用了 Binary Cross Entropy ( BCE, 二元交叉熵) 来进行类别预测。

 3. 在 YOLOv3 中,利用逻辑回归来预测每个边界框的客观性分数( object score ),也就是 YOLOv1 论文中说的 confidence :

  • 正样本: 如果当前预测的包围框比之前其他的任何包围框更好的与 ground truth 对象重合,那它的置信度就是 1。
  • 忽略样本: 如果当前预测的包围框不是最好的,但它和 ground truth对象重合了一定的阈值(这里是0.5)以上,神经网络会忽略这个预测。
  • 负样本: 若 bounding box 没有与任一 ground truth 对象对应,那它的置信度就是 0。

Q1:为什么 YOLOv3 要将正样本 confidence score 设置为 1?
置信度意味着该预测框是或者不是一个真实物体,是一个二分类,所以标签是 1、0 更加合理。并且在学习小物体时,有很大程度会影响 IOU。如果像 YOLOv1 使用 bounding box 与 ground truth 对象的IOU 作为 confidence,那么 confidence score 始终很小,无法有效学习,导致检测的 Recall 不高。

Q2:为什么存在忽略样本?
由于 YOLOv3 采用了多尺度的特征图进行检测,而不同尺度的特征图之间会有重合检测的部分。例如检测一个物体时,在训练时它被分配到的检测框是第一个特征图的第三个 bounding box,IOU 为 0.98,此时恰好第二个特征图的第一个 bounding box 与该 ground truth 对象的 IOU 为 0.95,也检测到了该 ground truth 对象,如果此时给其 confidence score 强行打 0,网络学习的效果会不理想。

2. 训练与测试过程

在这里插入图片描述

在这里插入图片描述

3. 总结

在这里插入图片描述

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

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

相关文章

VSCODE驯服日记(三):配置C++环境

1. 下载mingw64,解压后把bin并添加到环境变量 1>编译器介绍 mingw:专为windowsgcc:多平台msvc :windows,且配合vs使用更佳 注意与调试器gdb和lldb的区别 2. 安装vscode插件: 安装C/C插件 安装code ru…

力扣之1322.广告效果

题目: sql建表语句: Create table If Not Exists Ads (ad_id int,user_id int,action ENUM (Clicked, Viewed, Ignored) ); Truncate table Ads; insert into Ads (ad_id, user_id, action) values (1, 1, Clicked); insert into Ads (ad_id, use…

Sublime Text 下载地址分享

Sublime Text官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Sublime Text最新版正式版官方版绿色版下载,Sublime Text安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123684.com/s/kPxoTd-dCnxHSublime Text官方版下载丨最新版下…

双十一可以买什么物品?重磅推荐五款好用品牌!

距离今年的双十一盛典仅剩数十日,您是否已将心爱商品添加至购物车中了呢?还在犹豫未满载的朋友也无需焦虑,特意为您精选了五款好用的宝贝推荐,旨在为您的购物清单增添几分灵感与便捷,期待能为您的双十一购物之旅增添一…

GPU 是否有朝一日可以取代 CPU?

讨论 GPU 是否能够取代 CPU,需要从两者的基本架构、设计目的、性能表现、应用领域等多个方面进行分析。虽然你提到的4060显卡的核心频率接近服务器 CPU 的频率,这看起来似乎有一些相似性,但 GPU 和 CPU 的设计思路和适用场景差异显著&#xf…

18448 最小生成树

### 思路 使用Kruskal算法求解图的最小生成树。Kruskal算法通过对所有边按权值排序,然后逐步选择最小权值的边,确保不会形成环,直到构建出最小生成树。 ### 伪代码 1. 读取输入的结点数n和边数m。 2. 读取每条边的信息,存储在边列…

羊城杯2024WP

羊城杯-2024 web web2 进题信息搜集一下,dirsearch发现了login路由可访问,先随便点一下,发现了一个文件读取: http://139.155.126.78:30148/lyrics?lyricsRain.txt 我尝试了一下: http://139.155.126.78:30148/lyrics…

【教学类-77-02】20241007青花瓷纹理纸(手工)

背景需求: 大班《我是中国人》主题下,有一个“青花瓷”的主题,各种平面绘画 这些青花瓷花瓶、盘子都是平面的,我想能不能做个立体的,所以前期设计了“青花瓷立体卡”【教学类-77-01】20241005青花瓷立体书-CSDN博客文…

构建 10 万卡 GPU 集群的技术挑战

构建 10 万卡 GPU 集群的技术挑战 摘要 揭示AI训练集群关键基础设施挑战,探讨突破现有AI瓶颈的必要性与10万GPU集群(如OpenAI、Meta)建设所面临挑战与需求。 构建网络拓扑,需权衡多层交换机成本、带宽与维护。本文对比Ethernet与…

JDBC 快速入门

JDBC 快速入门 搭建步骤代码实现数据库java 代码 搭建步骤 准备数据库官网下载数据库连接驱动jar 包。https://downloads.mysql.com/archives/c-j/创建 java 项目,在项目下创建 lib 文件夹,将下载的驱动 jar 包复制到文件夹里选中 lib 文件夹右键 ->…

通信工程学习:什么是ICP网络内容服务商

ICP:网络内容服务商 ICP,全称Internet Content Provider,即网络内容服务商,是指那些通过互联网向用户提供各种类型内容服务的组织或个人。ICP在数字化时代扮演着至关重要的角色,它们不仅是信息的传播者,更是…

微服务获取用户信息和OpenFeign传递用户

问题一: 网关已经完成登录校验并获取登录用户身份信息。但是当网关将请求转发到微服务时,微服务又该如何获取用户身份呢? 由于网关发送请求到微服务依然采用的是Http请求,因此我们可以将用户信息以请求头的方式传递到下游微服务…

机器人技术基础(1-3章坐标变换)

位置矢量的意思是B坐标系的原点O相对于A坐标系的平移变换后的矩阵: 齐次坐标最后一个数表示缩放倍数: 左边的是T形变换矩阵,右边的是需要被变换的矩阵:T形变换矩阵的左上角表示旋转,右上角表示平移,左下角最…

使用 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力

通过 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力 文章目录 前言一、机密计算二、使用 NVIDIA H100 Tensor Core GPU 的 Azure 机密计算1. 安全功能2. 可扩展性和可编程性三、场景1. 模型机密性2. 推理/提示机密性3. 使用私有数据进行微调4. 多方培训结论前言 这是…

71.【C语言】动态内存管理(重点)(4)

本文为数据结构打下基础 备注:数据结构需要掌握指针,结构体和动态内存管理 目录 6.常见的动态内存的错误 1.对空指针解引用 2.对动态空间的越界访问 3.对非动态内存空间进行free释放 4.使用free只释放开辟的内存空间的一部分 5.对同一块动态内存多次释放 6.动态开辟的…

多线程编程-定时器

定时器相当于一个“闹钟”,在日常生活中,我们需要闹钟的辅佐,在代码中,也经常需要“闹钟”机制(网络通信中经常需设定一个超时时间)。 一.定时器的使用 在Java标准库中,也停供了定时器的实现。…

华为OD机试 - 约瑟夫问题(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

日语发音

这里写目录标题 一个视频教你搞懂日语音调!【日语入门课】小白入门轻松学!最全的日语零基础教程合集!唱儿歌学日语~(已完结) 一个视频教你搞懂日语音调! 中文 阴平(第一声&#xff…

【d61】【Java】【力扣】【递归】3304. 找出第 K 个字符 I

思路 递归考虑:就像正常一样想出来思路,然后递归调用的地方,当作一个已经确定的量(可直接说一个值,这样就不会一直向下层想) 注意绝对不要在递归调用的地方一直往下层想,绝对不要,…

C++面试速通宝典——7

150. 数据库连接池的作用 数据库连接池的作用包括以下几个方面: 资源重用:连接池允许多个客户端共享有限的数据库连接,减少频繁创建和销毁连接的开销,从而提高资源的利用率。 统一的连接管理:连接池集中管理数据库连…