基于深度学习的目标检测算法综述
摘要
对目标检测算法进行对比,研究两阶段与一阶段算法的发展过程,提出未来发展方向。目标检测包括分类和定位,传统算法使用滑动窗口选择候选区初步定位,通过局部二值模式、方向梯度直方图等进行特征提取,通过支持向量机、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个不同尺度和形状的锚盒,计算锚盒和真实目标框的交并比和偏移量,判断该位置是否存在目标,将预定义的锚盒分为前景或背景,再根据偏差损失训练RPN网络,进行位置回归,修正ROI的位置,最后将修正的ROI传入后续网络。但是,在检测过程中,RPN网络需要对目标进行一次回归筛选以区分前景和背景目标,后续检测网络对RPN输出的ROI再一次进行细分类和位置回归,两次计算导致模型参数量大。