基于深度学习的目标检测算法综述
摘要
对目标检测算法进行对比,研究两阶段与一阶段算法的发展过程,提出未来发展方向。目标检测包括分类和定位,传统算法使用滑动窗口选择候选区初步定位,通过局部二值模式、方向梯度直方图等进行特征提取,通过支持向量机、Adaboost算法进行分类。传统算法效率与准确率低,鲁棒性差,深度学习算法成为热门。
两阶段目标检测
区域提取算法核心是卷积神经网络CNN,先利用CNN骨干提取特征,然后找出候选区域,最后滑动窗口确定目标类别与位置。
- R-CNN首先通过 SS 算法提取 2k 个左右的感兴趣区域,再对感兴趣区域进行特征提取。存在缺陷:感兴趣区域彼此之间权值无法共享,存在重复计算,中间数据需单独保存占用资源,对输入图片强制缩放影响检测准确度。
- SPP-NET在最后一个卷积层和第一个全连接层之间做些处理,保证输入全连接层的尺寸一致即可解决输入图像尺寸受限的问题。SPP-NET候选区域包含整张图像,只需通过一次卷积网络即可得到整张图像和所有候选区域的特征。
- Fast R-CNN借鉴SPP-NET的特征金字塔,提出ROI Pooling吧各种尺寸的候选区域特征图映射成统一尺度的特征向量,首先,将不同大小的候选区域都切分成M×N块,再对每块都进行max pooling得到1个值。这样,所有候选区域特征图就都统一成M×N维的特征向量了。但是,利用SS算法产生候选框对时间消耗非常大。
- Faster R-CNN是先用CNN骨干网提取图像特征,由RPN网络和后续的检测器共享,特征图进入RPN网络后,对每个特征点预设9个不同尺度和形状的锚盒,计