CN111274893A - 基于部件分割与特征融合的飞行器图像细粒度识别方法 - Google Patents
基于部件分割与特征融合的飞行器图像细粒度识别方法 Download PDFInfo
- Publication number
- CN111274893A CN111274893A CN202010038491.4A CN202010038491A CN111274893A CN 111274893 A CN111274893 A CN 111274893A CN 202010038491 A CN202010038491 A CN 202010038491A CN 111274893 A CN111274893 A CN 111274893A
- Authority
- CN
- China
- Prior art keywords
- feature
- aircraft
- image
- key point
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/13—Satellite images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Astronomy & Astrophysics (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公布了一种基于部件分割与特征融合的飞行器图像细粒度识别方法,目的是解决现有图像识别***不能从部件级别提取特征导致识别类别不多的问题。技术方案是先构建由关键点检测子***、共享特征抽取器、部件特征生成器、特征融合子***、损失函数模块构成的基于部件分割与特征融合的飞行器遥感图像细粒度识别***;构建数据集;训练识别***;利用训练好的识别***进行识别,识别时关键点检测子***对6个关键点精准定位,共享特征抽取器对飞行器整体特征进行完整抽取,部件特征生成器快速准确地获得4个部件的特征子图,特征融合子***提取各部件的内部特征并将这些特征融合。采用本发明能从部件级别提取特征,使得识别类别多且准。
Description
技术领域
本发明涉及图像识别领域,特别涉及一种基于部件分割与特征融合的飞行器图像(主要指遥感图像)细粒度识别方法。
背景技术
随着空间技术的发展,遥感图像已经成为一种对资源、环境、城市布局、交通设施等进行调查、监测的有效手段。飞行器类型识别作为遥感图像识别的一个子任务,具有非常大的现实需求和应用价值。飞行器类型识别主要包括基于手工特征的方法和基于深度学习的方法。
传统的飞行器识别方法主要基于手工特征,通过算法提取图像的纹理、色彩、几何外形等特征,并进行一定的推理来实现飞行器的分类。此类方法提取目标的旋转不变特征如Hu矩阵、Zernike矩阵、wavelet矩、傅里叶描述子、SIFT等,并通过一定的阈值门限分割出目标的整体外形,然后利用抽取的特征与参数化的外形模板进行匹配。为了更好地利用飞行器的对称性等外形特征,在进行模板匹配之前,可以先对图像进行姿态对齐。然而这些方法需要大量的人工特征设计,特征设计或模板设计的质量直接影响识别的准确性,实际应用价值有限。
基于深度学习的方法通过搭建神经网络进行类型识别。神经网络由卷积层、池化层、全连接层和激活层等结构组成,通过这些网络层的多次叠加逐步提取出图像中的低级纹理、中间特征及高级语义信息,最终输出图像对应的类别概率。该方法相比基于手工特征的识别方法具有更好的拟合能力、鲁棒性和准确性,越来越多的飞行器遥感图像开始采用深度神经网络来处理和识别,目前已经有多层感知机、BP神经网络、卷积神经网络(CNN)、对抗生成网络(GAN)等神经网络应用于飞行器遥感图像的识别。
但现有的基于深度学习的飞行器识别方法中存在的一个问题是,它们都将飞行器视为一个整体来提取特征,没有从部件级别来考察细节特征。它们分辨的飞行器种类不多,类别之间的差异较为明显,因此只考察图像的整体特征就能正确分类。但是目前现实世界中飞行器种类很多(超过47类),许多子类型之间差异细微,必须定位到飞行器的部件并针对部件深入细致地进行分辨才能区分。而现有的基于深度学习的飞行器识别方法无法通过部件区别来识别不同的飞行器,导致识别的种类不多。例如(文献“Fu,K.;Dai,W.;Zhang,Y.;Wang,Z.;Yan,M.;Sun,X.Multicam:Multiple class activation mapping foraircraft recognition in remote sensing images.Remote Sensing 2019,11,544.”译为:基于多类激活图的遥感图像飞行器识别,《遥感期刊》)是一种基于深度学习进行飞行器类型识别的方法,它采用类激活图来定位图像中飞行器所在的位置,然后将整个飞行器从背景图像中分割出来,然后将分割所得的飞行器图像输入另一个深度神经网络进行分类识别。该方法只是分割出来整个飞行器,而没有分割出飞行器的各个部件,适合飞行器类间差异较大的情况,该方法仅实现了对17类飞行器的分类识别。
发明内容
本发明要解决的技术问题是:针对现有的飞行器遥感图像识别***不能从部件级别提取特征导致识别类别不多的问题,提出一种基于部件分割与特征融合的飞行器遥感图像细粒度识别方法,有效提升飞行器细粒度识别的类别数和准确率。
本发明的技术方案是:
第一步,构建基于部件分割与特征融合的飞行器图像细粒度识别***,该***由关键点检测子***、共享特征抽取器、部件特征生成器、特征融合子***、损失函数模块构成。
关键点检测子***与共享特征抽取器、部件特征生成器相连,从构建的数据集中读取飞行器原始遥感图像,检测飞行器原始遥感图像中的6个关键点,得到6个关键点的坐标值,将坐标值发送给共享特征抽取器和部件特征生成器。关键点检测子***是一个神经网络,采用文献“Xiao,B.;Wu,H.;Wei,Y.Simple baselines for human pose estimationand tracking.Proceedings of the European Conference on Computer Vision(ECCV),2018,pp.466–481.”译为:用于人体姿态估计和跟踪的简单基线)第2页26-40行所述的神经网络结构(该神经网络结构主要由ResNet50和三个反卷积层顺序连接而成,能够对图像中的关键点进行检测,得到关键点的坐标)。6个关键点分别为机头K1、机身与左机翼前缘交汇点K2、机身与右机翼前缘交汇点K3、左机翼远端K4、右机翼远端K5、尾翼中点K6。从K1与K6可以获得机身的长度Hobj,K2和K3可以获得机身的宽度Wbackbone,K4和K5可以获得飞机的宽度Wobj,因此由K1、K2、K3、K6可以分割出机身骨干的部件框P1;以K2和K4为顶点作矩形框,可分割出左翼部件框P2;以K3和K5为顶点作矩形框,可分割出右翼部件框P3;以K6为参考点作矩形框,矩形框长度为机身长度的一半,矩形框宽度为飞机宽度的一半,可以分割出尾翼部件框P4。
共享特征抽取器与关键点检测子***、部件特征生成器相连,共享特征抽取器采用特征金字塔结构,以ResNet50作为骨干网,以原始遥感图像以及关键点检测子***输出的关键点坐标作为输入,对原始遥感图像进行向上矫正,对向上矫正后的原始遥感图像进行特征抽取,将抽取得到的特征图输出给部件特征生成器。
部件特征生成器与关键点检测子***、共享特征抽取器、特征融合子***相连,从关键点检测子***接收6个关键点坐标,从共享特征抽取器接收抽取得到的特征图,利用6个关键点坐标生成飞行器的四个部件框,分别为机身P1、左翼P2、右翼P3和尾翼P4,将四个部件框映射到抽取得到的的特征图上,获得飞行器4个部件对应的特征子图,分别命名为T1、T2、T3、T4,将T1、T2、T3、T4输出给特征融合子***。
特征融合子***与部件特征生成器、损失函数模块相连,特征融合子***包括4部件特征全连接层即PFC1、PFC2、PFC3、PFC4,一个联合全连接层CFC,一个全连接层FC,以及一个Softmax层;PFC1、PFC2、PFC3、PFC4都与CFC相连,PFC1以特征子图T1作为输入,PFC2以特征子图T2作为输入,PFC3以特征子图T3作为输入,PFC4以T4作为输入,PFC1、PFC2、PFC3、PFC4分别提取T1、T2、T3、T4内部特征,获得具有内部特征的4个特征矢量,分别命名为TE1、TE2、TE3、TE4,将TE1、TE2、TE3、TE4输出给CFC;CFC与PFC1、PFC2、PFC3、PFC4以及FC层相连,将TE1、TE2、TE3、TE4进行叠加,形成新的特征图TE5;FC层与CFC层及Softmax层相连,从CFC接收TE5,对TE5进行特征融合,生成特征向量V,将生成的特征向量V输出给Softmax层;Softmax层与CFC相连,从CFC接收融合后的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器类别的预测概率即预测类别概率。在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时将预测类别概率发送给损失函数模块,在收到损失函数模块发送的交叉熵损失值时采用反向传播算法对***的网络参数进行调整,使得***逐渐调整到最佳的工作状态;在实际识别时,选择预测类别概率中的最大值对应的类型作为***识别出的飞行器类别;
损失函数模块与特征融合子***相连,在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时从特征融合子***接收图像的预测类别概率,并从数据集中获取原始遥感图像对应的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值,将计算出的交叉熵损失值返回给特征融合子***。
第二步,构建数据集,方法是:2.1用Google Earth软件(要求版本7.3.0或以上)采集一个包含Q种类型的飞行器遥感图像数据集,每类飞行器采集100张图像,每张图像都被缩放到224×224×3(单位是像素,第一个数字代表图像的长,第二个数字代表图像的宽,第三个数字代表图像的通道数)的尺寸。Q为飞行器的类别数,为正整数,Q≥47。
2.2对步骤2.1中采集的飞行器遥感图像数据集进行划分,其中α%的图片被分作训练集,β%的图像被作为测试集,并保证测试集中的图像从未在训练集中出现过,其中α+β=100,并且α>β。
2.4对测试集和训练集中的每张图像进行数据增广,将图像每20度进行一次旋转形成新的图像,每一张图像生成18张增广图像,因此测试集和训练集共有Q×100×18张图像。
2.4用数字0到Q-1作为Q类飞行器的类别编码,标注增广后的每张图片的真实类别概率(为每张图片生成一个热独码(即one-hot code,在此为Q个比特,只有一个比特为1,其他比特全为0,假设第q位为1,则表示此增广后的图片为第q类),用于表示该图片的类别概率,将图片的类别编码及其对应的热独码存储于文本文件中),并用labelme(labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注软件,版本3.11.2或以上即可)标注每张图像的6个真实关键点。
第三步,训练关键点检测子***。
3.1设置训练参数:选择优化算法为Adam优化算法文献“Kingma D P,Ba J.Adam:Amethod for stochastic optimization[J].arXiv preprint arXiv:1412.6980,2014.”译为:Adam:一种随机优化方法,2014年arXiv电子预印本资料库预印编号1412.6980),损失函数为均方误差损失,一次训练所选取的样本数batchsize为32,训练次数为140轮(通过观察损失函数,发现到140轮后损失函数基本不再变化,因此设置为140轮)。初始化学习率为0.001。
3.2初始化训练轮数变量N=1。
3.3关键点检测子***依次从训练集中读取32个图像作为一个小批量即mini-batch,,关键点检测子***对这32个图像进行关键点检测(关键点检测方法见文献“Xiao,B.;Wu,H.;Wei,Y.Simple baselines for human pose estimation andtracking.Proceedings of the European Conference on Computer Vision(ECCV),2018,pp.466–481.”译为:用于人体姿态估计和跟踪的简单基线)2018年计算机视觉欧洲会议第467页26-40行),得到这32张图像的6个预测关键点。
3.4将32张图像的预测关键点与真实关键点进行对比,计算预测关键点与真实关键点之间的均方误差损失,然后根据设置的学习率,采用反向传播算法(文献“DavidE.Rumelhart,Geoffrey E.Hinton,and Ronald J.Williams.Learning internalrepresentations by back-propagating errors.Nature,323(99):533-536,1986.”译为:通过反向传播误差学习内在的表示,1986年自然杂志第323(99)期第533-536页)更新网络参数。
3.5令N=N+1,如果N≤100,转3.3;如果100<N≤120,令学习率为0.0001,转3.3;如果120<N≤140,令学习率为0.00001,转3.3;如果N>140,训练完毕,转第四步。
第四步,将共享特征抽取器、部件特征生成器和特征融合子***作为一个整体进行训练。
4.1设定训练参数:选择优化算法为Adam优化算法,损失函数为交叉熵即CE loss,训练次数为140轮,初始化学习率为0.001。
4.2初始化训练轮数变量N=1。
4.3共享特征抽取器依次从训练集中读取32张图片,对每张图片进行向上矫正,矫正方法为:在图像对应的真实关键点P1与P6之间作一条直线,命名为L1,旋转图像使得L1与X轴(笛卡尔坐标***中的X轴)垂直,即完成了图像的向上矫正。后续其它策略都是针对完成了向上矫正的飞行器遥感图像。
4.4共享特征抽取器将矫正后的32张图像作为一个mini-batch,令这32幅图像为I1,…,In,…,I32。1≤n≤32。对每张图像生成一幅尺寸为56×56×128的特征图,令这32幅特征图像为TF1,…,TFn,…,TF32。
4.5令变量n=1。
4.6:部件生成器以图像In的6个真实关键点坐标作为基准,为图像In生成4个部件框,方法是:
4.6.1:根据In估算飞行器的高度和宽度,通过公式一、公式二、公式三计算出飞行器的最大宽度Wobj、飞行器的长度Hobj、飞行器的机身宽度Wbackbone:
Wobj=|xlwing-xrwing|公式一
Hobj=|ynose-yempennage|公式二
Wbackbone=|xfuselwing-xfuserwing|公式三
其中,xlwing和xrwing分别为左机翼远端K4和右机翼远端K5的X坐标值,ynose和yempennage分别为机头K1和尾翼中点K6的Y轴坐标值,xfuselwing和xfuserwing分别为机身与左机翼前缘交汇点K2以及机身与右机翼前缘交汇点K3的X轴坐标。
4.6.2生成机身骨干部件框P1,方法如下,以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框。(将P1宽度设为Wbackbone的两倍,这样做的目的是考虑到机身两侧可能会有引擎或其它附属结构)
4.6.3生成尾翼部件框P4,方法如下,以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,如此可生成P4。(这样做的目的是考虑到尾翼的左右水平安定面的大部分区域会偏于K6上方,该方法可以更好的包含尾部特征,又不加入更多的背景区域。)
4.6.4生成左翼部件框P2,其生成方法按左机翼夹角分两种情况进行处理。具体方法包括以下步骤:
4.6.4.1计算左机翼夹角。在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角θ1,该夹角即为左机翼夹角。
4.6.4.2当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转4.6.5。当左机翼夹角大于60度时,用关键点K2与K4的Y坐标之差作为机翼的高度HWing1,以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2(这样可以保证在机翼呈水平展开时仍然可以截取到机翼下的引擎和载荷),转4.6.5.
4.6.5生成右翼部件框P3,其生成方法按右机翼夹角分两种情况进行处理。具体方法包括以下步骤:
4.6.5.1计算右机翼夹角。在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角θ2,该夹角即为右机翼夹角。
4.6.5.2当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右翼部件框P3,转4.7。当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度HWing2,以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K3’和K5’为对角线作矩形框,即为P3(这样可以保证在机翼呈水平展开时仍然可以截取到机翼下的引擎和载荷),转4.7。
4.7将部件框P1、P2、P3、P4的位置按4:1的尺寸比(部件框P1、P2、P3、P4是在原图上生成的,因为原图尺寸是224x224x3,而特征图TFn的尺寸为56x56x128,所以映射时要在长和宽这两个维度进行比例匹配)例映射到TFn上,分割出4个部件对应的特征子图P1’、P2’、P3’、P4’,然后将P1’、P2’、P3’、P4’都调整为尺寸大小7×7×128,生成尺寸相同的特征子图T1、T2、T3、T4;
4.8 PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4。TE1、TE2、TE3、TE4的尺寸大小都为7×7×128。
4.9联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度(即通道)上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC。
4.10全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子(取值范围0~1之间),实现特征融合,生成长度为Q的特征向量V,将生成的特征向量V输出给softmax层。
4.11 softmax层从FC接收输出的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率,并将预测概率发送给损失函数模块。计算方法如下:
4.11.1令变量i=1。
4.11.2设V中第i个值为Vi,则Vi对应的预测概率si为:
其中,e是自然常数。
4.11.3如果i<Q,令i=i+1,转4.11.1;否则,说明得到了图像In对应于各种飞行器Q个类别的预测类别概率s1,…,si,…,sQ,将s1,…,si,…,sQ发送给损失函数模块,转4.12。
4.12损失函数模块从softmax层接收图像In对应于各种飞行器Q个类别的预测概率s1,…,si,…,sQ,并从数据集中获取图像In的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值Ln,计算公式如下:
其中,pi是图像In对应于各种飞行器Q个类别中第i个类别的真实类别概率。
4.13如果n<32,令n=n+1,转4.6;否则,转4.14。
4.14令总的损失函数值L=L1+…+Ln…+L32,然后根据设置的学习率,用反向传播算法更新共享特征抽取器、部件特征生成器和特征融合子***的参数。
4.15:令N=N+1,如果N≤100,转4.3;如果100<N≤120,令学习率为0.0001,转4.3;如果120<N≤140,令学习率为0.00001,转4.3;如果140<N,训练完毕。
第五步,利用训练好的飞行器识别***对飞行器图像进行细粒度识别。
5.1从测试集中任意选取一张遥感图像进行飞行器细粒度识别,令选取的图像为I。
5.2将图像I输入关键点检测子***,获得I中飞行器的6个关键点K1、K2、K3、K4、K5、K6的坐标。
5.3共享特征抽取器从测试集中读取图像I,从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,利用关键点K1和K6将图像I进行向上矫正,然后提取图像的特征,获得像素尺寸为56×56×128的特征图I’。
5.4部件特征生成器从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,从共享特征抽取器接收56x56×128的特征图I’,生成4个飞行器部件框P1、P2、P3、P4。具体步骤如下:
5.4.1通过公式一、公式二、公式三计算出飞行器的Wobj、Hobj、Wbackbone。
5.4.2生成机身骨干部件框P1,方法如下,以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框。
5.4.3生成尾翼部件框P4,方法如下,以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,生成P4。
5.4.4生成左翼部件框P2,其生成方法按左机翼夹角分两种情况进行处理。具体方法包括以下步骤:
5.4.4.1计算左机翼夹角。在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角,该夹角即为左机翼夹角。
5.4.4.2当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转5.4.5。当左机翼夹角大于60度的情况,用关键点K2与K4的Y坐标之差作为机翼的高度(HWing1),以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2,转5.4.5;
5.4.5生成右翼部件框P3,其生成方法按右机翼夹角分两种情况进行处理。具体方法包括以下步骤:
5.4.5.1计算右机翼夹角。在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角,该夹角即为右机翼夹角。
5.4.5.2当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右机翼部件框P3,转5.5。当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度HWing2,以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K2’和K4’为对角线作矩形框,即为P3转5.5;。
5.5部件特征生成器将部件框P1、P2、P3、P4的位置映射到步骤5.3生成的特征图I’上,分割出4个部件对应的特征子图T1、T2、T3、T4;
5.6 PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4。
5.7联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度(通道)上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC。
5.8全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子(取值范围0~1之间),实现特征融合,生成长度为Q的特征向量V,将生成的特征向量V输出给softmax层。
5.9 softmax层从FC接收输出的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率值。计算方法如下:
5.9.1令变量i=1。
5.9.2设V中第i个值为Vi,通过公式四计算得到Vi对应的预测概率si。
5.9.3如果i<Q,令i=i+1,转5.9.1;否则,转5.10。
5.10从softmax层输出的Q个预测概率s1,…,si,…,sQ中选择最大概率,最大概率对应的类型就作为***识别出的飞行器类别。
本发明通过关键点检测子***获取到飞行器的6个关键点,基于关键点对图像进行向上矫正,通过共享特征抽取器得到整个飞行器的特征图。在此基础上,部件特征生成器利用关键点生成4个部件框,将4个部件框映射到共享特征抽取器输出的特征图上,裁剪出各部件对应的特征子图;然后利用部件全连接层PFC1、PFC2、PFC3、PFC4进一步提取各部件内部的细节特征,并通过联合全连接层CFC以及全连接层FC将这些特征融合,最终输入softmax层实现类型识别。
采用本发明可以达到以下有益效果:
1、本发明第一步通过多个神经网络构建了高效的遥感图像飞行器细粒度识别***。其中,关键点检测子***能够实现对6个关键点的精准定位,共享特征抽取器能够对飞行器的整体特征进行完整的抽取,部件特征生成器能够快速而准确地获得4个部件的特征子图,特征融合子***能够提取各部件的内部特征并将这些特征融合在一起,实现准确的识别。
2、本发明第二步构建了一个高质量的数据集,数据集中包含Q种飞行器,并标注了飞行器的类别以及飞行器的关键点,第三步和第四步利用数据集对遥感图像飞行器细粒度识别***进行了高效的训练,通过反向传播算法将各个神经网络的参数调整到了最佳值,使得***能够准确识别飞行器的种类。
3、本发明第5.2步采用关键点检测子***准确定位到6个关键点;第5.4.2步对部件框P1的宽度设为2*Wbackbone,使得P1可以包括到机身两侧可能存在的引擎或其它附属结构;第5.4.3步部件框P4生成方法使得P4可以在尾翼的左右水平安定面的大部分区域偏于关键点K6上方的情况下,仍然能够包括到所有尾部特征,又不加入更多的背景区域;第5.4.4步和第5.4.5步部件框P2和P3生成方法使得P2和P3在机翼呈水平展开时仍然可以截取到机翼下的引擎和载荷,进一步保证了本发明识别的准确性。
4.本发明第5.3步对飞行器的整体特征进行完整的抽取,第5.6步进一步对各个部件的内部特征进行了仔细的抽取,第5.7-5.8步对部件内部的特征进行了有效的融合,使得识别***具有辨识细微区别的能力,采用本发明能更准确地识别更多的飞行器种类,现有已知飞行器种类基本能识别全。
附图说明
图1是本发明第一步构建的飞行器遥感图像细粒度识别***逻辑结构图;
图2是本发明关键点与部件框所在位置的示意图;
图3是本发明步骤4.6.4和4.6.5步所述机翼夹角小于等于60度时的机翼部件框生成方式示意图;
图4是本发明步骤4.6.4和4.6.5步所述机翼夹角大于60度时的机翼部件框生成方式示意图;
图5是本发明总体流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合图示对本发明实施方式作进一步地详细描述。
在本实施例中的基于深度学习卷积神经网络的飞行器遥感图像细粒度识别方法,通过多个基于神经网络的子***对待测图片进行关键点检测、特征抽取以及特征融合,从而将待测图片中飞行器的类别辨识出来。
图5是本发明总体流程图。如图5所示,本发明包括以下步骤:
第一步,构建基于部件分割与特征融合的飞行器图像细粒度识别***,该***如图1所示,由关键点检测子***、共享特征抽取器、部件特征生成器、特征融合子***、损失函数模块构成。
关键点检测子***与共享特征抽取器、部件特征生成器相连,从构建的数据集中读取飞行器原始遥感图像,检测飞行器原始遥感图像中的6个关键点,得到6个关键点的坐标值,将坐标值发送给共享特征抽取器和部件特征生成器。关键点检测子***是一个神经网络,能够对图像中的关键点进行检测,得到关键点的坐标。如图2所示,6个关键点分别为机头K1、机身与左机翼前缘交汇点K2、机身与右机翼前缘交汇点K3、左机翼远端K4、右机翼远端K5、尾翼中点K6。由K1、K2、K3、K6可以分割出机身骨干的部件框P1;以K2和K4为顶点作矩形框,可分割出左翼部件框P2;以K3和K5为顶点作矩形框,可分割出右翼部件框P3;以K6为参考点作矩形框,矩形框长度为机身长度的一半,矩形框宽度为飞机宽度的一半,可以分割出尾翼部件框P4。
共享特征抽取器与关键点检测子***、部件特征生成器相连,共享特征抽取器采用特征金字塔结构,以ResNet50作为骨干网,以原始遥感图像以及关键点检测子***输出的关键点坐标作为输入,对原始遥感图像进行向上矫正,对向上矫正后的原始遥感图像进行特征抽取,将抽取得到的特征图输出给部件特征生成器。
部件特征生成器与关键点检测子***、共享特征抽取器、特征融合子***相连,从关键点检测子***接收6个关键点坐标,从共享特征抽取器接收抽取得到的特征图,利用6个关键点坐标生成飞行器的四个部件框,分别为机身P1、左翼P2、右翼P3和尾翼P4,将四个部件框映射到抽取得到的的特征图上,获得飞行器4个部件对应的特征子图,分别命名为T1、T2、T3、T4,将T1、T2、T3、T4输出给特征融合子***。
特征融合子***与部件特征生成器、损失函数模块相连,特征融合子***包括4部件特征全连接层即PFC1、PFC2、PFC3、PFC4,一个联合全连接层CFC,一个全连接层FC,以及一个Softmax层;PFC1、PFC2、PFC3、PFC4都与CFC相连,PFC1以特征子图T1作为输入,PFC2以特征子图T2作为输入,PFC3以特征子图T3作为输入,PFC4以T4作为输入,PFC1、PFC2、PFC3、PFC4分别提取T1、T2、T3、T4内部特征,获得具有内部特征的4个特征矢量,分别命名为TE1、TE2、TE3、TE4,将TE1、TE2、TE3、TE4输出给CFC;CFC与PFC1、PFC2、PFC3、PFC4以及FC层相连,将TE1、TE2、TE3、TE4进行叠加,形成新的特征图TE5;FC层与CFC层及Softmax层相连,从CFC接收TE5,对TE5进行特征融合,生成特征向量V,将生成的特征向量V输出给Softmax层;Softmax层与CFC相连,从CFC接收融合后的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器类别的预测概率即预测类别概率。在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时将预测类别概率发送给损失函数模块,在收到损失函数模块发送的交叉熵损失值时采用反向传播算法对***的网络参数进行调整,使得***逐渐调整到最佳的工作状态;在实际识别时,选择预测类别概率中的最大值对应的类型作为***识别出的飞行器类别;
损失函数模块与特征融合子***相连,在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时从特征融合子***接收图像的预测类别概率,并从数据集中获取原始遥感图像对应的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值,将计算出的交叉熵损失值返回给特征融合子***。
第二步,构建数据集。
2.1用Google Earth软件(版本7.3.0或以上)采集一个包含Q(Q=47)种类型的飞行器遥感图像数据集,每类飞行器采集100张图像,每张图像都被缩放到224×224×3。
2.2对步骤2.1中采集的飞行器遥感图像数据集进行划分,其中60%(α=60)的图片被分作训练集,40%(β=40%)的图像被作为测试集,并保证测试集中的图像从未在训练集中出现过。
2.4对测试集和训练集中的每张图像进行数据增广,将图像每20度进行一次旋转形成新的图像,每一张图像生成18张增广图像,因此测试集和训练集共有47×100×18张图像。
2.4用数字0到Q-1作为Q类飞行器的类别编码,标注增广后的每张图片的真实类别概率,并用labelme(版本3.11.2或以上)标注每张图像的6个真实关键点。
第三步,训练关键点检测子***。
3.1设置训练参数:选择优化算法为Adam优化算法,损失函数为均方误差损失,一次训练所选取的样本数batchsize为32,训练次数为140轮。初始化学习率为0.001。
3.2初始化训练轮数变量N=1。
3.3关键点检测子***依次从训练集中读取32个图像作为一个小批量即mini-batch,,关键点检测子***对这32个图像进行关键点检测,得到这32张图像的6个预测关键点。
3.4将32张图像的预测关键点与真实关键点进行对比,计算预测关键点与真实关键点之间的均方误差损失,然后根据设置的学习率,采用反向传播算法更新网络参数。
3.5令N=N+1,如果N≤100,转3.3;如果100<N≤120,令学习率为0.0001,转3.3;如果120<N≤140,令学习率为0.00001,转3.3;如果N>140,训练完毕,转第四步。
第四步,将共享特征抽取器、部件特征生成器和特征融合子***作为一个整体进行训练。
4.1设定训练参数:选择优化算法为Adam优化算法,损失函数为交叉熵即CEloss,训练次数为140轮,初始化学习率为0.001。
4.2初始化训练轮数变量N=1。
4.3共享特征抽取器依次从训练集中读取32张图片,对每张图片进行向上矫正,矫正方法为:在图像对应的真实关键点P1与P6之间作一条直线,命名为L1,旋转图像使得L1与X轴垂直,即完成了图像的向上矫正。后续其它策略都是针对完成了向上矫正的飞行器遥感图像。
4.4共享特征抽取器将矫正后的32张图像作为一个mini-batch,令这32幅图像为I1,…,In,…,I32。1≤n≤32。对每张图像生成一幅尺寸为56×56×128的特征图,令这32幅特征图像为TF1,…,TFn,…,TF32。
4.5令变量n=1。
4.6:部件生成器以图像In的6个真实关键点坐标作为基准,为图像In生成4个部件框,方法是:
4.6.1:根据In估算飞行器的高度和宽度,通过公式一、公式二、公式三计算出飞行器的最大宽度Wobj、长度Hobj、飞行器的机身宽度Wbackbone:
Wobj=|xlwing-xrwing|公式一
Hobj=|ynose-yempennage|公式二
Wbackbone=|xfuselwing-xfuserwing|公式三
其中,xlwing和xrwing分别为左机翼远端K4和右机翼远端K5的X坐标值,ynose和yempennage分别为机头K1和尾翼中点K6的Y轴坐标值,xfuselwing和xfuserwing分别为机身与左机翼前缘交汇点K2以及机身与右机翼前缘交汇点K3的X轴坐标。
4.6.2生成机身骨干部件框P1,方法如下,以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框。
4.6.3生成尾翼部件框P4,方法如下,以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,如此可生成P4。
4.6.4生成左翼部件框P2,其生成方法按左机翼夹角分两种情况进行处理。具体方法包括以下步骤:
4.6.4.1计算左机翼夹角。如图3所示,在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角θ1,该夹角即为左机翼夹角。
4.6.4.2如图3所示,当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转4.6.5。如图4所示,当左机翼夹角大于60度时,用关键点K2与K4的Y坐标之差作为机翼的高度HWing1,以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2,转4.6.5.
4.6.5生成右翼部件框P3,其生成方法按右机翼夹角分两种情况进行处理。具体方法包括以下步骤:
4.6.5.1计算右机翼夹角。如图3所示,在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角θ2,该夹角即为右机翼夹角。
4.6.5.2如图3所示,当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右翼部件框P3,转4.7。如图4所示,当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度HWing2,以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K3’和K5’为对角线作矩形框,即为P3,转4.7。
4.7将部件框P1、P2、P3、P4的位置按4:1的尺寸比例映射到TFn上,分割出4个部件对应的特征子图P1’、P2’、P3’、P4’,然后将P1’、P2’、P3’、P4’都调整为尺寸大小7×7×128,生成尺寸相同的特征子图T1、T2、T3、T4;
4.8 PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4。TE1、TE2、TE3、TE4的尺寸大小都为7×7×128。
4.9联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度(即通道)上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC。
4.10全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子(取值范围0~1之间),实现特征融合,生成长度为47的特征向量V,将生成的特征向量V输出给softmax层。
4.11 softmax层从FC接收输出的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率,并将预测概率发送给损失函数模块。计算方法如下:
4.11.1令变量i=1。
4.11.2设V中第i个值为Vi,则Vi对应的预测概率si为:
其中,e是自然常数。
4.11.3如果i<Q,令i=i+1,转4.11.1;否则,说明得到了图像In对应于各种飞行器Q个类别的预测类别概率s1,…,si,…,sQ,将s1,…,si,…,sQ发送给损失函数模块,转4.12。
4.12损失函数模块从softmax层接收图像In对应于各种飞行器Q个类别的预测概率s1,…,si,…,sQ,并从数据集中获取图像In的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值Ln,计算公式如下:
其中,pi是图像In对应于各种飞行器Q个类别中第i个类别的真实类别概率。
4.13如果n<32,令n=n+1,转4.6;否则,转4.14。
4.14令总的损失函数值L=L1+…+Ln…+L32,然后根据设置的学习率,用反向传播算法更新共享特征抽取器、部件特征生成器和特征融合子***的参数。
4.15:令N=N+1,如果N≤100,转4.3;如果100<N≤120,令学习率为0.0001,转4.3;如果120<N≤140,令学习率为0.00001,转4.3;如果140<N,训练完毕。
第五步,利用训练好的飞行器识别***对飞行器图像进行细粒度识别。
5.1从测试集中任意选取一张遥感图像进行飞行器细粒度识别,令选取的图像为I。
5.2将图像I输入关键点检测子***,获得I中飞行器的6个关键点K1、K2、K3、K4、K5、K6的坐标。
5.3共享特征抽取器从测试集中读取图像I,从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,利用关键点K1和K6将图像I进行向上矫正,然后提取图像的特征,获得像素尺寸为56×56×128的特征图I’。
5.4部件特征生成器从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,从共享特征抽取器接收56x56×128的特征图I’,生成4个飞行器部件框P1、P2、P3、P4。具体步骤如下:
5.4.1通过公式一公式二公式三计算出飞行器的Wobj、Hobj、Wbackbone。
5.4.2生成机身骨干部件框P1,方法如下,以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框。
5.4.3生成尾翼部件框P4,方法如下,以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,生成P4。
5.4.4生成左翼部件框P2,其生成方法按左机翼夹角分两种情况进行处理。具体方法包括以下步骤:
5.4.4.1计算左机翼夹角。在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角,该夹角即为左机翼夹角。
5.4.4.2当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转5.4.5。当左机翼夹角大于60度的情况,用关键点K2与K4的Y坐标之差作为机翼的高度(HWing1),以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2,转5.4.5;
5.4.5生成右翼部件框P3,其生成方法按右机翼夹角分两种情况进行处理。具体方法包括以下步骤:
5.4.5.1计算右机翼夹角。在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角,该夹角即为右机翼夹角。
5.4.5.2当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右机翼部件框P3,转5.5。当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度(HWing2),以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K2’和K4’为对角线作矩形框,即为P3转5.5;。
5.5部件特征生成器将部件框P1、P2、P3、P4的位置映射到步骤5.3生成的特征图I’上,分割出4个部件对应的特征子图T1、T2、T3、T4;
5.6 PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4。
5.7联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度(通道)上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC。
5.8全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子(取值范围0~1之间),实现特征融合,生成长度为Q的特征向量V,将生成的特征向量V输出给softmax层。
5.9 softmax层从FC接收输出的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率值。计算方法如下:
5.9.1令变量i=1。
5.9.2设V中第i个值为Vi,通过公式四计算得到Vi对应的预测概率si。
5.9.3如果i<Q,令i=i+1,转5.9.1;否则,转5.10。
5.10从softmax层输出的Q个预测概率s1,…,si,…,sQ中选择最大概率,最大概率对应的类型就作为***识别出的飞行器类别。
以上对本发明所提供的基于部件分割与特征融合的飞行器遥感图像细粒度识别***及方法进行了详细介绍,本实施方式中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于包括以下步骤:
第一步,构建基于部件分割与特征融合的飞行器遥感图像细粒度识别***,该***由关键点检测子***、共享特征抽取器、部件特征生成器、特征融合子***、损失函数模块构成;
关键点检测子***与共享特征抽取器、部件特征生成器相连,从数据集中读取飞行器原始遥感图像,检测飞行器原始遥感图像中的6个关键点,得到6个关键点的坐标值,将坐标值发送给共享特征抽取器和部件特征生成器;关键点检测子***是一个神经网络,对图像中的关键点进行检测,得到关键点的坐标;6个关键点分别为机头K1、机身与左机翼前缘交汇点K2、机身与右机翼前缘交汇点K3、左机翼远端K4、右机翼远端K5、尾翼中点K6;
共享特征抽取器与关键点检测子***、部件特征生成器相连,以飞行器原始遥感图像以及关键点检测子***输出的关键点坐标作为输入,对原始遥感图像进行向上矫正,对向上矫正后的原始遥感图像进行特征抽取,将抽取得到的特征图输出给部件特征生成器;
部件特征生成器与关键点检测子***、共享特征抽取器、特征融合子***相连,从关键点检测子***接收6个关键点坐标,从共享特征抽取器接收抽取的特征图,利用6个关键点坐标生成飞行器的四个部件框,分别为机身P1、左翼P2、右翼P3和尾翼P4,将四个部件框映射到抽取得到的特征图上,获得飞行器4个部件对应的特征子图,分别命名为T1、T2、T3、T4,将T1、T2、T3、T4输出给特征融合子***;
特征融合子***与部件特征生成器、损失函数模块相连,特征融合子***包括4部件特征全连接层即PFC1、PFC2、PFC3、PFC4,一个联合全连接层CFC,一个全连接层FC,以及一个Softmax层;PFC1、PFC2、PFC3、PFC4都与CFC相连,PFC1以特征子图T1作为输入,PFC2以特征子图T2作为输入,PFC3以特征子图T3作为输入,PFC4以T4作为输入,PFC1、PFC2、PFC3、PFC4分别提取T1、T2、T3、T4内部特征,获得具有内部特征的4个特征矢量,分别命名为TE1、TE2、TE3、TE4,将TE1、TE2、TE3、TE4输出给CFC;CFC与PFC1、PFC2、PFC3、PFC4以及FC层相连,接收TE1、TE2、TE3、TE4,将TE1、TE2、TE3、TE4进行叠加,形成新的特征图TE5;FC层与CFC层及Softmax层相连,从CFC接收TE5,对TE5进行特征融合,生成特征向量V,将生成的特征向量V输出给Softmax层;Softmax层与CFC相连,从CFC接收融合后的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器类别的预测概率即预测类别概率;在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时将预测类别概率发送给损失函数模块,在收到损失函数模块发送的交叉熵损失值时采用反向传播算法对***的网络参数进行调整;在实际识别时,选择预测类别概率中的最大值对应的类型作为***识别出的飞行器类别;
损失函数模块与特征融合子***相连,在对基于部件分割与特征融合的飞行器遥感图像细粒度识别***训练时从特征融合子***接收图像的预测类别概率,并从数据集中获取原始遥感图像对应的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值,将计算出的交叉熵损失值返回给特征融合子***;
第二步,构建数据集,方法是:
2.1用Google Earth软件采集一个包含Q种类型的飞行器遥感图像数据集,每类飞行器采集100张图像,每张图像都被缩放到224×224×3的尺寸,尺寸的单位是像素,第一个数字代表图像的长,第二个数字代表图像的宽,第三个数字代表图像的通道数;Q为飞行器的类别数,为正整数;
2.2对步骤2.1中采集的飞行器遥感图像数据集进行划分,其中α%的图片被分作训练集,β%的图像被作为测试集,并保证测试集中的图像从未在训练集中出现过,其中α+β=100,且α>β;
2.3对测试集和训练集中的每张图像进行数据增广,将图像每20度进行一次旋转形成新的图像,每一张图像生成18张增广图像,测试集和训练集共有Q×100×18张图像;
2.4用数字0到Q-1作为Q类飞行器的类别编码,标注增广后的每张图片的真实类别概率,并用labelme标注每张图像的6个真实关键点;
第三步,训练关键点检测子***;
第四步,将共享特征抽取器、部件特征生成器和特征融合子***作为一个整体进行训练,方法是:
4.1设定训练参数:选择优化算法为Adam优化算法,损失函数为交叉熵即CE loss,训练次数为140轮,初始化学习率为0.001;
4.2初始化训练轮数变量N=1;
4.3共享特征抽取器依次从训练集中读取32张图片,对每张图片进行向上矫正;
4.4共享特征抽取器将矫正后的32张图像作为一个mini-batch,令这32幅图像为I1,…,In,…,I32,1≤n≤32;对每张图像生成一幅尺寸为56×56×128的特征图,令这32幅特征图像为TF1,…,TFn,…,TF32;
4.5令变量n=1;
4.6部件生成器以图像In的6个真实关键点坐标作为基准,为图像In生成4个部件框,方法是:
4.6.1根据In估算飞行器的高度和宽度,计算出飞行器的尺寸,包括飞行器的最大宽度Wobj、长度Hobj、飞行器的机身宽度Wbackbone;
4.6.2生成机身骨干部件框P1,方法是以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框;
4.6.3生成尾翼部件框P4,方法是以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,生成P4;
4.6.4生成左翼部件框P2,方法是:
4.6.4.1计算左机翼夹角:在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角θ1,该夹角即为左机翼夹角;
4.6.4.2当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转4.6.5;当左机翼夹角大于60度时,用关键点K2与K4的Y坐标之差作为机翼的高度HWing1,以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2,转4.6.5;
4.6.5生成右翼部件框P3,方法是:
4.6.5.1计算右机翼夹角:在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角θ2,该夹角即为右机翼夹角;
4.6.5.2当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右翼部件框P3,转4.7;当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度HWing2,以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K3’和K5’为对角线作矩形框,即为P3,转4.7;
4.7将部件框P1、P2、P3、P4的位置按4:1的尺寸比例映射到TFn上,分割出4个部件对应的特征子图P1’、P2’、P3’、P4’,然后将P1’、P2’、P3’、P4’都调整为尺寸大小7×7×128,生成尺寸相同的特征子图T1、T2、T3、T4;
4.8 PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4;E1、TE2、TE3、TE4的尺寸大小都为7×7×128;
4.9联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度即通道上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC;
4.10全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子,实现特征融合,生成长度为Q的特征向量V,将V输出给softmax层;
4.11 softmax层从FC接收特征向量V,对V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率即预测类别概率,并将预测类别概率发送给损失函数模块;计算方法如下:
4.11.1令变量i=1;
4.11.2设V中第i个值为Vi,则Vi对应的预测概率值si为:
其中,e是自然常数;
4.11.3如果i<Q,令i=i+1,转4.11.1;否则,将图像In对应于各种飞行器Q个类别的预测类别概率s1,…,si,…,sQ发送给损失函数模块,转4.12;
4.12损失函数模块从softmax层接收s1,…,si,…,sQ,并从数据集中获取图像In的真实类别概率,计算预测类别概率和真实类别概率之间的交叉熵损失值Ln,计算公式如下:
其中,pi是图像In对应于各种飞行器Q个类别中第i个类别的真实类别概率;
4.13如果n<32,令n=n+1,转4.6;否则,转4.14;
4.14令总的损失函数值L=L1+…+Ln…+L32,然后根据设置的学习率,用反向传播算法更新共享特征抽取器、部件特征生成器和特征融合子***的参数;
4.15令N=N+1,如果N≤100,转4.3;如果100<N≤120,令学习率为0.0001,转4.3;如果120<N≤140,令学习率为0.00001,转4.3;如果140<N,训练完毕;
第五步,利用训练好的飞行器识别***对飞行器图像进行细粒度识别,方法是:
5.1从测试集中任意选取一张图像进行飞行器细粒度识别,令选取的图像为I;
5.2将图像I输入关键点检测子***,获得I中飞行器的6个关键点K1、K2、K3、K4、K5、K6的坐标;
5.3共享特征抽取器从测试集读取图像I,从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,利用关键点K1和K6将图像I进行向上矫正,然后提取图像的特征,获得像素尺寸为56×56×128的特征图I’;
5.4部件特征生成器从关键点检测子***接收6个关键点K1、K2、K3、K4、K5、K6的坐标,从共享特征抽取器接收特征图I’,生成4个飞行器部件框P1、P2、P3、P4;具体步骤如下:
5.4.1计算飞行器的Wobj、Hobj、Wbackbone;
5.4.2生成机身骨干部件框P1,方法是以关键点K1所在位置往上方偏移5个像素点作为P1的顶边中点坐标,以2*Wbackbone为P1的宽度、Hobj为P1的高度生成一个矩形框;
5.4.3生成尾翼部件框P4,方法是以Wobj/2、Hobj/2作为P4的宽度与高度,以关键点K6的X坐标作为P4的X轴中点,以K6的Y坐标为基准,往上Hobj*3/8作为P4上边界,往下Hobj1/8作为P4的下边界,生成P4;
5.4.4生成左翼部件框P2方法是:
5.4.4.1计算左机翼夹角:在关键点K2与K4之间作一条连线,命名为L2,计算L2与L1之间的夹角θ1,该夹角即为左机翼夹角;
5.4.4.2当左机翼夹角小于等于60度时,以K2和K4的连线为对角线作矩形框,即为左翼部件框P2,转5.4.5;当左机翼夹角大于60度的情况,用关键点K2与K4的Y坐标之差作为机翼的高度HWing1,以K2的Y坐标往上偏移HWing1/2生成关键点K2’,以K4的Y坐标往下偏移HWing1/2生成关键点K4’,以K2’和K4’为对角线作矩形框,即为P2,转5.4.5;
5.4.5生成右翼部件框P3,其生成方法按右机翼夹角分两种情况进行处理,具体方法包括以下步骤:
5.4.5.1计算右机翼夹角:在关键点K3与K5之间作一条连线,命名为L3,计算L3与L1之间的夹角θ2,该夹角即为右机翼夹角;
5.4.5.2当右机翼夹角小于等于60度时,以K3和K5的连线为对角线作矩形框,即为右机翼部件框P3,转5.5;当右机翼夹角大于60度时,用关键点K3与K5的Y坐标之差作为机翼的高度HWing2,以K3的Y坐标往上偏移HWing2/2生成关键点K3’,以K5的Y坐标往下偏移HWing2/2生成关键点K5’,以K2’和K4’为对角线作矩形框,即为P3,转5.5;
5.5部件特征生成器将部件框P1、P2、P3、P4的位置映射到步骤5.3生成的特征图I’上,分割出4个部件对应的特征子图T1、T2、T3、T4;
5.6PFC1对T1进一步提取内部特征,生成特征图TE1;同时PFC2对T2进一步提取内部特征,生成特征图TE2;同时PFC3对T3进一步提取内部特征,生成特征图TE3;同时PFC4对T4进一步提取内部特征,生成特征图TE4;
5.7联合全连接层CFC以TE1、TE2、TE3、TE4为输入,将尺寸为7×7×128的TE1、TE2、TE3、TE4在第三个维度即通道上进行叠加,形成尺寸为7×7×512的特征图TE5,然后将TE5输入全连接层FC;
5.8全连接层FC从CFC层接收特征图TE5,对TE5中各像素分别乘以一个比例因子,实现特征融合,生成长度为Q的特征向量V,将生成的特征向量V输出给softmax层;
5.9 softmax层从FC接收输出的特征向量V,对特征向量V进行概率计算,得到图像对应于各种飞行器各个类别的预测概率,计算方法如下:
5.9.1令变量i=1;
5.9.2设V中第i个值为Vi,通过公式四计算得到Vi对应的预测概率si;
5.9.3如果i<Q,令i=i+1,转5.9.1;否则,转5.10;
5.10从softmax层输出的Q个预测概率s1,…,si,…,sQ中选择最大概率值,最大概率对应的类型就作为***识别出的飞行器类别。
2.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于所述关键点检测子***由ResNet50和三个反卷积层顺序连接而成。
3.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于所述共享特征抽取器采用特征金字塔结构,以ResNet50作为骨干网。
4.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于所述Google Earth软件要求版本7.3.0或以上,所述labelme要求版本3.11.2或以上。
5.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于所述Q≥47。
6.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于2.4步所述标注增广后的每张图片的真实类别概率的方法是为每张图片生成一个热独码,用于表示该图片的类别概率,将图片的类别编码及其对应的热独码存储于文本文件中。
7.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于第三步所述训练关键点检测子***的方法是:
3.1设置训练参数:选择优化算法为Adam优化算法,损失函数为均方误差损失,一次训练所选取的样本数batchsize为32,训练次数为140轮,初始化学习率为0.001;
3.2初始化训练轮数变量N=1;
3.3关键点检测子***依次从训练集中读取32个图像作为一个小批量即mini-batch,,关键点检测子***对这32个图像进行关键点检测,得到这32张图像的6个预测关键点;
3.4将32张图像的预测关键点与真实关键点进行对比,计算预测关键点与真实关键点之间的均方误差损失,然后根据设置的学习率,采用反向传播算法更新网络参数;
3.5令N=N+1,如果N≤100,转3.3;如果100<N≤120,令学习率为0.0001,转3.3;如果120<N≤140,令学习率为0.00001,转3.3;如果N>140,训练完毕。
8.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于4.3步所述对图片进行向上矫正的方法为:在图像对应的真实关键点P1与P6之间作一条直线,命名为L1,旋转图像使得L1与X轴垂直,即完成了图像的向上矫正。
9.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于4.6.1步所述计算飞行器的最大宽度Wobj、长度Hobj、飞行器的机身宽度Wbackbone的方法是:
Wobj=|xlwing-xrwing| 公式一
Hobj=|ynose-yempennage| 公式二
Wbackbone=|xfuselwing-xfuserwing| 公式三
其中,xlwing和xrwing分别为左机翼远端K4和右机翼远端K5的X坐标值,ynose和yempennage分别为机头K1和尾翼中点K6的Y轴坐标值,xfuselwing和xfuserwing分别为机身与左机翼前缘交汇点K2以及机身与右机翼前缘交汇点K3的X轴坐标。
10.如权利要求1所述的基于部件分割与特征融合的飞行器图像细粒度识别方法,其特征在于4.10步和5.8所述比例因子取值范围均为0~1之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038491.4A CN111274893B (zh) | 2020-01-14 | 2020-01-14 | 基于部件分割与特征融合的飞行器图像细粒度识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038491.4A CN111274893B (zh) | 2020-01-14 | 2020-01-14 | 基于部件分割与特征融合的飞行器图像细粒度识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274893A true CN111274893A (zh) | 2020-06-12 |
CN111274893B CN111274893B (zh) | 2022-11-08 |
Family
ID=71001667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010038491.4A Active CN111274893B (zh) | 2020-01-14 | 2020-01-14 | 基于部件分割与特征融合的飞行器图像细粒度识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274893B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705488A (zh) * | 2021-08-31 | 2021-11-26 | 中国电子科技集团公司第二十八研究所 | 基于局部分割与特征融合的遥感图像细粒度飞机识别方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214441A (zh) * | 2018-08-23 | 2019-01-15 | 桂林电子科技大学 | 一种细粒度车型识别***及方法 |
CN109858486A (zh) * | 2019-01-27 | 2019-06-07 | 中国人民解放军国防科技大学 | 一种基于深度学习的数据中心云端目标识别方法 |
CN110097091A (zh) * | 2019-04-10 | 2019-08-06 | 东南大学 | 训练与推理数据分布不一致条件下的图像细粒度识别方法 |
-
2020
- 2020-01-14 CN CN202010038491.4A patent/CN111274893B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214441A (zh) * | 2018-08-23 | 2019-01-15 | 桂林电子科技大学 | 一种细粒度车型识别***及方法 |
CN109858486A (zh) * | 2019-01-27 | 2019-06-07 | 中国人民解放军国防科技大学 | 一种基于深度学习的数据中心云端目标识别方法 |
CN110097091A (zh) * | 2019-04-10 | 2019-08-06 | 东南大学 | 训练与推理数据分布不一致条件下的图像细粒度识别方法 |
Non-Patent Citations (3)
Title |
---|
于丽等: "基于密集卷积神经网络的遥感飞机识别", 《计算机工程与应用》 * |
张文达等: "基于多尺度分块卷积神经网络的图像目标识别算法", 《计算机应用》 * |
王鑫等: "基于深度卷积神经网络和多核学习的遥感图像分类方法", 《电子与信息学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705488A (zh) * | 2021-08-31 | 2021-11-26 | 中国电子科技集团公司第二十八研究所 | 基于局部分割与特征融合的遥感图像细粒度飞机识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111274893B (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111489358B (zh) | 一种基于深度学习的三维点云语义分割方法 | |
Zhang et al. | Dense attention fluid network for salient object detection in optical remote sensing images | |
Li et al. | Learning deep semantic segmentation network under multiple weakly-supervised constraints for cross-domain remote sensing image semantic segmentation | |
CN109685067B (zh) | 一种基于区域和深度残差网络的图像语义分割方法 | |
CN111583263A (zh) | 一种基于联合动态图卷积的点云分割方法 | |
WO2019178702A1 (en) | Systems and methods for polygon object annotation and a method of training an object annotation system | |
CN111899172A (zh) | 一种面向遥感应用场景的车辆目标检测方法 | |
CN111612807A (zh) | 一种基于尺度和边缘信息的小目标图像分割方法 | |
JP7439153B2 (ja) | 全方位場所認識のためのリフトされたセマンティックグラフ埋め込み | |
CN112052783A (zh) | 一种结合像素语义关联和边界注意的高分影像弱监督建筑物提取方法 | |
CN112036260B (zh) | 一种自然环境下多尺度子块聚合的表情识别方法及*** | |
CN111652273B (zh) | 一种基于深度学习的rgb-d图像分类方法 | |
CN112633088B (zh) | 一种基于航拍图像中光伏组件识别的电站容量估测方法 | |
CN114170410A (zh) | 基于PointNet的图卷积与KNN搜索的点云零件级分割方法 | |
CN112883850A (zh) | 一种基于卷积神经网络的多视角空天遥感图像匹配方法 | |
CN111401380A (zh) | 一种基于深度特征增强和边缘优化的rgb-d图像语义分割方法 | |
CN111881716A (zh) | 一种基于多视角生成对抗网络的行人重识别方法 | |
Khellal et al. | Pedestrian classification and detection in far infrared images | |
CN114626476A (zh) | 基于Transformer与部件特征融合的鸟类细粒度图像识别方法及装置 | |
CN112101262A (zh) | 一种多特征融合手语识别方法及网络模型 | |
CN115937552A (zh) | 一种基于融合手工特征与深度特征的图像匹配方法 | |
CN115049833A (zh) | 一种基于局部特征增强和相似性度量的点云部件分割方法 | |
CN113160291B (zh) | 一种基于图像配准的变化检测方法 | |
CN114663880A (zh) | 基于多层级跨模态自注意力机制的三维目标检测方法 | |
CN111274893B (zh) | 基于部件分割与特征融合的飞行器图像细粒度识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |