论文部分内容阅读
目标检测是当前计算机视觉领域的一个研究热点,主要任务是找出图像或视频中所有感兴趣目标的位置,并给出每个目标的具体类别。近年来,目标检测在很多计算机视觉领域中已经有了很多成熟的应用,如车辆自动驾驶、图像检索、视频监控和信息采集等。基于传统图像处理和机器学习的目标检测算法通常使用手工设计的特征,并且利用小样本进行训练,这种做法常常会受到光照、遮挡和环境变化等因素的影响,最终导致目标检测的效果不佳。与传统目标检测算法相比,基于深度学习的目标检测算法拥有突出的性能优势,然而深度学习也具有一定的缺点。高复杂度的深度学习模型虽然具有更好的性能,但是高额的存储空间和计算资源消耗导致其难以有效地应用在体积、功耗等方面受限的移动和嵌入式设备上。庞大的计算量导致神经网络模型不能在移动、嵌入式等设备上实时运行,针对这一问题,业界许多学者研究模型压缩和加速算法,剔除神经网络的冗余信息。因此本文提出将模型压缩技术应用于SSD(Single Shot Multi Box Detector)目标检测模型,减少目标检测模型的内存占用、加快推断速度及节省能耗。具体工作内容如下:1)主干网络模型搭建和压缩。本文将SSD的主干网络改用稠密连接卷积网络(Densely Connected Convolutional Networks,Dense Net),Densenet在每个Dense Block内做了高低层特征融合操作,高低层特征融合适用于目标检测。本文主干网络训练使用的数据集为imagenet2012,训练完成后对主干网络模型进行压缩,使用结构化剪枝方法,根据网络批量归一化层的γ参数对特征图每个通道的重要性进行评估,剪掉不重要的特征图通道,与其对应的卷积核也被剪掉,最后通过微调剪枝后的网络来提高网络的分类准确率,实验结果显示使用结构化剪枝方法对主干网络模型参数量减半后,网络无精度损失。2)将压缩后的主干网络模型和SSD高效结合,构建CP-SSD模型。本文使用较小的6个尺度(19×19,10×10,5×5,3×3,2×2,1×1)的特征图进行预测,为了进一步提高算法的推断速度,在19×19尺度的特征图上减少默认框的数量,其中19×19和10×10尺度的特征图是主干网络原有的,对于生成附加的4个特征图,本文使用深度可分解卷积,其将标准卷积分解成深度卷积和点卷积(1×1的卷积核),这种分解可以有效减小计算量,降低模型大小。最终预测时,使用1×1的卷积核取代3×3的卷积核来预测类别分数和边框位置。为了平衡模型的推断速度和准确率,在每一个用于检测的特征图进行预测之前构建一个残差块(Res Block)。本文算法训练使用的是PASCAL VOC2007和2012的训练集和验证集,然后在PASCAL VOC2007的测试集上进行测试。实验结果表明本文算法在将SSD模型大小压缩2.8倍的同时,可保持模型的平均精度均值(mean Average Precision,m AP)无损失,并且提升了模型的检测速度。