目标检测的前世今生——数据堂
目标检测历程(编年体)
目标检测历程(纪传体)
目标检测的发展历程,主要分为两个阶段,传统的目标检测算法和基于深度学习的目标检测算法。
1. 传统的目标检测算法
1.1 Harr-like
Paper:Rapid Object Detection using a Boosted Cascade of Simple Features(CVPR 2001)
核心算法:Haar-like + Adaboost + Cascade
其他概念:积分图
算法用途:人脸检测等
历史地位:boosting引起研究热潮,堪比deep learning 的热度,直至DPM出现
1.2 SIFT
Paper:Distinctive Image Features from Scale-Invariant Keypoints (IJCV 2004)
核心算法:高斯卷积+图像金字塔+DOG尺度空间极值点+极值点128位参数获取+SIFT特征生成
SIFT优点:对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性
算法用途:目标检测和识别,图像配准
历史地位:特征点提取的经典算法
1.3 HOG+SVM
Paper:Histograms of oriented gradients for human detection (CVPR 2005)
核心算法:色彩和伽马归一化+图像梯度计算+cell内构建梯度方向直方图+block中进行归一化+级联生成hog特征
hog优点:几何和光学转化不变性,计算量小,适合检测人
hog缺点:没有旋转和尺度不变性
历史地位:传统目标检测的经典算法
/20200331215315845.png)
1.4 DPM
Paper:A discriminatively trained, multiscale, deformable part model (CVPR 2008)
核心算法:hog + 可变部分模型(DPM)
其他概念:Latent svm
dpm优点:在hog的基础上考虑了整体和部件的约束关系,大幅改进了检测性能和算法的鲁棒性
dpm缺点:计算量大
历史地位:传统目标检测的巅峰之作
2010年Pascal VOC 终身成就奖
DPM的思想沿用至今
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020033121542585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDUzMjY1OQ==,size_16,color_FFFFFF,t_70)
2. 基于深度学习的目标检测算法
基于Proposal(two stage)
2.1 RCNN
Paper:Rich feature hierarchies for accurate object detection and semantic segmentation
(CVPR 2014)
核心算法:selective search + CNN + SVM
RCNN优点:
使用生成2000个取代滑动窗口;
SVM分类+bounding box regression同时输出类别和边界框
RCNN缺点:
proposal传统算法生成,使得算法速度受到限制;
proposal被强制resize到227*227;
卷积神经网络需要分别对每一个生成的候选区域进行一次特征提取,实际存在大量的重复运算;
2.2 SPP-Net
Paper:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
(PAMI 2015)
核心算法:RCNN + SPP
SPP-Net优点:
在卷积层和全连接层间加入 Spatial Pyramid Pooling(SPP)层,解决了RCNN中proposal被强制resize的缺陷
特征提取只对全图进行一次,proposal直接再最后一层卷积层后进行,解决RCNN重复提特征的缺陷
SPP-Net缺点:
使用SVM训练导致无法更新SPP-Net之前层参数
仍然在用selective search,此步骤需要在CPU计算下进行,比价耗时
2.3 Fast R-CNN
Paper:Fast R-CNN (ICCV 2015)
核心算法:selective search + ROI pooling + softmax & bounding box regression
Fast R-CNN优点:
放弃SVM,不需要特征缓存在磁盘,比起RCNN 和 SPP-Net大幅减少空间代价
将bounding box regression加入网络,实现端到端的训练,解决了RCNN 和 SPP-Net使用SVM训练导致无法更新SPP-Net之前层参数了缺陷。因此可以实现更深的网络
Fast R-CNN缺点:仍然在用selective search,此步骤需要在CPU计算下进行,比较耗时
2.4 Faster R-CNN
Paper:Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks (NIPS 2015)
核心算法:RPN + Fast R-CNN
Faster R-CNN优点:
提出RPN,替代selective search,用深度学习方法获取proposal,提升proposal的有效性和提取速度
Faster R-CNN缺点:
网络中仍然用全连接层,还有优化的余地
**2.5 R-FCN**
Paper:R-FCN: Object Detection via Region-based Fully Convolutional Networks (CVPR 2016)
核心算法:RPN + positive sensitive score map +
Roi pooling + vote
R-FCN优点:
提出positive sensitive score map保留了目标位置信息,解决前面paper中Roi pooling 后平移不变性消失的缺陷
消除了全连接层,采用全卷积层,将ResNet中101层全部放在前面的共享子网络中,最后只留一层卷积层做prediction,大大减少计算量
**2.6 Mask-RCNN**
Paper:Mask R-CNN (ICCV 2017)
核心算法:RPN + RoiAlign + Lcls & Lbox & Lmask
R-FCN优点:
在边框识别基础上添加分支网络,用于 语义Mask 识别
用 RoiAlign 代替 Roi Pooling,解决 Roi Pooling 带来的偏差
训练简单,相对于 Faster 仅增加一个小的 Overhead,可以跑到 5FPS
可以方便的扩展到其他任务,比如人的姿态估计等
**2.7 FPN**
Paper:Feature Pyramid Networks for Object Detection (CVPR 2017)
核心算法:Feature Pyramid Networks
FPN优点:
思想:综合考虑低层高层特征,发挥低层特征位置准确和高层特征语义信息丰富的优势
方法:设计FPN从高层携带信息传给低层,再分层预测的策略,实现优势互补的目的
**2.8 LocNet**
Paper:Improving Localization Accuracy for Object Detection (CVPR 2016)
核心算法:基于行列的概率模型(边界概率 & In-out概率)
LocNet优点:
提出边界概率:计算该行或该列是目标边界的概率
提出in-out概率:计算目标在该行或该列的概率
用上述概率模型取代边界框回归,提高IoU和Map,具有很强实用性
**3. 基于深度学习的目标检测算法
基于一体化卷积(one stage)**
3.1 YOLO
Paper:You Only Look Once: Unified, Real-Time Object Detection (CVPR 2016)
核心算法:Feature Pyramid Networks
YOLO优点:
把物体检测(object detection)问题处理成回归问题,用一个卷积神经网络结构就可以从输入图像直接预测,因此速度较快
YOLO 一次“看”一整张图像,所以它可以将物体的整体(contextual)信息进行encoding。同期Fast R-CNN 使用proposal导致“看”范围比较小,因此YOLO 的 误检比 Fast R-CNN 少一半多。
YOLO缺点:
精度比基于proposal的稍差
3.2 SSD
Paper:SSD: Single Shot MultiBox Detector (ECCV 2016)
核心算法:YOLO & RPN & FCN思想杂交
SSD优点:
多尺度的特征图检测(Multi-scale)
卷积层来代替了YOLO的全连接层做预测
SSD使用了默认的边界框+(1,2/1,3/1,1/2,1/3)6个框来做检测
SSD缺点:
由于利用了多层特征,anchor的scale每层都不同,因此产生了较多的超参数,增加了训练难度
**3.3 RetinaNet**
Paper:Focal Loss for Dense Object Detection (ICCV 2017)
核心算法:Focal Loss 函数
SSD优点:
提出了动态缩放的交叉熵损失函数( Focal Loss ),随着正确分类的置信度增加,函数中的比例因子缩减至零,解决正负样本严重unbalance时候对检测器的负面影响
Focal Loss 函数使 one-stage 的检测器首次达到 two-stage检测器所能实现的最高平均精度
**Summary**
总结:
以上总结截止至2017年底。2018年类似Cascade R-CNN(CVPR 2018)、Relation Networks(CVPR 2018)等论文也对目标检测做出了重要的尝试
未来目标检测可能的趋势:
场景信息与目标状态的融合
多维度、 多层级信息融合
分享来自:数据堂
数据堂官网:https://www.datatang.com