YOLO系列中的Head侧主要包含了Head检测头,损失函数部分以及Head侧的优化策略。
1.yolov1的head
将1470reshape成7*7*30,其中1*1*30表示:
Loss
由公式可以看出YOLOv1的损失函数可以分为检测框的回归损失,置信度误差损失以及分类误差损失。
(1)检测框的回归损失:
(2)置信度误差损失
类别不均衡问题:在一张图像中物体往往只占一小部分,大部分还是背景为主。故在置信度误差损失中设置了
=5和
=0.5来平衡含物体的置信度误差损失和不含物体的置信度误差损失两者的权重,让模型更加重视含物体的置信度误差损失。
(3)分类误差损失
Head侧的优化策略
缺点:
2. yolov2的head
YOLOv2的Head侧在YOLOv1的基础上进行了网络结构和损失函数的改进,并且大名鼎鼎的anchor box也在此引入。
YOLOv2在YOLOv1的基础上去掉了最后的全连接层,采用了卷积和anchor boxes来预测检测框。由于使用卷积对特征图进行下采样会使很多细粒度特征(Fine-Grained Features)的损失,导致小物体的识别效果不佳。故在YOLOv2Head侧中引入了passthrough layer结构,将特征图一分为四,并进行concat操作,保存了珍贵的细粒度特征。
YOLOv2Head侧输出的feature map大小为13*13,每个grid cell设置了5个anchor box预测得到5个检测框,一共有个13*13*5=845个检测框,与YOLOv1相比大大提高目标的定位准确率。
损失函数:
3.yolov3的head
YOLOv3Head侧在YOLOv2的基础上引入了多尺度检测逻辑和多标签分类思想,优化了损失函数。
多尺度检测逻辑:检测大中小目标
多标签分类思想:一个样本总可能有多个类别的目标,使用sigmoid
YOLOv3中置信度误差损失和分类误差损失都使用交叉熵来表示
4.yolox
yolox使用Decoupled Head
yolox提出Decoupled Head