YOLOV3学习笔记(噼里啪啦up主)

本文详细介绍了YOLOV3中的IOU损失函数及其改进,从IOU Loss到GIOU Loss再到DIU Loss和CIU Loss,探讨了如何解决候选框选择问题,并涵盖了多GPU训练、样本平衡和不同阶段的权重调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YOLOV3学习笔记(噼里啪啦up主)

YOLOV3上面的IOU LOSS是错误的,因为在两个候选框和目标框围成的面积相同时,YOLOV3并没有告诉网络应该选哪个候选框。

在这里插入图片描述
2.

在YOLOV3中判断候选框是否有目标物体,confidence是重要指标,而在YOLOV3中confidence大小,是通过IOU loss 判断的。

YOLOV3上IOU LOSS 计算方式如下图所示:

在这里插入图片描述
2.1是对YOLOV3中的iou loss计算的第一次改进
在这里插入图片描述
2.2
GIOU LOSS 的不足的地方
在这里插入图片描述
2.3由于GIOU LOSS也存在不足,所有又进行了改进,DIUO LOSS ,这个损害函数计算方法,解决了YOLOV3本身的IOU loss 的不足,也解决了GIOU LOSS的不足,

在这里插入图片描述
2.4
但是Diou LOSS 依然不是最完美的,因为它还有不足,状态2更好,因为状态2框的形状和目标框的形状更接近。所以提出了最终的CIUO LOSS
在这里插入图片描述
2.5

在这里插入图片描述

2.6在做NMS时使用的是DIOU LOSS

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

后面4个数据是目标边界框的相对位置
在这里插入图片描述

图片的路径
在这里插入图片描述
6.

在这里插入图片描述
7.
在这里插入图片描述

在这里插入图片描述
9.
在这里插入图片描述
10.

在这里插入图片描述
freeze-layers 设置成True就只会训练下面这些,其他的权重会被冻结
在这里插入图片描述

freeze-layers 设置成fALSE就只会冻结Darknet53这个网络,其他权重会得到训练。

在这里插入图片描述

如果要想得到好的效果,可以把frezee_layer 设置为True,让它训练最后3个分类层,然后把freeze_layer设置成Flase,让它训练除Darknet的其他权重。
在这里插入图片描述
12.
多GPU并行指令。
在这里插入图片描述
13.

在这里插入图片描述
14.

在这里插入图片描述
15.

平衡正负样本,但是由于cls_pw和obj_pw都是取值为1,所以在这来是没有用的
在这里插入图片描述
16.

25是每个候候选框的预测信息
在这里插入图片描述

5个值加20个类别= 25
在这里插入图片描述

这里面会保存,训练过程中产生的一系列文件。

在这里插入图片描述

18.会生成一系列的COCO数据集的评判标准。
在这里插入图片描述

19.查看训练过程中生成的图像
在这里插入图片描述

在这里插入图片描述

21.对最后的损失求平均的操作。
在这里插入图片描述
22.默认都没有去使用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
25、

### YOLOv3 学习资料与笔记 YOLOv3 是一种基于卷积神经网络的目标检测算法,相较于之前的版本,它通过引入多尺度预测来提高小目标的检测能力。以下是关于 YOLOv3学习资源和教程: #### 1. 官方论文解读 YOLOv3 的官方论文《YOLOv3: An Incremental Improvement》提供了详细的理论基础和技术改进说明[^2]。阅读这篇论文可以帮助理解其核心思想以及如何实现更快更准的目标检测。 #### 2. 博客文章总结 许多开发者撰写了详尽的技术博客分享他们的经验。例如,在一篇名为 **"YOLO学习-YOLOv1~v3原理学习(笔记整合)"** 中提到,YOLOv3 不仅继承了前代的优点,还增加了锚框机制以适应不同大小的对象检测需求[^2]。此外,该博文也对比分析了一阶段方法(如 YOLO 系列)与两阶段方法(如 Faster R-CNN 和 Mask RCNN),指出一阶段方法虽然牺牲了一些精度但显著提升了速度性能[^2]。 #### 3. 实践指南 对于希望动手实践的朋友来说,《YoloV3学习笔记(二)——环境配置》是一份非常实用的手册[^4]。尽管其中提到了一些旧硬件环境下遇到的问题,但它依然能够指导新手完成从零搭建开发平台到运行第一个 demo 的全过程。特别需要注意的是软件包之间的兼容性问题;如果可能的话建议使用较新的 GPU 来获得更好的支持体验[^4]。 #### 4. GitHub 开源项目 GitHub 上有许多优秀的开源实现可供参考。比如 ultralytics/yolov3 就是一个被广泛使用的 Python 版本库,包含了训练、验证及推理等功能模块。该项目文档清晰易懂,并附带多个预训练权重文件供下载测试之用。 ```python import torch from models import * # 导入模型定义脚本中的类对象 device = 'cuda' if torch.cuda.is_available() else 'cpu' model = Darknet('cfg/yolov3.cfg', img_size=(416, 416)).to(device) if device != 'cpu': model.half() ckpt = torch.load('weights/yolov3.pt', map_location=device)['model'] model.load_state_dict(ckpt.state_dict()) print("Model Loaded Successfully!") ``` 上面这段代码展示了如何加载 yolov3 配置文件并初始化相应架构实例化过程的一部分[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值