图像目标识别目标检测

目标检测研究之路3

2017-06-28  本文已影响66人  活体检测业余爱好

端到端的方法

本小节介绍端到端(End-to-End)的目标检测方法,这些方法无需区域提名,包括YOLO和SSD

YOLO

YOLO的全拼是You Only Look Once,顾名思义就是只看一次,进一步把目标判定和目标识别合二为一,所以识别性能有了很大提升,达到每秒45帧,而在快速版YOLO(Fast YOLO,卷积层更少)中,可以达到每秒155帧。

网络的整体结构如图14所示,针对一张图片,YOLO的处理步骤为:

1. 把输入图片缩放到448×448大小;
2. 运行卷积网络;
3. 对模型置信度卡阈值,得到目标位置与类别。

图14. YOLO检测系统

网络的模型如图15所示,将448×448大小的图切成S×S的网格,目标中心点所在的格子负责该目标的相关检测,每个网格预测B个边框及其置信度,以及C种类别的概率。YOLO中S=7,B=2,C取决于数据集中物体类别数量,比如VOC数据集就是C=20。对VOC数据集来说,YOLO就是把图片统一缩放到448×448,然后每张图平均划分为7×7=49个小格子,每个格子预测2个矩形框及其置信度,以及20种类别的概率。

图15. YOLO模型

YOLO简化了整个目标检测流程,速度的提升也很大,但是YOLO还是有不少可以改进的地方,比如S×S的网格就是一个比较启发式的策略,如果两个小目标同时落入一个格子中,模型也只能预测一个;另一个问题是Loss函数对不同大小的bbox未做区分。

补充:http://blog.csdn.net/hx921123/article/details/55802795(写的还行)以及
zhuanlan.zhihu.com/p/25045711中的训练方法

SSD

SSD[17,23]的全拼是Single Shot MultiBox Detector,冲着YOLO的缺点来的。SSD的框架如图16所示,图16(a)表示带有两个Ground Truth边框的输入图片,图16(b)和(c)分别表示8×8网格和4×4网格,显然前者适合检测小的目标,比如图片中的猫,后者适合检测大的目标,比如图片中的狗。在每个格子上有一系列固定大小的Box(有点类似前面提到的Anchor Box),这些在SSD称为Default Box,用来框定目标物体的位置,在训练的时候Ground Truth会赋予给某个固定的Box,比如图16(b)中的蓝框和图16(c)中的红框。

图16. SSD框架

SSD的网络分为两部分,前面的是用于图像分类的标准网络(去掉了分类相关的层),后面的网络是用于检测的多尺度特征映射层,从而达到检测不同大小的目标。SSD和YOLO的网络结构对比如图17所示。

图17. SSD和YOLO的网络结构对比

SSD在保持YOLO高速的同时效果也提升很多,主要是借鉴了Faster R-CNN中的Anchor机制,同时使用了多尺度。但是从原理依然可以看出,Default Box的形状以及网格大小是事先固定的,那么对特定的图片小目标的提取会不够好。

http://blog.csdn.net/myarrow/article/details/51878004(SSD部分写的不错)
http://blog.csdn.net/smf0504/article/details/52745070(写的非常好)

总结

基于深度学习的目标检测总体上分为两派:

1. 基于区域提名的R-CNN系列;

2. 无需区域提名的YOLO、SSD系列。

表1大致对比了各种方法的性能(Fps,每秒帧数)和VOC 2007上的MAP对比。注意相关数据搜集自不同的paper,由于评测硬件和环境等区别,数据仅供参考,不具有绝对对比意义。

表1不同目标检测算法的指标对比

基于深度学习的目标检测的研究目前依然非常火热,图18为VOC2012目标检测排行榜[25](2016-10-18结果),很高兴看到很多华人和国内同仁在这方面各领风骚。

图18. VOC2012目标检测排行榜

当然,目标检测还有很长的路要走,比如业界公认较难的小目标检测问题。小试身手,来一张实际的三里屯照片,YOLO的检测结果如图19所示,可以看出漏检了不少目标。

图19. YOLO检测结果

再来看看图20中SSD的效果,看起来效果好不少,但被遮挡的人还是漏检了。

图20. SSD检测结果

期待未来基于深度学习的目标检测的进一步突破!

上一篇下一篇

猜你喜欢

热点阅读