损失函数
分类损失(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=1−IoU+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 函数,用于将预测的偏移量限制在一定范围内。
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,即学习率退火到最小值。
- 在整个训练过程中,学习率根据余弦函数逐渐减小,形状类似于一个周期的余弦曲线。