news 2026/7/19 4:44:36

YOLO V3 学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO V3 学习笔记

目录

1. YOLO V3简介

2. YOLO V3网络结构

3. 边界框预测

4. 正负样本的分配

5. YOLO V3损失函数

5.1 置信度损失

5.2 分类损失

5.3 定位损失

6. YOLO V3总结


1. YOLO V3简介

YOLO(You Only Look Once)系列算法是目标检测领域经典的 one‑stage 方法。YOLO V3 在 YOLO V2 基础上做了多项改进,在维持高速推理的同时显著提升检测精度,小目标检测效果提升尤为明显。

2. YOLO V3网络结构

YOLO V3 的骨干网络名为 Darknet‑53(53个卷积层),它由连续的1x1和3x3的卷积层构成,并使用了 ResNet 的残差结构。与 Darknet‑19 相比,Darknet‑53 层数更深,且没有使用池化层,而是通过步长为 2 的卷积来实现特征图尺寸的缩减。Darknet‑53 在 ImageNet 上的分类精度与 ResNet‑152 相当,但计算速度更快。

YOLO V3 使用了类似 FPN(Feature Pyramid Network)的思想进行多尺度预测。它从骨干网络的不同阶段提取三个尺度的特征图(13 × 13、26 × 26、52 × 52),分别负责检测大、中、小物体。较小特征图感受野大,适合检测大物体;较大特征图保留了更丰富的细节信息,有利于检测小物体。每层特征图的每个网格会预测 3 个边界框,因此最终输出的边界框数量大幅增加,提高了密集小物体的召回率。

3. 边界框预测

YOLO V3 继续沿用 YOLO V2 中引入的锚框(Anchor Boxes)机制,使用 9 个不同尺寸的锚框,通过 K‑means 聚类 COCO 数据集的真实目标框得到。9 个锚框分为三组,分配到三个多尺度检测分支,每个尺度分配 3 个锚框。边界框不直接预测图像绝对像素坐标,而是预测相对于网格和锚框的偏移量;其中中心点偏移tx、ty经过 Sigmoid 激活函数限制在 0~1 之间,约束目标中心落在当前网格内,稳定训练梯度,有助于模型更快收敛;宽高偏移tw、th则通过指数函数缩放锚框尺寸。

eg:cx、cy是当前网格左上角的坐标,pw、ph是当前网格分配的锚框宽高。

4. 正负样本的分配

YOLO V3 根据锚框与真实目标框(GT)的 IOU 来划分样本,默认阈值 = 0.5。

  • 正样本真实目标中心点落在某个网格内,与该真实框 IOU 最大的锚框为正样本,一个真实框仅匹配一个正样本锚框。
  • 忽略样本若锚框和任意真实框 IOU 超过阈值,但不是对应真实框重合程度最高的锚框,则丢弃。
  • 负样本锚框与所有真实目标框的 IOU 均小于阈值,判定为负样本。

5. YOLO V3损失函数

损失函数仍由置信度损失、分类损失和定位损失三部分加权组成,但定位部分仍使用均方误差损失,而置信度和分类部分使用交叉熵损失。

5.1 置信度损失

采用二元交叉熵 BCE 损失。正样本置信度标签为 1,负样本标签为 0;IOU≥0.5 的忽略样本不参与置信度损失计算。

5.2 分类损失

采用二元交叉熵BCE损失,仅正样本参与分类损失优化,负样本与忽略样本不计算分类损失。关于为什么采用二元交叉熵BCE损失,作者认为同一目标可属于多类,比如猫可归为猫类以及动物类,这样可以应对更加复杂的场景。

5.3 定位损失

采用均方误差 MSE 损失,仅正样本参与坐标回归计算,负样本、忽略样本不计入定位损失。

6. YOLO V3总结

YOLO V3 在速度和精度之间取得了良好的平衡,通过多尺度预测和更深骨干网络有效提升了小物体检测能力。尽管后续版本(YOLO V4、YOLO V5、YOLO V8 等)在结构和训练技巧上进一步优化,YOLO V3 仍然是一个研究目标检测入门的经典模型,理解它的设计思路对后续版本的学习非常有帮助。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 4:42:40

2025生成式AI引擎市场格局与技术趋势解析

1. 2025年生成式引擎服务市场格局解析2025年的生成式引擎服务市场已经形成了明显的分层格局。根据最新行业调研数据,全球范围内提供生成式AI引擎服务的厂商超过200家,但真正具备核心技术竞争力的不超过15家。这些服务商主要分为三大阵营:云计…

作者头像 李华
网站建设 2026/7/19 4:38:02

linux系统附加msqsql数据库后,显示只读解决记录

linux系统附加msqsql数据库后,显示只读解决记录 如果mssql数据库附加后,显示只读,多半是权限问题,只需要把权限改成777就行了,不过这存在安全隐患,如果是开发环境可以忽略;如果是生产环境就得注意了。 解决文件夹权限问题 方案A:将文件夹的拥有者改为 jjycheng(推荐)…

作者头像 李华
网站建设 2026/7/19 4:36:18

C++实现带TTL的LRU缓存:数据结构、并发与性能优化详解

1. 项目概述:为什么我们需要一个带TTL的LRU?在后台服务、缓存中间件或者网络代理的开发中,我们经常需要处理一种经典的数据结构:缓存。缓存的核心目标是在有限的空间内,尽可能高效地存储和访问那些“热点”数据。LRU&a…

作者头像 李华