【目标检测-YOLO】YOLO v4 总结(第四篇)

1. YOLO v4 架构总结

YOLO Input Backbone Neck Head 置信度Loss 坐标回归Loss 分类Loss
v1 448*448 GoogleNet FC*2 MSE
v2 32x DarkNet-19 Passthrough Conv MSE
v3 32x DarkNet-53 FPN Conv BCE

(x,y) BCE

(w,h) MSE

BCE
v4 32x

CSPDarkNet-53

SPP

PAN

同v3 BCE CIOU BCE

2. YOLOv4 损失函数

正负样本划分

在YOLOv3中,每一个标注框都只有一个正样本。

YOLO v3 正负样本分配参考: YOLOv3总结_分享让人快乐-CSDN博客

YOLOv4 采用了Multi Anchor策略,即只要中心点处的anchor box与目标框的IoU超过了给定阈值,那就作为正样本,其他未负样本,这里不再有忽略样本的概念。那些原本在YOLOv3中会被忽略掉的样本,在YOLOv4中则成为了正样本。YOLOv4的正样本会略微多于YOLOv3,对性能的提升也自然会有一些帮助。

YOLO v5 又不同了:把周围3×3邻域里的anchor box全给考虑进来。待填坑...

参考:YOLOv4网络结构详解_霹雳吧啦Wz-CSDN博客_yolov4

负样本置信度损失和v3一样

L(noobj) = \sum_{i=0}^{w}\sum_{j=0}^{h}\sum_{n=0}^{A}1_{maxIOU<0.7}[-\hat{C}ln(C)-(1-\hat{C})ln(1-C)] \overset{\hat{C}=0}{\rightarrow}\sum_{i=0}^{w}\sum_{j=0}^{h}\sum_{n=0}^{A}1_{maxIOU<0.7}[-ln(1-C)]

正样本

置信度损失

L(obj) = \sum_{t=0}^{T}\sum_{n=0}^{A}1_{maxIOU=>0.7}[-\hat{C}ln(C)-(1-\hat{C})ln(1-C)] \overset{\hat{C}=1}{\rightarrow}\sum_{t=0}^{T}\sum_{n=0}^{A}1_{maxIOU=>0.7}[-ln(C)]

分类损失

L(class) = \sum_{t=0}^{T}\sum_{n=0}^{A}1_{maxIOU=>0.7}\sum_{cls=0}^{classes}[-\hat{p}ln(p)-(1-\hat{p})ln(1-p)]


坐标损失:定位损失采用的是CIoU损失

L_{CIOU} = 1-IOU+\frac{d^{2}}{c^{2}}+\alpha v

v=\frac{4}{\pi ^{2}}(\arctan \frac{w^{gt}}{h^{gt}}-\arctan\frac{w}{h})^{2}

\alpha =\frac{v}{(1-IOU)+v}

参考:YOLO v4 更多细节(第三篇)_分享让人快乐-CSDN博客

L(x,y,w,h) = \sum_{t=0}^{T}\sum_{n=0}^{A}1_{maxIOU=>0.7}L_{CIOU}

综上,总的损失为:

L_{all}=L(noobj)+L(obj)+L(class)+L(x,y,w,h)=\sum_{i=0}^{w}\sum_{j=0}^{h}\sum_{n=0}^{A}1_{maxIOU<0.7}[-ln(1-C)]+\sum_{t=0}^{T}\sum_{n=0}^{A}1_{maxIOU=>0.7}\left \{ [-ln(C)]+L_{CIOU}+\sum_{cls=0}^{classes}[-\hat{p}ln(p)-(1-\hat{p})ln(1-p)]\right \}

3. 思考

4. 推理

5. YOLO v4的优缺点

参考

你可能感兴趣的:(视觉,YOLO,深度学习,人工智能)