1.本发明涉及图像处理及机器视觉技术领域,特别涉及一种无人机侦查地面目标的轻量化自动检测方法。
背景技术:2.近年来,无人机作为一支新兴作战力量,在智能化作战条件下发挥了不可替代的作用,大力发展无人机装备技术,对于提升部队作战能力具有重大的战略意义。目标自动检测技术作为无人机执行侦察打击任务的关键技术之一,能够为无人机视觉导航、目标跟踪、目标定位和精准打击等技术提供强大支持。高效准确的检测算法,可以有效减轻地面操作人员的负担,提高侦查能力以及快速响应作战效能。
3.传统的无人机航拍图像目标检测算法需要对图像进行预处理,然后对整幅图像进行滑动窗口遍历操作,通过初步判断目标可能会出现的位置,人工设计侦搜目标的某种特征,如常见的方向梯度直方图(hog,histogram of oriented gradient)特征、尺度不变特征变换(sift,scale
‑
invariant feature transform)特征、哈尔特征(haar
‑
link feature)和加速稳健特征(surf,speeded up robust feature)等,最后将特征送入支持向量机(svm,support vector machine)或adaboost分类器进行分类,完成检测任务。但是人工设计特征存在很大弊端,在设计过程中会过于依赖以往经验,且算法在陌生场景下的表现效果不好,检测算法的稳健性不强,极大地阻碍了检测算法的应用。
4.卷积神经网络在网络层次和单层网络的通道数上,均是深度的,都存在大量需要处理的数据。卷积神经网络90%以上的计算需求来自于立体卷积算子(三维),立体卷积算子需要对网络中的全部数据逐点进行立体卷积运算,cpu承受如此巨大的计算量时计算效率非常低下。
5.在无人机视频图像处理系统中,对侦查地面目标的自动检测技术目前面临以下问题:
6.1)传统目标检测算法通过滑窗遍历的方式整幅图像来检索目标,既影响了检测效率,又影响了检测准确度,在现有硬件处理基础上,难以保证实时性;
7.2)网络训练消耗过大,模型训练代价过高;
8.3)受cpu硬件条件限制,无法在有限资源条件下充分发挥算法优势,计算资源分配不合理,造成计算效率低下。
技术实现要素:9.针对基于无人机视频图像特点和国内现有技术在无人机侦察地面目标检测方面的缺陷,统筹算法性能和部署适应性,本发明所要解决的技术问题为如下技术问题至少之一:
10.1、传统目标检测算法滑窗遍历整幅图像的特征提取和准确度问题;
11.2、传统深度学习算法模型较大难以在嵌入式设备中部署的问题;
12.3、计算资源分配不合理,计算效率低,难以进行多硬件并行计算的问题;
13.4、待检测目标像素数较少,纹理不明显,容易引起误检或漏检的问题;
14.5、检测过程的实时性问题。
15.本发明采用如下技术方案:
16.一种无人机侦查地面目标的轻量化自动检测方法,所述方法包括:
17.s1、模型建立与训练:采用改进后的ssd算法对无人机侦查图像进行特征提取、标注框框回归和类别预测,完成模型训练;所述改进后的ssd算法为采用squeeze net替换vgg16作为前置基础网络,对目标图像进行特征提取;squeeze net增加若干个卷积层;
18.s2、利用训练好的模型对无人机侦查图像进行目标检测。
19.进一步的,步骤s1的具体步骤如下:
20.s1.1将无人机侦查图像输入用用squeeze net替换vgg16后的ssd算法进行特征提取;
21.s1.2基于ssd算法内的多尺度检测,对所述无人机侦查图像中的目标进行检测和标识,得到候选区域;
22.s1.3根据所有候选区域的分类得分,通过非极大值抑制筛选出最终的目标区域。
23.进一步的,在模型训练时,采用多硬件并行计算;所述多硬件包括arm、gpu、npu。
24.进一步的,在步骤s1中,npu处理常规卷积和全连接的计算,aru处理数据缩放和数据映射,cpu处理剩余的数据计算。
25.进一步的,模型训练时进行整数量化,用浮点保存定点参数,使用int8代替原权重所用的float32。
26.进一步的,步骤s1中,squeeze net中增加2个卷积层fire10和fire11,选用4个卷积层fire5、fire9、fire10、fire11输出的特征图进行分类和检测框的回归计算。
27.一种实现上述无人机侦查地面目标的轻量化自动检测方法的信息数据处理终端。
28.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的无人机侦查地面目标的轻量化自动检测方法。
29.本发明的有益效果为:
30.1)本发明运行效率高,仅使用显卡gtx1050的条件下,在分辨率1920*1080的视频图像上的运算时间为20ms,可以进行实时处理。
31.2)本发明将squeeze
‑
net算法作为网络前置算法对目标进行特征提取,避免了检测算法因滑窗尺寸、步长不能无级变化或目标特征不明显引起的漏检或误检,增加了检测的准确率。
32.3)本发明训练网络模型时进行整数量化,使用int8代替原权重所用的float32,获得近4倍的网络加速,且在减小尺寸的同时保证检测准确率。
33.4)本发明融合arm、gpu、npu共同推理,将计算资源合理分配,实现多硬件并行计算,提升计算效率。
附图说明
34.图1所示为本发明实施例一种无人机侦查地面目标的轻量化自动检测方法的训练流程图。
35.图2所示为fire module结构图。
36.图3所示为实施例中squeeze
‑
ssd特征金字塔结构示意图。
具体实施方式
37.下文将结合具体附图详细描述本发明具体实施例。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。
38.本发明采用基于squeeze
‑
ssd目标检测算法和多硬件协同量化训练的相结合的方式来完成无人机侦察地面目标的自动检测。其中,首先采用基于训练时整数量化及多硬件协同计算的目标检测模型训练方案,其次采用训练好的基于squeeze
‑
ssd模型对无人机侦察视频图像进行目标检测。算法训练总体流程如图1所示。
39.算法可归纳为以下步骤:
40.1)将图像输入用squeeze net替换vgg16后的ssd算法进行特征提取;
41.2)基于ssd算法内的多尺度检测思想,对无人机侦搜图像中的目标进行检测和标识;
42.3)对可能存在目标的标注框进行非极大值抑制,消除同一目标的多余标注框,降低算法的误检率;
43.4)利用训练时量化缩小模型体量,减少模型参数;
44.5)利用npu处理常规卷积和全连接的计算,不占用cpu的资源。将数据缩放和数据映射的相关计算分配给apu,其余数据形状变换类使用cpu计算。从硬件利用布局和资源分配层面提升计算效率。
45.下面结合流程图对算法实施过程中涉及的关键技术进行详细说明。
46.一、squeeze net网络结构
47.轻量级卷积神经网络squeezenet的特点在于fire module结构,fire module结构如图2所示,该结构由squeeze层和expand层构成。其中,squeeze层全部为尺寸是1
×
1的卷积核,特征图经过squeeze层后,特征通道数减少,且相比于尺寸是3
×
3的卷积核参数量减少了8/9。同时,squeeze层的输出将作为expand层的输入,通道数的减少将使整个网络的参数量大幅度减少;expand层中包含1
×
1的卷积核和3
×
3的卷积核,特征图分别经过两种卷积核后通过concat操作输出,特征图在经过fire module结构后,其尺寸不会发生变化,但是相较于特征图只经过一种3
×
3卷积核后,其尺寸不变但参数量得到了很大的缩减,这是squeeze net被本发明做为检测网络前端特征提取网络的根本原因。
48.二、无人机侦察图像目标检测原理
49.ssd算法在目标检测任务中采用多尺度的特征图进行预测,同时将在多个特征层中进行预测框的回归和类别预测,ssd算法的核心理念可以总结为以下3点。
50.(1)不同尺度特征图产生先验框
51.在卷积神经网络结构中,由于卷积和池化操作,特征图的尺寸会随着网络的加深而不断变小。浅层卷积层分辨率高,提取的特征包含更多的细节信息,如边缘、形状等几何信息;深层卷积层分辨率低,提取的特征包含更多的语义信息,所表达的信息更抽象。由于在检测任务中目标尺寸不同,如果仅使用浅层卷积层的特征信息进行预测,会使得小目标
的检测效果不好,因此,ssd算法采用多尺度特征图进行预测,即利用具有较大感受野的深层卷积特征预测大目标,利用具有较小感受野的浅层卷积特征预测小目标,这也正好符合本发明在无人机航拍视频中侦搜目标的特点。
52.(2)利用卷积层完成检测,摒弃全连接层
53.在目标检测算法的研究过程中,网络中的全连接层并没有被舍弃,导致网络中的参数量很大,参数过多使得特征无法有效向后传递且模型的训练较困难。因此,ssd算法将原来的全连接层改为卷积层,同时在网络后增加若干个卷积层,更有利于图像数据中特征的表达。
54.(3)根据任务设置先验框
55.ssd算法继承了faster r
‑
cnn中anchor的概念,以每个特征层为单元设置不同尺度、不同长宽比的先验框,在训练时比较预测边界框与先验框之间的位置差异,计算两者的损失函数。先验框的生成规则为:首先以每个单元的中心为准,生成矩形框,其中正方形先验框的边长最小值为min_size,最大值为然后在网络中配置一个参数为纵横比(aspect_ratio),并结合上述的最小值和最大值得到两个矩形框的长和宽,分别为和每个特征图中的最大值和最小值由式(1)确定。
[0056][0057]
其中,m表示特征图个数,k的取值范围是1~m,s
k
表示先验框大小相对于图片的比例,s
min
和s
max
分别表示比例的最小值和最大值。
[0058]
ssd算法会在多个尺度的特征图上生成不同尺寸的先验框,将这些先验框和预测框进行匹配并计算,实现正、负样本的划分,最终完成训练,更新了模型中的参数。
[0059]
三、squeeze net与ssd算法融合
[0060]
ssd算法由基础网络、检测网络和分类网络3部分组成,squeeze net与ssd算法融合首先将检测算法的基础网络由vgg(visual geometry group)替换为squeeze net,使得整个检测架构的参数量大幅度减少。在上节提到了ssd检测算法需要对尺度特征图进行检测,因此,特征层的选取很关键。根据原始ssd算法的设计理念,本发明在squeeze net的基础上增加了fire10和fire11两个卷积层,并且选用fire5、fire9、fire10和fire11这4个卷积层输出的特征图进行分类和检测框的回归计算。
[0061]
在一个具体实施例中,原squeezenet的流程如下(序号代表流程先后):
[0062]
(1)conv1卷积层:输入是224
×
224
×
3,输出是111
×
111
×
96,卷积核7
×
7,步长为2,用于特征提取,局部感知,参数共享。
[0063]
(2)maxpool1池化层:输入111
×
111
×
96,输出55
×
55
×
96,卷积核3
×
3,步长为2,池化层也叫子采样层,用于特征选择,降低特征数量,并从而减少参数数量。maxpool是最大池化,取4个特征值中最大值作为新的特征值。
[0064]
(3)fire2:输入55
×
55
×
96,输出55
×
55
×
128。由squeeze部分和expand部分组成。squeeze部分是一组连续的卷积组成,expand部分则是由一组连续的卷积和一组连续的卷积cancatnate组成。
[0065]
(4)fire3:输入55
×
55
×
128,输出55
×
55
×
128。
[0066]
(5)fire4:输入55
×
55
×
128,输出55
×
55
×
256。
[0067]
(6)maxpool4池化层:输入55
×
55
×
256,输出27
×
27
×
256,卷积核3
×
3,步长为2。
[0068]
(7)fire5:输入27
×
27
×
256,输出27
×
27
×
256。
[0069]
(8)fire6:输入27
×
27
×
256,输出27
×
27
×
384。
[0070]
(9)fire7:输入27
×
27
×
384,输出27
×
27
×
384。
[0071]
(10)fire8:输入27
×
27
×
384,输出27
×
27
×
512。
[0072]
(11)maxpool8池化层:输入27
×
27
×
512,输出13
×
12
×
512,卷积核3
×
3,步长为2。
[0073]
(12)fire9:输入13
×
12
×
512,输出13
×
13
×
512。
[0074]
(13)conv10卷积层:输入是13
×
13
×
512,输出是13
×
13
×
1000,卷积核1
×
1,步长为1。
[0075]
(14)avgpool10池化层:输入是13
×
13
×
1000,输出1
×1×
1000,卷积核13
×
13,步长为1。取4个特征值的平均值作为新的特征值。
[0076]
用squeezenet代替vgg16后的squeeze
‑
ssd流程修改如下:
[0077]
在squeezenet原网络的fire9之后删去原有的网络结构,添加了maxpool10,fire10和两个卷积层(conv12和13)对接原有ssd网络第5个block的第四层之后的部分。将conv10卷积层提取的特征继续做最大池化和卷积操作。
[0078]
其中,fire层4.5.8.9.10以及卷积层conv12和13的第二层作为生成预测框的多层级结构被连接,各层先验框数量都为6,卷积核大小都为3
×
3。当生成每个层级的先验框和4个参数(x,y,w,h)之后,将结果进行堆叠。每个网格的中心点加上它对应的x_offset和y_offset,加完后的结果就是预测框的中心,然后再利用先验框和h、w结合计算出预测框的长和宽。最终输出整个预测框的位置和置信度,再经过nms滤除多余检测框。
[0079]
本文虽然已经给出了本发明的几个实施例,但是本领域的技术人员应当理解,在不脱离本发明精神的情况下,可以对本文的实施例进行改变。上述实施例只是示例性的,不应以本文的实施例作为本发明权利范围的限定。