一、YOLOv1输出结构概述
将输入图片分成
每个 grid cell 输出:
个Box,每个包含:( , , , , ) : bbox中心在cell内的相对坐标 : bbox的宽高相对于整张图进行归一化 : 置信度=有无物体 × IoU(预测框, 真值框)
种类别的概率(classification)
总输出向量维数:
二、YOLOv1总损失函数公式
YOLOv1损失函数是多任务损失(回归+分类+置信度),它有四部分:
变量说明:
:第i个cell的第j个box是否负责 本cell内的目标(只有一个box负责),为1时计算该损失 :没有目标时为1 :预测值 :真实值 :位置损失的权重(默认5) :无目标置信度损失的权重(默认0.5) :预测置信度(有物体 × IoU) :预测类别概率
三、每项损失的推导依据及公式细节
- 坐标回归损失
- 只计算负责预测真实物体的box(IoU最大的box)。
- 采用MSE对(x, y)和(
, ),注意宽高用开方,为了平衡大框和小框的梯度。
- 置信度损失
- 有目标与无目标的置信度分别加权。置信度理应等于IoU(预测框, 真框),没有目标时应为0。
- 分类损失
- 只对有目标的cell计算,分类采用softmax后的one-hot标签和网络输出做MSE。
四、YOLOv1各损失作用(总结)
- loc loss (位置损失): 保证预测框能覆盖目标
- conf loss (置信度损失): 保证分辨哪里是目标,哪里不是
- class loss (分类损失): 保证类别预测准确