YOLOv1, SSD
今年四月份的时候,在一个研究院实习时学习了YOLOv1, SSD系列Object Detection框架,现在总结一下。关于R-CNN系列框架的总结在上一篇blog。
一. YOLOv1(You Only Look Once)
1.1 框架结构
- 首先将图片调整为448 \times 448大小;
- 运行神经网络(其中包括选取region proposal以及target confidence和coordinate输出);
- nms(Non-max Suppression, 非极大值抑制), 用于后续bounding-box的选取(选取置信度高且不重复的方框).
- 系统将输入图片分成S \times S个grid, 物体中心所在的grid负责检测这个物体. 每一个grid预测B个Bounding-box(边框)和Confidence Scores(置信度). 置信度的定义为:
Pr(Object) * IOU_{pred}^{truth}
- 其中的IOU定义为:
IOU(intersection\;over\;union) = \frac{两个矩形的交集面积}{两个矩形的并集面积}
每一个Bounding-box包括5个预测数值: 坐标x, y, w, h与置信度confidence.
每一个grid同时预测C种种类的概率Pr(Class_i | Object).
最后, 我们把一个grid是C种中的一种的概率和置信度相乘, 可以得到一个grid是特定种类物体的概率:
Pr(Class_i | Object) * Pr(Object) * IOU_{pred}^{truth} = Pr(Class_i) * IOU_{pred}^{truth}
1.2 神经网络结构
1.3 缺点
YOLOv1 有两个主要明显的缺点:
- 输入图像分割成S \times S, S取7有点粗糙, 导致后续边框回归不太准确;
- 每一个grid只预测一种物体, 不能预测一个grid有多种物体的情况.
针对这些, SSD和后续YOLOv2, YOLOv3有所改进.
二. SSD(Single Shot Multibox Detector)
2.1 框架结构
SSD只需要一张输入图片和ground truth框就可以开始训练. 可以把图片分成不同的scale(如8 \times 8或者4 \times 4), 然后选取不同的aspect ratio(纵横比). 每一个box预测方块offset和每种类的置信度.
2.2 神经网络结构
2.2.1 YOLOv1与SSD网络的对比
SSD相比于YOLOv1, 在基本网络后面增加了好几层多尺度convolutional feature layer, 用于定位面积更小的物体, mAP提高了.
三. 总结
YOLOv1, SSD和Faster R-CNN一样都是End-to-End网络了.
References
[1] Joseph Redmon, Santosh Divvalay, Ross Girshick, Ali Farhadi. (2016). You Only Look Once: Unified, Real-Time Object Detection.
[2] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg. (2016). SSD: Single Shot MultiBox Detector.
- 我的个人主页:http://www.techping.cn/
- 我的CSDN博客:http://blog.csdn.net/techping
- 我的简书:http://www.jianshu.com/users/b2a36e431d5e/
- 我的GitHub:https://github.com/techping