YOLOv1, SSD

YOLOv1, SSD

今年四月份的时候,在一个研究院实习时学习了YOLOv1, SSD系列Object Detection框架,现在总结一下。关于R-CNN系列框架的总结在上一篇blog。

一. YOLOv1(You Only Look Once)

1.1 框架结构

YOLOv1, SSD_第1张图片
yolo-1
  1. 首先将图片调整为448 \times 448大小;
  2. 运行神经网络(其中包括选取region proposal以及target confidence和coordinate输出);
  3. nms(Non-max Suppression, 非极大值抑制), 用于后续bounding-box的选取(选取置信度高且不重复的方框).
YOLOv1, SSD_第2张图片
yolo-2
  • 系统将输入图片分成S \times S个grid, 物体中心所在的grid负责检测这个物体. 每一个grid预测B个Bounding-box(边框)和Confidence Scores(置信度). 置信度的定义为:

Pr(Object) * IOU_{pred}^{truth}

  • 其中的IOU定义为:
YOLOv1, SSD_第3张图片
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 神经网络结构

YOLOv1, SSD_第4张图片
yolo-net

1.3 缺点

YOLOv1 有两个主要明显的缺点:

  • 输入图像分割成S \times S, S取7有点粗糙, 导致后续边框回归不太准确;
  • 每一个grid只预测一种物体, 不能预测一个grid有多种物体的情况.

针对这些, SSD和后续YOLOv2, YOLOv3有所改进.

二. SSD(Single Shot Multibox Detector)

2.1 框架结构

YOLOv1, SSD_第5张图片
ssd

SSD只需要一张输入图片和ground truth框就可以开始训练. 可以把图片分成不同的scale(如8 \times 8或者4 \times 4), 然后选取不同的aspect ratio(纵横比). 每一个box预测方块offset和每种类的置信度.

2.2 神经网络结构

YOLOv1, SSD_第6张图片
ssd-net

2.2.1 YOLOv1与SSD网络的对比

SSD相比于YOLOv1, 在基本网络后面增加了好几层多尺度convolutional feature layer, 用于定位面积更小的物体, mAP提高了.

三. 总结

YOLOv1, SSD_第7张图片
conclusion

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

你可能感兴趣的:(YOLOv1, SSD)