YOLOv1 You only look once
总结:整体流程:
预测框的四个坐标regression+是否为背景的分类(0/1)+判断类别的多分类(0-20的one-hot型概率输出)
下图为目标检测代表性算法:
1 整体架构
YOLOv1 = GoogleNet+4CNN+2FCNN
2 精华部分
-
流程:一张图片—>reshape=7x7x30—>
7x7: 7个grid cell(单元格),即一张图片分为49个单元格(每个单元格预测两个候选框)
30: 30=(第一个候选框:4个坐标点+1个置信度)+(第二个候选框:4坐标点+1个置信度) + 使用某一个置信度高的候选框来预测出的20个类别概率(此处是FCNN) -
置信度:
① 如果检测物体中心点处于这个候选框中,则置信度=1xIoU
②如果不处于候选框中,则置信度=0xIoU
③如果两个都在,则比较两者IoU的大小,只选置信度高的一个框用来预测 -
训练
三部分的损失 L = L 1 + L 2 + L 3 L=L_1+L_2+L_3 L=L1+L2+L3
L 1 L_1 L1 = 候选框bbox与Ground Truth的坐标,回归问题,loss为 M S E MSE MSE
L 2 L_2 L2 = 置信度损失,也分为两部分:背景与物体,即 L 2 L_2 L2 =loss(背景置信度, 0)+loss(物体置信度,1)
L 3 L_3 L3 = 类别softmax损失
3 Pros & Cons
- 优点:速度快
- 缺点:小物体无法检测
4 个人疑问
- 问:每个单元格怎样去生成两个候选框呢?大小是预设的吗?还是随机?
答:猜测是直接预测,大小随机,但未证实。