YOLOv5学习笔记——损失函数篇

3 篇文章 0 订阅
2 篇文章 0 订阅
损失函数

分类损失(Class)、定位损失(预测框与GT框之间的误差)、置信度损失(objectness)
分类与置信度损失使用二元交叉熵损失函数计算;后者用CIOU损失计算Bounding Box回归的损失

类别预测(Class)

特点:输出标签不一定互斥,使得SF输出得分可能大于1
使用多个独立的逻辑分类器来独立地预测各个类别标签可能的概率
使用二元交叉熵损失来进行训练,这也规避了SF的引入带来的计算复杂度提升

定位

使用基于 IoU计算的度量损失取代回归损失
边界框回归时视觉任务的基本组件
IoU 损失
请添加图片描述

问题: 完全不重叠 时的梯度 为0

GIoU
请添加图片描述

DIoU(Distance IoU)

定义:DIoU在IoU的基础上,引入了预测框和真实框中心点之间的欧几里得距离。通过最小化中心点距离,DIoU可以更好地优化预测框的位置。
计算:DIoU损失包括IoU损失和中心点距离损失。

CIoU(Complete IoU)

  • 定义:CIoU在DIoU的基础上,进一步引入了长宽比的惩罚项,以同时优化预测框的位置和形状。
  • 计算
    • CIoU损失 = IoU损失 + 中心点距离损失 + 长宽比损失。
    • 中心点距离损失:计算预测框和真实框中心点的距离。
    • 长宽比损失:考虑预测框和真实框的长宽比差异,通过一个基于相对长宽比的函数来计算。
CIoU损失的公式

CIoU损失的计算公式如下: CIoU = 1 − IoU + ρ 2 ( b , b g t ) c 2 + α v \text{CIoU} = 1 - \text{IoU} + \frac{\rho^2(\mathbf{b}, \mathbf{b}^{gt})}{c^2} + \alpha v CIoU=1IoU+c2ρ2(b,bgt)+αv

其中:

  • ρ(b,bgt)是预测框和真实框中心点之间的欧几里得距离。
  • c是包含预测框和真实框的最小闭包框的对角线长度。
  • α是平衡参数,用于平衡IoU损失和长宽比损失。
  • v是预测框和真实框的长宽比差异的度量。
直观理解
  • IoU部分:衡量预测框和真实框的重叠程度,IoU越大,损失越小。
  • 中心点距离部分:通过最小化预测框和真实框中心点之间的距离,确保预测框的位置尽可能接近真实框。
  • 长宽比部分:通过考虑预测框和真实框的长宽比差异,确保预测框的形状与真实框一致。

通过同时优化这三部分,CIoU损失可以更全面地评估预测框的质量,提升目标检测算法的精度。

目标框回归与跨网格预测

目标框标注格式
xyxy: PASCAL VOC: 目标框的左上角与右下角的坐标
xywh: YOLO格式:目标框的中心点坐标与长宽(关于图片总宽高度归一化)
目标框的回归:
Anchor给出了目标 框狂傲的初始值,回归的 对象是目标正式狂傲与吃屎狂傲的偏移量

目标框回归的原理与机制可以概括为以下几个方面:

1. 输入特征提取

Yolov5首先通过骨干网络(Backbone Network)提取图像的特征。在这一步中,原始图像通过多个卷积层,提取出多尺度的特征图(Feature Maps)。

2. 预测头(Prediction Head)

在提取出特征图后,Yolov5会在每一个特征图上进行预测。对于每个特征图的每个位置,网络会输出一个向量,包含以下信息:

  • 物体的置信度(Objectness Score)
  • 类别概率(Class Probability)
  • 边界框的坐标(Bounding Box Coordinates)
3. 边界框参数化

Yolov5使用锚框(Anchor Boxes)作为预测的基础。锚框是预定义的一组框,具有不同的宽高比。网络通过回归这些锚框的偏移量来预测目标物体的边界框。具体来说,对于每一个锚框,网络会预测四个参数:tx,ty,tw,th​:

  • tx,ty 表示预测框中心相对于锚框中心的偏移(绝对量)
  • tw,th 表示预测框宽度和高度相对于锚框宽度和高度的比例变化(log(w/pw):GT框相对于目标框的对数比例)
4. 边界框解码

网络预测出偏移量后,需要将这些偏移量解码为实际的边界框坐标。解码公式如下:
![[Pasted image 20240712114434.png]]
其中,cx,cy 是锚框的中心坐标,pw,ph 是锚框的宽度和高度,σ 是 sigmoid 函数,用于将预测的偏移量限制在一定范围内。
sigmoid函数

5. 损失函数

为了训练网络,Yolov5定义了一种特定的损失函数,其中包含边界框回归损失(通常是IoU损失或GIoU损失)和分类损失(通常是交叉熵损失)。边界框回归损失用来衡量预测的边界框和真实边界框之间的差异,通过最小化这个损失,网络学会更精确地预测目标位置。

6. 后处理(Post-processing)

在预测完成后,通常需要进行一些后处理步骤,例如非极大值抑制(Non-Maximum Suppression, NMS),来移除冗余的边界框,保留最有可能的预测结果。

总结

目标框回归是通过对锚框的偏移量进行回归预测目标物体的位置,并通过解码得到最终的边界框。Yolov5通过多尺度特征提取、锚框参数化、偏移量回归、损失函数优化和后处理等步骤,来实现对目标物体精确位置的预测。

希望这个解释能够帮助你理解目标框回归的原理与机制!如果你有更多问题或需要进一步的详细讲解,欢迎继续提问。

余弦学习

余弦退火学习率(Cosine Annealing Learning Rate)是一种动态调整学习率的方法,常用于深度学习模型的训练过程中。通过使用余弦函数来调整学习率,该方法可以使学习率在训练过程中逐渐减小,从而在训练后期更加细致地调整模型参数,帮助模型更好地收敛。

余弦退火学习率的原理

余弦退火学习率的调整方式基于余弦函数,其公式如下:

η t = η min ⁡ + 1 2 ( η max ⁡ − η min ⁡ ) ( 1 + cos ⁡ ( T c u r T m a x π ) ) \eta_t = \eta_{\min} + \frac{1}{2} (\eta_{\max} - \eta_{\min}) \left(1 + \cos\left(\frac{T_{cur}}{T_{max}} \pi\right)\right) ηt=ηmin+21(ηmaxηmin)(1+cos(TmaxTcurπ))

其中:
![[Pasted image 20240712144402.png]]

公式解释
  • 当 Tcur=0T_{cur} = 0Tcur​=0 时,ηt\eta_tηt​ 等于 ηmax⁡\eta_{\max}ηmax​,即初始学习率为最大值。
  • 当 Tcur=TmaxT_{cur} = T_{max}Tcur​=Tmax​ 时,ηt\eta_tηt​ 等于 ηmin⁡\eta_{\min}ηmin​,即学习率退火到最小值。
  • 在整个训练过程中,学习率根据余弦函数逐渐减小,形状类似于一个周期的余弦曲线。
  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yolov5是一个目标检测算法,它采用了和Yolov4一样的Mosaic数据增强方式,该方式由Yolov5团队的成员提出。Mosaic数据增强使用了随机缩放、随机裁剪和随机排布的方式进行拼接,对于小目标的检测效果很不错。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [YOLOv5 学习笔记](https://blog.csdn.net/W1995S/article/details/118114221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [YOLOv5学习笔记](https://blog.csdn.net/qq_54809548/article/details/125403163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [YOLOv5 自学笔记(持续更新)](https://blog.csdn.net/Mr_wjjianyan/article/details/128475887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值