目标检测最新总结文献 :
1《Deep Learning for Generic Object Detection A Survey》 下载地址
2.《Object Detection in 20 Years: A Survey》下载地址
GitHub:下载地址
以AlexNet为分界线,2012年之前为传统算法,2013年之后为深度学习算法。
包括:
``
1、Viola-Jones算法
2、HOG 特征算法
3 DPM 模型
``
2012年, Hinton教授的团队利用卷积神经网络设计了AlexNet,在ImageNet数据集上打败所有传统方法的团队,使得CNN成为计算机视觉领域中最为重要的工具。
基于深度学习的目标检测算法大致分为三类:
1、基于区域建议的算法 如,R-CNN、 Fast R-CNN、Faster R-CNN等。
2、基于目标回归的检测算法,如YOLO、SSD。
3、基于搜索的目标检测与识别算法, AttentionNet,强化学习。
代码地址
主要思想:
1.输入一张图像
2.(Selective Search)选择性搜索从图像中生成2000个左右的区域建议框。
3.对于每一个区域建议框使用CNN提取特征,并组合特征。
4.使用线性SVM分类器对每个区域建议框分类
5.通过边界框回归算法重新定义目标边界框
局限性:
1.目标候选区域的重叠使CNN特征提取存在很大冗余
代码地址
主要思想:
1.生成建议窗口,Fast R-CNN用(Selective Search)方法生成建议窗口,每张图片大约2000张。
2.Fast R-CNN将建议窗口映射到CNN的最后一层卷积feature map上
2.使用Softmax预测区域类别概率
3 Smooth L1 Loss 生成边框回归
解决R-CNN问题:
代码
算法详解(anchor机制)
Faster R-CNN 主要采用RPN(Region proposal Network),直接生成建议框,只有300个,RPN和Fast R-CNN部分共享,大幅提升目标检测速度。
主要思想:
1.Faster R-CNN 目标检测分为4个部分(候选区域生成,特征提取,分类,和Bounding box回归)
2.候选区域由RPN完成,其它三个部分沿用Fast R-CNN
代码
YOLO算法主要有以下优点:
1.检测速度达到实时帧检测,在Titan X GPU上每秒可检测45帧,快速版每秒能做到150帧
2.YOLO 是对整张图进行检测,采取回归的方式检测目标的位置和类别,是一种全新的检测方式
缺点:
1.定位精度差,没有区域建议算法高,主要由于该算法对图像做回归而不是滑动窗口检测
2.对小目标,或目标之间位置接近的情况下检测效果不好
主要思想:
1.将整个图像分成S*S个格子
2.将整张图像送入CNN,预测每一个格子是否存在目标、(预测目标边界框和目标的类别)
3.将预测的边界框做非最大值抑制(NMS),得到最终结果。
代码
SSD在YOLO的基础上增加了Faster R-CNN的anchor机制,相当于在回归的基础上增加了区域建议的机制。
同时SSD从深度神经网络不同层的特征图上提取信息,然后分别用这些特征信息做回归预测目标,相当于引入多尺度操作,能够对一个目标区域做更多的判断。
主要优点:
1.是一种 单次(single shot)检测方法,只需观察一次图像,就可做到多目标检测识别,速度比YOLO快
2.在YOLO的基础上结合了Faster R-CNN的 anchor机制,同时利用不同尺度的特征图预测每个位置上的目标,可以与基于区域建议的方法相比。
3.SSD算法对低分辨率的图像同样能达到较高的检测识别精度
算法流程:
1.通过CNN提取整个图像特征
2.针对不同尺度的深度特征图设计大小不同的特征提取框
3.特征提取框预测目标类别和真实边界
4.NMS筛选最佳预测结果。
[代码]
faster R-CNN对卷积层做了共享(RPN和Fast R-CNN),在经过ROI pooling时确没有共享feature map,需要将每一个feature map统一到相同大小,R-FCN建立共享卷积层,只对一个feature map进行卷积,是一个真正的全卷积结构。
算法主要流程:
代码
文中提到YOLO V2的改进之处:
代码
改进之处:
1.多尺度预测
2.更好的基础分类网络(Darknet-53)
3.分类器-类别预测:YOLO v3 不使用 Softmax对每个框进行分类,主要考虑2个因素:a.Softmax使得每个框分配一个类别,而对Open Images这种数据集,目标可能存在重叠上的类别标签
代码
提出了多层次的特征金字塔网络(MLFPN)来构造更有效的特征金字塔来检测不同尺度的目标
未完待续…