基于深度学习的图像目标检测

基于深度学习的图像目标检测(上)
https://www.jianshu.com/p/710799b985ef
基于深度学习的图像目标检测(下)
https://cloud.tencent.com/developer/news/53823

五大图像处理任务

  1. 图像分类
  2. 分类和定位
  3. 目标物体检测
  4. 语义分割
  5. 实例分割

六大图像数据库
1.PASCAL Visual Object Classes (VOC) 挑战
人、车、自行车、公交车、飞机、羊、牛、桌等20大类
2.MS COCO: Microsoft Common Object in Context
80大类, 多目标
3.ImageNet Object Detection: ILSVRC DET
任务200类别,578,482 图片
4.Oxford-IIIT Pet Dataset
37 类别,每个类别 200 图片
5.Cityscapes Dataset
30 类别,25,000 + 真实开车场景图片
6.ADE20K Dataset
150+ 类别,22,000 + 普通场景图片

七大牛人组
1.Navneet Dalal 和 Bill Triggs (INRIA)
两人提出了Histogram of Gradient (HOG)获得2015年的 Longuet-Higgins Prize大奖
2.Pedro Felipe Felzenszwalb
和学生Ross Girshick一起发明了DPM,深化了HOG.
3.Ross Girshick
Felzenszwalb的高徒,RBG大神、发明了R-CNN、Mask R-CNN。Ross目前在Facebook人工智能研究院 FAIR。
4.Koen van de Sande
提出Selective Search的大神。
5.Jitendra Malik
去噪模型Perona-Malik扩散和聚类分割里面的归一化分割Normalized Cut的发明人,RBG大神的博士后导师,鼓励RBG引入CNN做目标检测,R-CNN发明人之一。
6. Pietro Perona
去噪模型Perona-Malik扩散的发明人, 李飞飞的博士导师, 2013获得Longuet-Higgins Prize。 和高徒Piotr Dollar一起提出Fast Feature Pyramids的神器。他的另外一个高徒Stefano Soatto搞出了 Structure From Motion SFM,视觉运动信息的多幅二维图像序列估计三维结构的技术。 他弟子Piotr Dollar目前在FAIR。
7.何凯明
ResNet,SPP, Mask-CNN发明人,目前在FAIR。

一个效果评估
mAP(mean average precision)借用了文档检索里面的标准, 假设目标物体的预测在所有的图像中都进行预测, 在每个图像上计算准确和召回。 但是最后计算每个目标物体的AP的时候, 仅仅选用相关的图像,进行平均average, 最后计算mAP的时候再求平均mean。 是一个奇怪的名字,却是一个蛮直观的评价!

R-CNN前世:

  1. Histogram of Gradient (HOG) 特征
  2. HOG Pyramid
  3. HOG特征 -> SVM分类
  4. DPM模型 Deformable Part Model
  5. Selective Search 思想
  6. 基于Selective Search + DPM/HoG + SVM的物体识别
  7. AlexNet的图像分类
  8. bounding-box regression 框回归
    R-CNN出世:
    R-CNN的本质, 用深度CNN网络取代了HoG/DPM的特征提取!
    R-CNN依赖分类预训练的特征
    通过bounding-box regression改进效果,对于SS推荐的, 经过SVM分类的结果进行修正。
    R-CNN的优点:
  9. 效果比DPM方法大幅度提高
  10. 开启了CNN网络的目标检测应用
  11. 引入了BBR和分类结合的思想
  12. 定义了RoI, 基于推荐区域的思想
    R-CNN问题:
    不是端到端的模型,依赖SS和SVM!
    计算速度相当慢!
    对于过大过小的东西,效果很不好。譬如,对于长凳, 或者眼镜等等。

MR-CNN的改进有限(Multi-Region)

