Yolo v1+2+3都是目标检测模型。
- 目标检测模型;
- Yolo v1
- Yolo v2
- Yolo v3
- 总结: 发展路线和区别;
一、目标检测模型
目标检测可分为两个步骤:
Step1: 检测目标位置(生成矩形框)
Step2: 对目标物体进行分类
物体检测主流算法主要分为one-stage和two-stage
One-stage:Yolo系列(v1->v2->v3)
Two-stage: Fast RCNN系列(RCNN->Fast RCNN->Faster RCNN)
One-stage的步骤一和步骤二同时执行,输入图像只经过一个网络,输出结果包含位置信息和分类;(精度与速度之间均衡)
Two-stage的步骤一和步骤二分开进行,输入图像先经过候选框生成网络,再经过分类网络。精度更高,计算量更大。
1.YOLO很快,因为使用回归的方法,且不用复杂的框架;
2.YOLO基于整张图像进行预测,其他滑窗式的检测框架只能基于局部图像;
3.YOLO学到的图像特征更为通用。why?Q1
二、YOLOv1
Yolo1的网络结构
输入:448*448的图像
输出:7*7*30的张量(7*7是指图像分为了7*7个格子)
网络结构:(若干卷积+最大池化)+ 两层全卷积, 没有使用BN,用了一层dropout。最后一层的输出使用了线性激活函数,其余都用的leaky relu。
一般来说,分类网络最后的全连接层一般连接于一个一维向量,向量的不同位代表不同的分类。
这里的输出是7*7*30的张量,代表什么呢?Q2
A2:在yolo中,如果一个物体的中心点落在了这7*7的某个格子中,则这个格子负责检测这个物体。所以相当于有47个检测人员,每个人员负责检测自己格子内的东西。30对应的是一般情况下一维输出向量的长度。
30 = (4+1)*2+20;4:[x_offset, y_offset, w, h], 1: 被检测物体的置信度;2:一个格子共回归两个矩形框;20:预测20个类别。
需要注意的是:每个格子产生2个预测框,2是参数,可以调整。一旦设置为2,则每个方格只产生2个预测框,最后选置信度最大的那个框输出。也就是每个格子产生n个预测框,但只输出置信度最大的那个框。且每个方格只能预测一个物体。当格子数为7*7的时候&#