目前能够将现有的基于深度学习的目标检测与识别算法大体分为如下三大类:算法
这类算法的主要步骤是:网络
目前此类算法比较知名的有R-CNN, Fast-R-CNN, Faster-R-CNN三种方法。从顺序上,Fast-R-CNN针对R-CNN的不足作了改进,而Faster-R-CNN对Fast-R-CNN作了改进,三者在非实时水平上,精度和速度明显改善。学习
R-CNN,Fast-R-CNN的做者同为Ross Girshick。测试
R-CNN的工做流程:spa
⦁ 首先用选择性搜索算法(Selective Search,SS)提取1k-2k个候选区域设计
⦁ 使用深度卷积神经网络提取每个候选区的深度特征blog
⦁ 训练SVM分类器来对这些特征进行分类图片
⦁ 最后经过边界回归算法从新定位目标边界框深度学习
Selective Search对算法的贡献:此前,在一些传统的目标识别算法中,使用的是滑动窗口进行候选区提取,这样会致使在一章图片中会产生高达百万个候选区,而在R-CNN中,使用选择性搜索算法,每次提取的候选区大概只有1k到2k可能包含物体的区域。工作流
使用深度CNN提取建议区域的特征时,须要注意的是,有些网络对输入图片的大小有要求,如Alex-net要求输入的图片尺寸为227像素*227像素的大小。所以,由SS提取获得的候选区的尺寸大小不一,须要在输入神经网络以前调整大小。经过深度CNN提取特征后,每一个目标候选区域相应获得一个4096维的特征向量。
以上获得了每一个候选区域的特征向量,接下来使用SVM分类器对特征进行分类。
相对与传统的方法,R-CNN的主要优点有:
⦁ 使用深度学习方法提取深度特征,而不是使用人为设计,所以提升了任务精度。
⦁ 采用区域建议提取可能目标,而不是使用滑动窗口的方式取检测目标,这样减小了没必要要的候选区。
⦁ 加入了边界回归的策略来进一步提升检测精度
不足之处:
虽然相对于传统的目标检测与识别算法,R-CNN在公共数据集上的准确率有着突破性的进展,如在PASCAL VOC的准确率从35.1%提高到了53.7%,可是R-CNN也有必定的局限性。目标候选区的重叠使得CNN特征提取的计算中有着很大的冗余,着很大程度上限制了检测速度。针对这个缺点将R-CNN升级为Fast-R-CNN。
R-CNN主要存在如下三个不足之处:
(待续)