发明内容
有鉴于此,本发明提出了基于深度学习的复杂背景下典型目标检测方法、系统、设备及存储介质,用于解决现有图像目标检测中复杂的图像背景严重影响目标检测效果的问题。
本发明第一方面,公开一种基于深度学习的复杂背景下典型目标检测方法,所述方法包括:
收集包含典型目标的图像数据并进行预处理,制作数据集;
通过backbone网络、双向多尺度特征融合网络、基于注意力机制的多特征选择模块、分类子网络和回归子网络构建目标检测网络模型;
基于分类任务和回归任务设计损失函数,通过所述数据集训练和测试目标检测网络模型;
通过测试后的目标检测网络模型对待测图像进行典型目标检测。
优选的,所述典型目标包括但不限于飞机、船舶、存储罐、桥梁、小型车辆、大型车辆。
优选的,所述目标检测网络模型中,将backbone网络与双向多尺度融合特征网络进行融合,组成特征融合网络,用于进行多尺度融合特征图提取,多尺度融合特征图提取的具体步骤包括:
利用backbone网络提取图像的特征图;
对特征图进行自上而下路径的特征融合,得到同时包含低层细节信息和高层语义信息的融合特征图;
对融合特征图进行自下而上路径的特征融合,以控制浅层特征传递到高层过程中的特征损失,得到多尺度融合特征图。
优选的,所述目标检测网络模型中,利用基于注意力的多特征选择模块对多尺度融合特征图进行分类特征选择和回归特征选择,得到分别用于分类和回归的特征图;基于注意力的多特征选择模块的输入是特征融合网络输出的多尺度融合特征图Pi'(i=3,4,5,6,7,网络的输出是与输入维度相同的一系列特征图Di(i=3,4,5,6,7),其处理过程如下公式所示:
Ai=σ[φi(Pi')]
Di=Ai⊙Pi'+Pi'
φ(Pi')为Pi'通过四层3×3的卷积得到,σ为Sigmoid函数,Ai为元素在0~1之间的矩阵,⊙表示矩阵对应元素相乘计算。
优选的,所述分类任务包括两个,对anchor box所属目标类别进行分类、对anchorbox的角度进行分类;所述回归任务包括对anchor box的中心点(x0,y0)、宽度w、高度h进行回归。
优选的,对anchor box的角度进行分类的具体处理过程为:
将角度预测当作分类问题,将角度分为180个类别;
采用圆形平滑标签CSL对角度类别标签分布向量进行平滑处理,CSL如下式表示:
上式中r是窗半径,θ是当前Ground Truth的角度,g(x)是窗函数。
优选的,所述基于分类任务和回归任务设计损失函数具体包括:
采用Focal loss作为目标类别分类损失函数Lcls;
采用Focal loss作为角度分类损失函数Lcls_θ;
Smooth L1 loss作为回归损失函数Lreg;
总的损失函数如下所示:
上式中,N代表目标检测网络模型产生的anchor box的数量,t'n∈{0,1},当t'n=0时代表背景,当t'n=1时代表前景;V'nj代表预测的偏移向量;Vnj代表真实的偏移向量;tn代表目标类别标签,pn是目标属于不同类别的概率;θ′n为角度类别标签,θn是角度属于不同类别的概率,λ1和λ2是权重因子。
本发明第二方面,公开一种基于深度学习的复杂背景下典型目标检测系统,所述系统包括:
数据准备模块:收集包含典型目标的图像数据并进行预处理,制作数据集;
模型构建模块:通过backbone网络、双向多尺度特征融合网络、基于注意力机制的多特征选择模块、分类子网络和回归子网络构建目标检测网络模型;
模型训练模块:基于分类任务和回归任务设计损失函数,通过所述数据集训练和测试目标检测网络模型;
目标检测模块:通过测试后的目标检测网络模型对待测图像进行典型目标检测。
本发明第三方面,公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;
其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现如本发明第一方面所述的方法。
本发明第四方面,公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机实现如本发明第一方面所述的方法。
本发明相对于现有技术具有以下有益效果:
1)本发明设计了多尺度特征融合网络,融合深浅层信息,该特征融合网络在保留常规特征金字塔自上而下路径的同时,增加一条自下而上的路径,减少浅层特征传递到顶层时经历的网络层数,从而控制浅层特征损失;本发明充分利用高层语义特征和浅层细节信息,能够精确检测多尺度典型目标,提高复杂背景下小目标的检测效果,能有效抑制无关背景的影响,提高检测准确率;
2)为了降低多尺度特征图中无用信息对后续分类和回归子网络的干扰,本发明设计了基于注意力机制的多特征选择模块,该模块使得网络自适应地关注于适合分类或回归的特征,忽略无用特征,多尺度特征图经过多特征选择模块特征选择后再进行后续的分类和回归,以此提高检测精度。
3)针对传统的五参数回归法在预测角度时存在严重的边界问题,本发明将角度预测当作分类任务处理,并基于分类任务和回归任务设计综合损失函数,提高方向任意性目标的检测精度,可精确预测长宽比值比较大的目标,本发明能够应用在各种影像典型目标检测中。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
请参阅图1,本发明提出一种基于深度学习的复杂背景下典型目标检测方法,所述方法包括:
S1、收集包含典型目标的图像数据并进行预处理,制作数据集;
具体的,收集大量含有典型目标的图像数据,所述典型目标包括但不限于飞机、船舶、存储罐、桥梁、小型车辆、大型车辆。挑选2/3作为训练样本集,剩余1/3作为测试样本集。对样本图像数据进行预处理,包括样本图像数据进行裁剪,裁剪为600×600像素大小,并有200像素的重合,制作标签,组成数据集。标签包括矩形标签框的中心坐标、高度、宽度、目标类别、角度类别。
S2、通过backbone网络、双向多尺度特征融合网络、基于注意力机制的多特征选择模块、分类子网络和回归子网络构建目标检测网络模型;
本文提出目标检测网络模型的网络结构如图2所示,其包含四个部分,backbone网络、双向多尺度特征融合网络、基于注意力机制的多特征选择模块和分类回归子网络。可以使用ResNet50、ResNet101、ResNet152等ResNet网络作为backbone网络。双向多尺度特征融合网络负责融合backbone网络输出的高层语义信息和浅层细节信息,得到特征融合网络,通过特征融合网络可以得到多尺度特征图,但是这些特征图中含有许多复杂的背景信息。基于注意力机制的多特征选择模块可以选择适用于分类和回归的特征,忽略无用特征。最后将经过特征选择的多尺度特征图分别输入到分类子网络和回归子网络中,其中回归子网络,负责边界框中心点坐标、宽度和高度进行回归。通过分类子网络进行目标类别预测和角度信息预测。
下面对目标检测网络模型的构建步骤及各个部分的实现原理做具体说明。
S21、将backbone网络与双向多尺度融合特征网络进行融合,组成特征融合网络,用于进行多尺度融合特征图提取。
多尺度融合特征图提取的具体步骤包括:
利用backbone网络提取图像的特征图;具体可利用ResNet网络如ResNet50、ResNet101、ResNet152等作为backbone网络。
对backbone网络输出的特征图进行自上而下路径的特征融合,得到同时包含低层细节信息和高层语义信息的融合特征图;
对融合特征图进行自下而上路径的特征融合,以控制浅层特征传递到高层过程中的特征损失,得到多尺度融合特征图。
双向多尺度融合特征网络如图3所示。虚线框住部分,1×1Conv代表利用1×1的卷积核进行卷积操作,用于改变特征图的通道数目,2×UpSample代表利用双线性插值对特征图进行二倍上采样操作。3×3/2Conv代表利用3×3卷积核进行步长为2的卷积操作,将特征图的尺寸缩小为原来的1/2。
设backbone网络的输出为Ci(i∈{3,4,5}),经过特征融合的特征图为Pi(i∈{3,4,5,6,其中C5经过1×1的卷积降维得到P5,P5经过二倍下采样得到P6,P6经过二倍下采样得到P7,C4与P5二倍上采样的结果融合得到P4,C3与P4二倍上采样的结果融合得到P3。Pi(i∈{3,4,5,6,7)同时融合了C3、C4、C5的信息,同时包含了低层细节信息和高层语义信息,虽然对多尺度目标具有较强的表征能力,但是浅层特征传递到高层路径过长,特征损失严重。因此,为了控制浅层特征传递到高层过程中的特征损失,本发明增加了一条自下而上的路径,减少浅层特征传递到顶层时经历的网络层数,从而控制浅层特征损失;如图3所示,其中3×3Conv代表利用3×3的卷积核进行步长为1的卷积操作。P3经过3×3卷积操作得到P3'。P4经过3×3卷积的结果与P3'二倍下采样的结果相加再经过3×3卷积得到P4',然后以相同方式分别得到P5'、P6'和P7',即:P5经过3×3卷积的结果与P4'二倍下采样的结果相加再经过3×3卷积得到P5',P6经过3×3卷积的结果与P5'二倍下采样的结果相加再经过3×3卷积得到P6',P7经过3×3卷积的结果与P6'二倍下采样的结果相加再经过3×3卷积得到P7'。
本发明通过特征融合网络充分利用高层语义特征和浅层细节信息,能够精确检测多尺度典型目标,提高复杂背景下小目标的检测效果,能有效抑制无关背景的影响,提高检测准确率;
S22、利用基于注意力的多特征选择模块对多尺度融合特征图进行分类特征选择和回归特征选择,得到分别用于分类和回归的特征图;
基于注意力的多特征选择模块的输入是特征融合网络输出的多尺度融合特征图Pi'(i=3,4,5,6,7),输出是与输入维度相同的一系列特征图Di(i=3,4,5,6,7),对于输入的每一个Pi'(i=3,4,5,6,7)的处理过程如图4所示。Pi'通过四层的3×3卷积得到φ(Pi')。然后通过Sigmoid函数将φ(Pi')中的值转化为0~1得到Ai,这样在训练的时候能够更快收敛。最后将Pi'和Ai对应元素相乘,然后再与Pi'相加。相乘操作可以使得Pi'中含有有用信息区域中的值更大,无用信息的值更小。基于注意力的多特征选择模块可以使得网络自适应的选择特征图中适合分类/回归的特征,忽略无用特征,多尺度特征图经过多特征选择模块特征选择后再进行后续的分类和回归,以此提高检测精度。
其处理过程如以下公式所示:
Ai=σ[φi(Pi')]
Di=Ai⊙Pi'+Pi'
上式中,φ(Pi')为Pi'通过四层3×3的卷积得到,σ为Sigmoid函数,Ai为元素在0~1之间的矩阵,⊙表示矩阵对应元素相乘计算。
S23、通过分类子网络进行目标类别预测和角度信息预测,通过回归子网络进行边界框中心点坐标、宽度和高度进行回归。
具体的,所述分类子网络的分类任务包括两个,对anchor box所属目标类别进行分类、对anchor box的角度进行分类;所述回归子网络的回归任务包括对anchor box的中心点(x0,y0)、宽度w、高度h进行回归。
传统的五参数法定义边界框存在边界问题,在实际检测过程中会有一些检测框的角度和目标实际角度相差较大,IOU非常小。本发明将角度预测当作分类问题,提高方向任意性目标的检测精度,可精确预测长宽比值比较大的目标,首先将角度分为180类,分别为[-90°,-89°,-88°,……,88°,89°],如果一个ground truth的角度为-90°,那么其角度的标签真值向量为[1,0,0,……,0,0]。有两个预测标签向量,Predict1为[0.1,0.9,0,……,0,0](第1元素的值为0.1,第2个元素的值为0.9,其余值全为0),Predict2为[0.1,0,0,……,0.9,……,0,0](第1元元素的值为0.1,第46个元素的值为0.9,其余值全为0)。以交叉熵损失函数(Cross Entropy Loss)为例分别计算Predict1和Predict2的损失,如下式。
Losspredict1=-1×log(0.1)
Losspredict2=-1×log(0.1)
通过计算发现Losspredict1=Losspredict2,虽然两个预测的标签分布的Loss是一样的,但是两个标签与ground truth的标签真值向量的“实际距离”是不一样的。第一个预测值Predict1最终得到的角度为-89°,与ground truth的0°相比十分接近。第二个预测值Predict2最终得到的角度为-45°,与ground truth的0°相比差距很大。另外,如果预测的标签分布为[0,1,0,……,0,0],或者[0,0,0,……,0,1]也是可以接受的,因其与真实值只有1°的偏差。这说明直接将角度预测问题分为180个角度类别是不合适的。因此,本发明对anchor box的角度进行分类的具体处理过程为:
将角度预测当作分类问题,将角度分为180个类别;
采用圆形平滑标签(circular smooth label,CSL)对标签分布向量进行平滑处理,CSL如下式表示:
上式中,r是窗半径,θ是当前Ground Truth的角度,g(x)是窗函数。每个GroundTruth的圆形平滑标签是不同的。g(x)是窗函数,这里使用的是二维高斯函数,如下式表示:
上式中a、b、c为常数,且a>0。在本文实验中,a=1、均值b=0、标准差c=r=6。所示。以-90°的标签分布为例,其原本标签分布向量为[1,0,0,0,0,0,0,0,……,0,0,0,0,0,0],其经过CSL处理后的标签分布向量为d[1,0.857,0.714,0.571,0.428,0.285,0.142,0,……,0,0.142,0.285,0.428,0.571,0.714,0.857]。那么网络在训练时,只需预测的标签分布向量与d之间的损失越来越小即可。
S3、基于分类任务和回归任务设计损失函数,通过所述数据集训练和测试目标检测模型;
所述基于分类任务和回归任务设计损失函数具体包括:
采用Focal loss作为目标类别分类损失函数Lcls;
采用Focal loss作为角度分类损失函数Lcls_θ;
Smooth L1 loss作为回归损失函数Lreg;
基于目标类别分类损失函数Lcls、角度分类损失函数Lcls_θ、回归损失函数Lreg计算总的损失函数L,总的损失函数如下所示:
上式中,N代表目标检测网络模型产生的anchor box的数量,t'n∈{0,1},当t'n=0时代表背景,当t'n=1时代表前景;V'nj代表预测的偏移向量;Vnj代表真实的偏移向量;tn代表目标类别标签,pn是目标属于不同类别的概率;θ′n为角度类别标签,θn是角度属于不同类别的概率,λ1和λ2是权重因子,控制不同损失函数的权重。
根据数据集实际情况选择合适的超参数,利用GPU加速训练。利用tensorboard可视化训练过程,观察损失函数收敛情况,当损失函数收敛后,保存模型。
利用测试集对训练后的模型性能评价,选择AP(Average Precison)和mAP(meanAverage Precison)作为模型的性能指标;测试集样本输入到目标检测网络模型中,计算出每幅图像中postivate目标的坐标、置信度、所属类别,利用开源测试脚本进行测试,得出模型各类目标的AP和mAP。
本发明在各种数据集上进行测试,选择各种主流目标检测算法评估本发明的性能。本发明一个实施例实验用的显卡型号为GTX1660Ti,6G显存,使用的操作系统为Ubuntu16.04,使用的深度学习学习框架为Tensorflow,采用ResNet50作为网络的Backbone,分别在DOTA数据集和自制数据集DOTA-GF据集上进行实验。表1为在DOTA数据集上的测试结果。表2为在自制数据集DOTA-GF数据集上的测试结果。
表1不同算法在DOTA数据集上的对比结果
表2不同算法在DOTA-GF数据集上的对比结果
从表中数据可以看出本发明无论是DOTA数据集上,还是在DOTA-GF数据集上本发明在飞机、船只、桥梁、大型汽车、小型汽车、存储罐这些典型目标检测效果上具有一定的优势,且通用性更好。
S4、通过测试后的目标检测模型对待测图像进行典型目标检测。
与所述方法实施例相对应,本发明还提出一种基于深度学习的复杂背景下典型目标检测系统,所述系统包括:
数据准备模块:收集包含典型目标的图像数据并进行预处理,制作数据集;
模型构建模块:通过backbone网络、双向多尺度特征融合网络、基于注意力机制的多特征选择模块、分类子网络和回归子网络构建目标检测模型;
模型训练模块:基于分类任务和回归任务设计损失函数,通过所述数据集训练和测试目标检测模型;
目标检测模块:通过测试后的目标检测模型对待测图像进行典型目标检测。
本发明还公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现本发明前述的基于深度学习的复杂背景下典型目标检测方法的步骤。
本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机实现本发明实施例所述基于深度学习的复杂背景下典型目标检测方法的全部或部分步骤。所述存储介质包括:U盘、移动硬盘、只议存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以分布到多个网络单元上。可以根据实际的衙要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。