1.论文的创新点
针对目前红外小目标检测算法在复杂背景下检测准确率低,虚警率高等缺点,提出一种基于多尺度特征融合的端到端红外小目标检测模型**(multi-scale feature fusion single shot multibox detecto,MFSSD)。该模型由三部分组成:特征提取,SP模块,FFM模块,同时采用sub-pixel convolutional layer和pathway layer来取代上采样和下采样。
2.实现方法
在特征提取部分,采用SSD算法主干网络,FFM模块主要由sub-pixel convolutional layer和pathway layer组成,通过融合浅层和深层网络的特征图提取纹理信息和语义信息,并在每个融合模块后添加SP模块,通过学习各个特征图通道的权重,可以自动对特征图通道进行权重分配,更准确地提取出目标的详细信息。下面将对各个模块进行详细介绍。
2.1 MFSSD网络结构框架
图1 MFSSD网络结构框架
首先将红外图像输入到VGG16网络中,生成6个不同尺寸的特征图S1,S2,S3,S4,S5,S6,后接4个融合模块,如上图所示,每三个特征图作为融合的输入,然后再在S1,S6以及四个融合模块的输出的后面加上SP模块,生成P1到P6的6个特征图,然后再进行损失计算和目标检测以及非极大抑制。
图2 特征图调整过程
采用pathway layer 和sub-pixel convolution layer来代替下采样和上采样,如图2。该方法主要通过重新排列像素来完成相应的过程,sub-pixel convolution layer是将低分辨率特征图作为输入,通过卷积核的多通道像素重组,得到高分辨率的特征图。它可以将低分辨率的特征图N*(C* r* r)* W* H转换成高分辨率的特征图N* C* (H* r)* (W* r)。在pathway layer 中,两个相邻的像素放置在不同的通道中以实现下采样操作,将高分辨率特征图转化为低分辨率特征图,其中,N, C, W, H, r分别表示图像的个数、通道、宽度、高度以及上采样或下采样的倍数。
2.2 FFM模块
图3 FFM模块网络结构图
高分辨率特征图清晰显示了大型目标的特征,适合于目标定位。低分辨率特征图包含更多的纹理信息,适合于目标分类。如图3 所示,详细介绍了特征融合模块的结构,S1、S2、S3为骨干网直接输出的低分辨率到高分辨率的原始特征图,P2 为特征融合后的特征图。
首先,S1 使用sub-pixel convolution layer通过像素重排从而获得S1_up,然后S3 使用pathway layer通过像素重排从而获S3_down,其中S1_up,S3_down 和S2 的大小是相同的,然后拼接S1_up、S3_down 和S2 的通道得到特征图C2;然后,利用1*1 卷积核,将特征图C2 中的通道数量缩减为与特征图S2 相同的一组通道,得到用于目标分类和定位的P2 特征图。
sub-pixel convolutional layer和pathway layer可以通过梯度更新自动学习映射关系。然后使用卷积层对用于检测的特征图的通道进行调整,保持与融合前的特征图相同的通道数量。因此,该特征融合模块在检测红外小目标方面具有更强的优势。
2.3 SP模块
图4 SP模块网络结构
为了更好地增加模型对通道信息的关注,在FFM模块之后加上SP模块,该模型结构可以通过特征通道的权值自动获取更适合红外小目标检测的特征信息。如图4所示,该模块的输入尺寸为W* H* C,然后经过平均池化,压缩为1* 1* C,再依次经过1* 1*(C/16) 的卷积核和1* 1* C的卷积核降维和增维。为每个特征通道生成一个权值,提高特征图通道之间的相关性。最后再通过上采样获得与输入特征图大小相同的Y1,然后将Y1添加到Y0中,来增加原有的特征信息。
3.实验结果分析
表1 数据集构成
,共计1497幅图像,随机选取1297张为训练集,200张为测试集。batch设为32,初始学习率为0.0005,每迭代50次学习率减少10,迭代次数为200次。在SSD算法的基础上,不断优化改进,提出4 种算法进行对比。如下图。
表2 实验五种算法
表3 五种算法性能对比
由实验结果可知,模型2采用插值法和最大池化法构建特征融合模块,与模型1相比,精度提高了3%,然后模型3采用sub-pixel convolution layer 和pathway layer,与模型1相比提升了3.7%,与模型2相比提升了0.7%。模型3和模型5对比,可以看到增加了SP模块之后,检测精度提高了1.6%,可见SP模块的有效性。SP模块通过增加少量计算量,自动提高有用信息的表达能力,抑制无用信息。
4. 附加内容
4.1 检测精度和召回率的计算
假设有一个测试集由飞机和大雁两种图片组成,如下图:
假设你的分类系统最终的目的是:能取出测试集中所有飞机的图片,而不是大雁的图片,那么在这个任务中,飞机就是正例,大雁就是反例。
现在做如下的定义:
True positives: 飞机的图片被正确的识别成了飞机。
True negatives: 大雁的图片没有被识别出来,系统正确地认为它们是大雁。
False positives: 大雁的图片被错误地识别成了飞机。
False negatives: 飞机的图片没有被识别出来,系统错误地认为它们是大雁。
Precision其实就是在识别出来的图片中,True positives所占的比率:
precision =
Recall 是被正确识别出来的飞机个数与测试集中所有飞机的个数的比值:
recall =
Recall的分母是(True positives + False negatives),这两个值的和,可以理解为一共有多少张飞机的照片。
4.2 sub-pixel convolution layer(子像素卷积)
sub-pixel convolution layer是一种巧妙的特征图上采样的方法,常用在超分辨率中。
上图很直观的表达了子像素卷积的做法,前面是卷积网络,后面彩色部分就是子像素卷积了。假设把原图放大3倍,那么就需要生成=9个同样大小的特征图,然后将其拼成一个超分辨率的大图。