YOLO

模型评价指标

IOU(输出框与真实框的交集/并集):

eb64408bb90d1585b3a42cd9d40df1e.png

TP: T表示True,P表示Positive。True和False表示模型判断的对错,Positive和Negative表示该样本被判断为什么。那么如果一个样被我们判定为好的(Positive),而且我们判断对了,那么即为一个TP

FP: 同理,FP即为被我们判断为好的(Positive),但是我们判断错了(即它是错误的样本),即为FP

TN: 被模型识别为坏的(Negative),我们判断对了(它确实是坏的)

FN: 被模型识别为坏的(Negative),但我们判断错了(它实际上是对的)

由此,定义:
$$
Precision\ =\ \frac{TP}{TP\ +\ FP}
$$

$$
Recall\ =\ \frac{TP}{TP\ +\ FN}
$$

在不同的置信度下,计算对应的Precision和Recall,做出图像,计算如下右图的阴影面积

bf463c115b66aba66cb9c53939803eb.png

YOLO-V1

You Only Look Once !

是一个经典的one-stage方法,它将检测问题转化为回归问题,一个CNN搞定问题。

网络架构

YOLO-v1指定输入图片大小为448*448*3。输入图像经过一系列卷积层,变成7*7*1024的大小。展成一维后,经过两层全连接层,变成1470*1,将其reshape成7*7*30的大小。

将7*7视作二维图像按7*7分后的样子,每个格子有30个值。我们将每个格子看作中心格子,有两种预选框的形状(提前定好的),这三十个值的前10个值我们视作两组(x, y, w, h, c),c为置信度,对应两种预选框的参数。后面的20个值为20个分类的概率值。

损失函数

YOLO-V2(细节微调)

bc7c7a3f547b50140aea5fce2b6a309.png

Batch Norm

  • V2舍弃Dropout,卷积后全部加入Batch Normalization
  • 网络的每一层的输入都做了归一化,收敛相对更容易
  • 经过Batch Normalization处理后的网络会提升2%的mAP
  • 从现在的角度来看,Batch Normalization已经成网络必备处理

更大的分辨率

  • V1训练时用的是224*224,测试时使用448*448
  • 因此这种不同可能导致模型水土不服,V2训练时额外又加入了10次448*448的微调
  • 使用高分辨率分类器后,YOLO V2的mAP提升了约4%

网络结构

  • 采用DarkNet,实际输入为416*416(这样经过降采样,416正好被32整除)
  • 没有FC层5次降采样(变为原来的32分之一,原图像变为13*13)
  • 1*1卷积节省了很多参数

先验框

  • 先验比例不一定适合数据集
  • 聚类提取先验框

坐标换算

image-20230317141243861

  • 最后还要再✖32,还原到原来的坐标

YOLO v5