Overfeat的改进
把BBR整合一起使用FCN(Fully-Connected Net)
在计算上做了三大优化:
第一, 先进行CNN再滑动窗口, 而不是先滑动窗口再进行CNN计算。 把窗口滑动放到CNN之后进行。 避免重复的特征计算。
第二, 多类别并行计算框架, 进一步减少CNN特征计算因为没有找到特定类别而浪费。
第三, 把FCN直接用CNN网络取代, 计算量大大减少。怎么做到的呢? 结合上面两点, 利用每个类别实现一个0-1的CNN网络, 然后所有类别并行处理。
Overfeat优点:

  1. 端到端的模型
  2. 回归和分类结合的计算模型
  3. 首次将区域计算后移, 极大节省计算量, 优化速度
  4. 有多尺度考量,试图优化极大极小目标问题
    Overfeat问题:
  5. 取消区域推荐, 依赖窗口滑动和BR效果后的推荐效果一般。
  6. 定位准确, 但是对于重叠目标物体的情况,效果很差。

SPPNet的改进:
SPM把BoW修改金字塔Pyramid方式进行空间限制,做特征提取。
SPM用在CNN特征之后,R-CNN里面 SVM分类之前。
基于CNN的Pooling技术来实现SPM, 通过不同尺度的Pooling技术很容易就实现了CNN特征的SPM特征。
先特征后区域的处理, 某种意义上取代了多尺度输入,或者特征增强。
SPPNet优点:
提取SPP的概念, 把CNN的Pooling用的出神入化, 取代了HoG Pyramid的改进。 对于大小尺度的物体识别有改进。
进一步强调了CNN特征计算前移, 区域处理后移的思想, 极大节省计算量。
SPPNet缺点:
依然不是端到端的模型
过于注重CNN特征的分离, CNN特征提取没有联动调参数!

Fast R-CNN的改进(基于SPPNet)

  1. 简化SPP成为RoI Pooling, 只用了最细分的SPPNet。 把RoI区域变成了RoI Pooling, 这就是RoI Pooling的思想的来源。 Pyramid上层更粗的特征, 可以依赖FCN进行整合学习。
  2. CNN特征网络联动调参数!

Fast R-CNN优点:

  1. 吸收了SPPNet和R-CNN的精华,极大的打通并且改进了从区域推荐到目标检测一端。
  2. RoI Pooling技术横空出世, 极大的发挥了区域计算后移的优势, 加快了训练速度
  3. Log 损失和Smooth L1的损失下的FCN、RoI Pooling、ConvNet三层联动调参数成熟, 并且带来效果上的提升。
  4. 并且应用VGG16,取代AlexNet作为CNN网络模型
    Fast R-CNN缺点:
    依然没有实现端到端的模型,对SS区域推荐依赖严重。

Faster R-CNN的改进
提出RPN(Region Proposal Net)取代了SS区域推荐。 RPN有点类似Overfeat的ConvNet的滑动窗口, 但是加入了Anchor Box的设计。
Faster R-CNN优点:
和Overfeat一样是一个端到端的模型, 但是集成了以前图像处理里面的思想: 区域推荐, 特征Pyramid和Box回归。
较好的ConvNet特征共享, 效率更高
提出了RPN网络,并且整合后的效果和Fast R-CNN一样
Faster R-CNN缺点:
依然难以做到实时高效
功能上没有进入实例分割阶段。

单纯的端到端ConvNet模型的Overfeat很难达到较好的效果。 如何融合图像处理经典思想里面的区域推荐, 特征金字塔, 和框回归,还是非常有必要。 而Faster R-CNN做到了这些。 这个过程中一直伴随着性能的提升, 其中重要一步就是如何让特征计算不要重复,做到一次计算。 如何进一步提高速度, 和增强功能, 是后续网络的要改进的地方。

速度优先:SSD
算法速度和效果均衡: R-FCN
算法效果优先:Faster R-CNN, Mask R-CNN
一网多用:Mask R-CNN

你可能感兴趣的:(图像目标检测,深度学习)