本发明属于计算机视觉的目标检测领域,具体涉及一种基于densenet的ssd目标检测方法。
背景技术:
1、目标检测是计算机视觉领域的重要研究课题之一,主要任务是从图像中快速定位出感兴趣的对象,并准确判断出每个对象的具体类别以及位置信息。近年来,目标检测已广泛应用于智能视频监控、故障检测、医疗等领域。自2012年提出的alexnet对imagenet有了显著改进以来,以卷积神经网络为代表的各种深度学习方法都先后应用于包括物体检测在内的许多视觉任务中。
2、作为一种基于深度学习的目标检测算法,ssd(single shot multibox detector)在检测精度和检测速度上都具有比较高的性能。ssd算法是刘伟等人在2016年针对yolo系列算法在目标定位中检测精度不足的问题提出的,它的主要思想是在图像的不同位置进行密集和均匀的采样。ssd借鉴了faster r-cnn中锚的概念,在采样时,用不同尺度和纵横比的先验框预测物体边界,然后用cnn提取特征,再直接进行分类回归,整个过程只需要一步。ssd采用金字塔结构的特征层组进行对象预测,利用接受域大的高阶特征图预测大型目标,利用接受域小的低阶特征图预测小型目标。但是,不同尺度的特征层是独立的,特征层之间缺乏特征的互补性,使得ssd在小目标检测任务中效果不佳。
3、为了提高对小目标的检测性能,li等人提出了fssd算法,该算法借鉴了fpn的思想,利用特征层之间的上下文信息,使得算法的精度有了明显的提高,但增加了计算量。fu等人将ssd的vgg-16网络用resnet-101进行了替换,在分类回归之间添加了残差模块,并且在ssd添加的辅助卷积层后又加了反卷积层,得到dssd方法。与ssd相比,dssd在对小目标的检测精度上有了很大提升,但这种方法使检测速度大幅度降低。
技术实现思路
1、本发明目的在于提供一种基于densenet的ssd目标检测方法,以解决上述背景技术中对小目标检测效果不佳的问题,在提高检测精度的同时提高其检测速度。
2、为实现上述目的,本发明采用的技术方案包括以下步骤:
3、s1:采集图像并对图像进行预处理;
4、s2:构建基于densenet的ssd目标检测模型;
5、s3:对模型进行通道剪枝;
6、s4:训练剪枝后的ssd目标检测模型;
7、s5:对模型进行测试。
8、所述步骤s1具体包括以下步骤:
9、s1.1:选取pascal voc数据集中图像作为本实验的数据集,将数据集按一定比例划分为训练集和测试集;
10、s1.2:将数据集图像调整为统一尺寸300×300;
11、所述步骤s2具体包括以下步骤:
12、s2.1:将ssd的骨干网络vgg-16更换为densenet-s-32-1;
13、s2.2:将原ssd网络用来对象分类和位置回归的特征层与改进后的主干网络进行融合,组成特征融合模块;
14、s2.3:对特征图的先验框数量进行调整;
15、所述步骤s3使用基于通道注意力机制的通道剪枝算法对预训练模型进行剪枝,具体包括以下步骤:
16、s3.1:在算法的每个阶段,先构造通道注意力单元以及交叉熵损失lp、重构误差损失lm并将其放在第l层上,l层上增加的损失函数lp定义为:
17、
18、其中θ∈rn×m为全连接层的参数,n为全连接层的输入个数,m为预测类别数;
19、重构误差的表现形式是预训练模型特征图和剪枝后模型特征图之间的均方差,定义为:
20、
21、其中q=n×n×w×h,n为训练样本数,n为特征通道数,w、h分别为特征图的宽和高,obi,j为剪枝后的模型特征图,oi,j为预训练模型特征图;
22、s3.2:对lp、lm学习通道注意力单元的参数进行优化,当通道注意力单元得到充分训练后根据学习到的向量c进行通道选择;
23、s3.3:在完成该层卷积的通道选择后,重复上述操作,对下一卷积层进行剪枝;
24、s3.4:当完成一定层数剪枝后,使用最终损失lf对模型进行微调,进而更新其参数,最终损失lf同时考虑交叉熵损失和重构误差损失,具体定义如下:
25、lf=lm+λlp⑶
26、其中,λ为平衡因子,用于平衡两个参数的重要程度;
27、所述步骤s4具体包括以下步骤:
28、s4.1:设置训练参数,采用随机梯度下降优化算法进行模型训练,设置训练的批次大小batch为32,动量参数momentum为0.9,初始学习率为0.01,迭代次数epoch为300;
29、s4.2:将数据集中的训练集图像放入剪枝后的改进ssd目标检测模型中进行训练;
30、s4.3:根据设置的参数对模型进行训练,通过观察损失函数的变化趋势,调整模型训练的学习率,直到损失函数变化趋于稳定,得到最终训练模型;
31、所述步骤s5使用数据集中的测试集对训练后的基于densenet的ssd剪枝模型进行测试,通过测试数据来评估模型的性能,其评价指标有精确率、召回率、f1-score、map以及fps等,其中,fps即每秒传输帧数,模型的fps指数就是模型每秒能处理的图像个数,用来评价模型的检测速度性能;而f1-score是召回率与精确率平衡的指标,当两者都高的时候f1-score才会很高,其定义如下:
32、
33、map为所有类别图像的平均检测精度,可以衡量训练后得到的模型在所有类别上的综合表现,通过对比不同检测算法模型的map值可以判断出各检测模型在检测精度上的性能好坏。
34、本发明与现有技术相比,具有的有益效果如下:
35、本发明使用densenet-s-32-1替换原始骨干网络的vgg-16,在一定程度上减少了运算量,加快模型的检测速度,还通过对网络模型中的特定特征层进行特征融合有效提高网络模型对小目标的检测能力,最后对模型进行通道剪枝从而压缩模型大小,在损失一点点精度的同时大大提高了模型的检测速度。
1.一种基于densenet的ssd目标检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于densenet的ssd目标检测方法,其特征在于,所述步骤s1具体包括以下步骤:
3.根据权利要求1所述的一种基于densenet的ssd目标检测方法,其特征在于,所述步骤s2具体包括以下步骤:
4.根据权利要求1所述的一种基于densenet的ssd目标检测方法,其特征在于,所述步骤s3使用基于通道注意力机制的通道剪枝算法对预训练模型进行剪枝,具体包括以下步骤:
5.根据权利要求1所述的一种基于densenet的ssd目标检测方法,其特征在于,所述步骤s4具体包括以下步骤:
6.根据权利要求1所述的一种基于densenet的ssd目标检测方法,其特征在于,所述步骤s5使用数据集中的测试集对训练后的基于densenet的ssd剪枝模型进行测试,通过测试数据来评估模型的性能,其评价指标有精确率、召回率、f1-score、map以及fps等,其中,fps即每秒传输帧数,模型的fps指数就是模型每秒能处理的图像个数,用来评价模型的检测速度性能;而f1-score是召回率与精确率平衡的指标,当两者都高的时候f1-score才会很高;map为所有类别图像的平均检测精度,可以衡量训练后得到的模型在所有类别上的综合表现,通过对比不同检测算法模型的map值可以判断出各检测模型在检测精度上的性能好坏。