一种飞机部件的定位识别方法和系统与流程

文档序号:20704803发布日期:2020-05-12 16:15阅读:536来源:国知局
一种飞机部件的定位识别方法和系统与流程

本发明涉及飞机定位识别领域,特别是涉及一种飞机部件的定位识别方法和系统。



背景技术:

图像分类问题作为计算机视觉领域一项基础的研究课题一直备受关注。近几年随着深度学习技术的飞速发展,alexnet、googlenet、resnet等深度网络的提出,一般图像分类问题已经得到了很大程度上的解决。然而随着社会的发展和人类对检索分类需求的进一步细化,图像的细粒度分类问题已经逐渐得到了学界的关注研究。

细粒度图像分类,顾名思义,就是在一般图像分类的基础上进行进一步更为细致的分类。如一般图像分类中只会关心某幅图像中的物体是否是狗,而细粒度图像分类中关心的问题是什么品种的狗。细粒度图像分类在菜品分类、动物子类分类、飞机种类分类、汽车种类分类等领域中有着广阔的应用前景。但是,一方面由于待区分的物体本身就隶属于同一大类,本身各个子类之间的差异非常小,导致难以区分。另一方面,同一子类中的不同个体之间由于光照等环境因素的影响,在图像中反映出来的性质也不尽相同,导致同一子类中的不同个体差异较大,容易出现误分类的情况。所以,为了调和子类内差异大、子类间差异小的矛盾,一般的细粒度分类方法都会将目光聚焦到物体的子部件上,如飞机的细粒度分类中,一般将飞机的机头、机翼以及尾翼提取出来,再针对提取出的图像子块进行细粒度分类,这样能够在很大程度上减少背景等环境因素的干扰。

因此,在飞机细粒度分类问题中,如何准确无误定位到飞机的各个组成部件,是解决飞机细粒度分类的关键难点之一。

传统的部件检测方法一般将部件视为待检测目标,因此方法上与传统目标检测方法相同,一般分为区域选择、特征提取和分类器分类三个阶段。华中科技大学提出的专利申请“一种基于车辆特征点的车辆部件检测方法和系统”(专利申请号201710238079.5,公开号cn106971187a)公开了一种基于车辆特征点的车辆部件检测方法和系统,其中方法的实现包括:采集车辆图像,提取车辆部件的车辆特征点和车辆部件的候选区域;当候选区域的中心与车辆特征点的距离小于阈值得到车辆部件的感兴趣区域,在感兴趣区域内提取车辆部件的目标区域。该方法基于车辆部件的特征点挑选感兴趣区域,可以降低感兴趣区域冗余并提高感兴趣区域质量,进而得到车辆部件的目标区域,但是该专利申请仍然存在的不足是:针对特征点之间的位置等相关关系没有进行建模,进而导致在进行感兴趣区域和部件定位时精度不够。

西安电子科技大学提出的专利申请“基于部件的目标检测方法”(专利申请号201210202366.8,授权公告号cn102750532b)公开了一种基于部件结构模型的目标检测与识别方法。该方法的实施步骤是:(1)标记训练图像;(2)构建目标空间结构(3)统计空间结构模型参数(4)统计表观模型参数(5)传送模型参数(6)采集被检测图像(7)初始化目标检测的参数(8)获得中心部件位置坐标(9)判断是否第一次记录中心部件位置坐标(10)获得近似部件位置坐标集合(11)获得最终部件位置坐标集合(12)显示检测结果。该方法表示了目标空间结构,提高了检测速度,但是该专利申请仍然存在不足。首先,区域选择是为了对部件的位置进行定位,由于部件可能出现在图像中的任何位置,而且长宽比例和大小并不确定,所以最初采用滑动窗口的策略对正幅图像进行遍历,同时需要设定不同长宽比例和大小的滑窗,这种穷举策略时间复杂度高、产生的冗余窗口多、严重影响后续特征提取部分的速度和性能。实际上由于考虑到时间复杂度,一般是仅手动选取几种不同大小与长宽比的滑窗,所以对于长宽比例变化较大的多类别部件检测问题,滑动窗口也不能得到非常好的部件区域信息。其次,特征提取阶段主要是为了提取出能够唯一描述提取出的区域的特征,而由于部件的形态多样性、光照变化多样性等因素使得设计一个鲁棒的特征并不容易,这个阶段常用的特征描述子有sift特征和hog特征等,由于这些都是人工设计的特征,因此并不能实现对目标更高层次语义级别描述,严重影响了后续分类性能。分类器主要是根据区域特征进行分类,主要用到支持向量机svm和adaboost分类器等,但是svm算法由于是借助二次规划来求解支持向量的。因此,对大规模训练样本难以训练并且对非线性问题没有通用的解决方案,adaboost算法训练耗时、拓展困难并且存在过拟合和稳健性弱的问题。

近年来基于深度学习的部件检测方法发展迅猛,这些方法同样将部件视为待检测目标,方法主要是基于fasterr-cnn等目标检测网络针对图像中车辆部件进行检测。华中科技大学提出的专利申请“一种基于相对位置的车辆部件检测方法和系统”(专利申请号201710234936.4,公开号cn107016390a)公开了一种基于相对位置的车辆部件检测方法和系统。其中,方法的实现包括离线训练和在线检测部分,离线训练部分包括:采集车辆样本图像,提取样本车辆部件的感兴趣区域的相对位置;利用相对位置建立高斯模型,得到先验信息,利用先验信息更新样本感兴趣区域在快速卷积神经网络中的原始得分,由此得到训练好的相对位置网络;在线检测部分包括:输入车辆图像,提取车辆感兴趣区域,将感兴趣区域输入相对位置网络,得到感兴趣区域的得分,得分最高的感兴趣区域为车辆部件目标区域。该方法虽然利用了fasterr-cnn的方法来提取和不断更新感兴趣区域的检测结果,但是该专利申请仍然存在的不足是:这些直接检测部件的方法仅仅将图像中的部件位置用矩形框选取出来,各部件之间和部件-目标之间的相对位置和结构关系无法进行建模,进而在各种个体内部自遮挡和个体间相互遮挡的情况下性能会大打折扣。

总的来说,传统部件检测方法主要存在两个问题:一是基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余。二是手工设计的特征对于多样性变化稳健性不强,大大影响了部件检测的准确度。

而即使采用能够解决上述问题的一种基于fasterr-cnn的部件检测方法进行检测,也存在以下问题:这种网络结构是直接针对候选部件框进行回归和分类,在回归和分类过程中实际只用到了候选部件框内的图像特征信息,图像其他部分的信息并没有充分利用,而本身候选部件框中特征信息相对于整幅图像过少,因此这类方法无法精确捕捉并利用整幅图像中存在的全局上下文信息,使得对飞机各部件进行分类定位时并不能达到预期的精确度。



技术实现要素:

本发明的目的是提供一种飞机部件的定位识别方法和系统,具有定位识别精确度高的特点。

为实现上述目的,本发明提供了如下方案:

一种飞机部件的定位识别方法,包括:

获取沙漏型网络模型;所述沙漏型网络模型为以飞机三通道rgb彩色图像为输入,以飞机各部件关键点的像素坐标为输出的神经网络模型;

获取待检测飞机的三通道rgb彩色图像;

对所述三通道rgb彩色图像进行预处理;

将预处理后的三通道rgb彩色图像,采用所述沙漏型网络模型,得到待检测飞机各部件关键点的像素坐标;

以所述待检测飞机各部件关键点的像素坐标为中心,以特定宽度和特定长度裁剪所述三通道rgb彩色图像,得到所述待检测飞机各部件的图像块;

将所述图像块输出,以完成对所述待检测飞机各部件的定位识别。

可选的,所述将预处理后的三通道rgb彩色图像,采用所述沙漏型网络模型,得到待检测飞机各部件关键点的像素坐标之前,还包括:

获取飞机样本图像;

选取所述样本图像中符合预设条件的图片进行标定采样;

利用标定采样的样本图像对所述沙漏型网络模型进行训练。

可选的,所述选取所述样本图像中符合预设条件的图片进行标定采样,包括:

获取所述飞机各部件的关键点,并对所述关键点进行标注;所述飞机各部件的关键点包括:机头顶端、左翼顶端、右翼顶端、左右翼与机身连接处、机尾、垂直尾翼顶端和水平尾翼的两个顶端;

根据所述各关键点的标注信息,获取所述各关键点在对应飞机样本图像中的像素坐标。

可选的,所述利用标定采样的样本图像对所述沙漏型网络模型进行训练之前,还包括:

根据所述飞机各部件关键点的像素坐标,构建各关键点的期望响应图;

根据所述各关键点的期望响应图,调节所述沙漏型网络模型的参数。

一种飞机部件的定位识别系统,包括:

网络模型获取模块,用于获取沙漏型网络模型;所述沙漏型网络模型为以飞机三通道rgb彩色图像为输入,以飞机各部件关键点的像素坐标为输出的神经网络模型;

图像获取模块,用于获取待检测飞机的三通道rgb彩色图像;

预处理模块,用于对所述三通道rgb彩色图像进行预处理;

像素坐标获取模块,用于将预处理后的三通道rgb彩色图像,采用所述沙漏型网络模型,得到待检测飞机各部件关键点的像素坐标;

图像块获取模块,用于以所述待检测飞机各部件关键点的像素坐标为中心,以特定宽度和特定长度裁剪所述三通道rgb彩色图像,得到所述待检测飞机各部件的图像块;

图像块输出模块,用于将所述图像块输出,以完成对所述待检测飞机各部件的定位识别。

可选的,所述系统还包括:

样本图像获取模块,用于获取飞机样本图像;

标定采样模块,用于选取所述样本图像中符合预设条件的图片进行标定采样;

训练模块,用于利用标定采样的样本图像对所述沙漏型网络模型进行训练。

可选的,所述标定采样模块包括:

关键点标注单元,用于获取所述飞机各部件的关键点,并对所述关键点进行标注;所述飞机各部件的关键点包括:机头顶端、左翼顶端、右翼顶端、左右翼与机身连接处、机尾、垂直尾翼顶端和水平尾翼的两个顶端;

第二像素坐标获取单元,用于根据所述各关键点的标注信息,获取所述各关键点在对应飞机样本图像中的像素坐标。

可选的,所述系统还包括:

期望响应图构建模块,用于根据所述飞机各部件关键点的像素坐标,构建各关键点的期望响应图;

沙漏型网络优化模块,用于根据所述各关键点的期望响应图,调节所述沙漏型网络模型的参数。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的一种飞机部件的定位识别方法和系统,通过采用沙漏型网络模型,来检测飞机关键点为定位识别飞机部件的途径。相对于传统部件检测和基于fasterr-cnn等深度网络,直接针对飞机关键部件框进行回归和分类的方法。本发明所述方法能够构建部件之间、部件与飞机之间的相对位置和结构关系,从而能够精确定位飞机的关键点,进而精确定位识别飞机部件,最终提升飞机部件识别准确度,进而促进飞机图像细粒度分类性能与效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的飞机部件的定位识别方法的流程示意图;

图2为本发明实施例中飞机各关键点的标记示意图;

图3为本发明实施例提供的对飞机部件进行定位方法的具体工作流程图;

图4为本发明实施例沙漏型网络模型中残差模块的结构示意图;

图5为本发明实施例沙漏型网络模型的结构示意图;

图6为本发明实施例沙漏型网络模型中连接模块的结构示意图;

图7为本发明实施例沙漏型网络模型各模块的连接关系图;

图8为本发明实施例所提供的飞机部件的定位识别系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种飞机部件的定位识别方法和系统,具有定位识别精确度高的特点。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明实施例所提供的飞机部件的定位识别方法的流程示意图,如图1所示,一种飞机部件的定位识别方法,包括:

s100、获取沙漏型网络模型。所述沙漏型网络模型为以飞机三通道rgb彩色图像为输入,以飞机各部件关键点的像素坐标为输出的神经网络模型。其中,rgb即是代表红、绿、蓝三个通道的颜色。

s101、获取待检测飞机的三通道rgb彩色图像。

s102、对所述三通道rgb彩色图像进行预处理。

s103、将预处理后的三通道rgb彩色图像,采用所述沙漏型网络模型,得到待检测飞机各部件关键点的像素坐标。

s104、以所述待检测飞机各部件关键点的像素坐标为中心,以特定宽度和特定长度裁剪所述三通道rgb彩色图像,得到所述待检测飞机各部件的图像块。

s105、将所述图像块输出,以完成对所述待检测飞机各部件的定位识别。

为了进一步提高定位的准确性,在s103之前,还包括:

获取飞机样本图像。

选取所述样本图像中符合预设条件的图片进行标定采样。

利用标定采样的样本图像对所述沙漏型网络模型进行训练。

在对所选取的样本图像中符合预设条件的图片进行标定采样时,具体包括:

获取所述飞机各部件的关键点,并对所述关键点进行标注。其中,如图2所示,所述飞机各部件的关键点包括:机头顶端、左翼顶端、右翼顶端、左右翼与机身连接处、机尾、垂直尾翼顶端和水平尾翼的两个顶端。其中,在本发明中,飞机关键点标记格式为{"name":"plane","all_points_x":[x1,x2,x3,x4,x5,x6,x7,x8],"all_points_y":[y1,y2,y3,y4,y5,y6,y7,y8]}。其中,x1,y1代表飞机机头顶端在对应图像中的像素坐标。x2,y2代表飞机左翼顶端在对应图像中的像素坐标。x3,y3代表飞机右翼顶端在对应图像中的像素坐标。x4,y4代表飞机左右翼与机身连接处在对应图像中的像素坐标。x5,y5飞机机尾在对应图像中的像素坐标。x6,y6飞机垂直尾翼顶端在对应图像中的像素坐标。x7,y7飞机水平尾翼左顶端在对应图像中的像素坐标。x8,y8飞机水平尾翼右顶端在对应图像中的像素坐标。

根据所述各关键点的标注信息,获取所述各关键点在对应飞机样本图像中的像素坐标。

为了使沙漏型网络模型的检测性能最优,飞机部件定位识别网络在利用标定采样的样本图像对所述沙漏型网络模型进行训练之前,还包括:

根据所述飞机各部件关键点的像素坐标,构建各关键点的期望响应图。

根据所述各关键点的期望响应图,调节所述沙漏型网络模型的参数。

其中,采用期望响应图调节所述沙漏型网络模型的参数,具体包括:

读取每个飞机部件关键点的标记信息,得到每个飞机关键点在对应图像中的像素坐标。

针对每个飞机关键点在图像中的像素坐标,用一个与对应飞机图像等长等宽的矩阵,在飞机关键点对应像素坐标位置设定值为1,并以该像素坐标位置为中心,在该位置邻域内每个位置均设定值,所有值服从标准差为1的高斯分布,在该邻域外所有值设定为0。

将生成的所有飞机关键点对应的与图像等长等宽的矩阵按照飞机机头顶端、飞机左翼顶端、飞机右翼顶端、飞机左右翼与机身连接处、飞机机尾、飞机垂直尾翼顶端、飞机水平尾翼左顶端、飞机水平尾翼右顶端的顺序依次在通道维度进行连接,得到一个与图像等长等宽,通道数为飞机关键点的张量。

将生成的与图像等长等宽,通道数为飞机关键点的张量作为期望响应图。

以飞机部件定位识别训练集中的图像缩放到固定尺寸,作为网络输入。

从网络中所有连接模块和网络的输出模块中得到网络的输出,共八个与图像等长等宽,通道数为飞机关键点的张量。

将得到的八个张量分别根据响应图计算二范数损失,并将八个二范数损失求加权和作为总损失。

通过总损失进行网络梯度回传更新网络中参数。

重复上述步骤,直至重复次数达到上限或总损失小于一定阈值时停止,此时将得到的沙漏型网络模型的参数进行保存,完成对沙漏型网络模型参数的调整。

下面结合说明书附图图3-图7的内容,对本发明所提供的飞机部件的定位识别方法的具体工作流程进行描述。

1、建立飞机部件数据库

建立飞机部件数据部分中又分为采集飞机图像、图像增强、标记飞机关键点以及飞机部件。采集飞机图像主要是从网络上收集大量的彩色三通道的包含飞机的图像。图像增强是指针对之前采集到的飞机图像进行一系列操作,以扩充数据量,包括但不限于针对图像的裁剪、平移、旋转、镜像、添加噪声、添加模糊。其中,平移后的图像中超出原图像边界的部分全部为0值。旋转图像时的旋转角度是任意角度。对图像进行镜像包括水平翻转镜像和垂直翻转镜像两种。对图像所添加的噪声是指任意噪声类型和噪声强度。对图像进行模糊处理包括但不限于高斯模糊、运动模糊等。

构建数据库及对图像进行预处理的主要优势在于,数据增强操作能够使得本发明中深度网络的数据大大增加,以解决单一类型样本过多的问题,进一步为网络更好地收敛创造有利条件的同时,还能够避免网络的过拟合问题。

接下来针对飞机关键点进行标记,具体来说,就是在前面收集的和数据增强后的所有图像中定位并记录下所有的飞机的几个预先定义好的关键点的像素坐标,最后将这些坐标信息连同所有图像的文件名以csv文件存储下来。csv中共有三种类型数据,分别为“编号”、“图像文件名”、“标注信息”,“编号”为该条记录的顺序编号,数据类型为字符串,“图像文件名”为该条记录所标记的图像的文件名,类型同样为字符串,“标注信息”中主要包含了飞机关键点信息,标注信息数据类型同样为字符串,格式为{"name":"plane","all_points_x":[x1,x2,x3,x4,x5,x6,x7,x8],"all_points_y":[y1,y2,y3,y4,y5,y6,y7,y8]}。其中,x1,y1代表飞机机头顶端在对应图像中的像素坐标。x2,y2代表飞机左翼顶端在对应图像中的像素坐标。x3,y3代表飞机右翼顶端在对应图像中的像素坐标。x4,y4代表飞机左右翼与机身连接处在对应图像中的像素坐标。x5,y5飞机机尾在对应图像中的像素坐标。x6,y6飞机垂直尾翼顶端在对应图像中的像素坐标。x7,y7飞机水平尾翼左顶端在对应图像中的像素坐标。x8,y8飞机水平尾翼右顶端在对应图像中的像素坐标。

对图像关键带你进行标注的主要优势在于,相比于进行多个框的标记,显然多个点的标记更为简单,这种标记方法相比于其他标注方法,能够节约大量时间,省下大量人工成本。

2、构建沙漏型网络模型并初始化:

在构建完飞机部件数据库后,需要针对基于深度学习飞机关键点检测的飞机部件定位识别方法所使用到的沙漏型网络模型进行构建,主要包括以下几个部分:构建网络输入模块、构建中间沙漏模块与连接模块、构建输出模块。

首先,介绍整个沙漏型网络模型中需要使用的残差模块的结构。残差模块主要有2个超参数需要频繁改动,分别为输入通道数和输出通道数。如图4所示,最左边的矩形表示输入该网络模块的张量。该张量首先需要经过上方实线所示路径。实线所示路径的详细结构按照从左到右顺序依次为一个通道为输入通道数的批归一化层,一个relu激活层,一个卷积核大小为1*1,输入通道为输入通道数,输出通道数为输出通道数的一半,bias设置为false的卷积层,一个批归一化层,一个relu激活层,一个卷积核大小为3*3,输入通道为输出通道数的一半,输出通道数为输出通道数的一半,padding设置为1,bias设置为false的卷积层,一个批归一化层,一个relu激活层,一个卷积核大小为1*1,输入通道为输出通道数的一半,输出通道数为输出通道数,bias设置为false的卷积层。除此之外,输入该网络模块的张量还要经过下面的虚线,与实现所示路径的计算结果相加,得到了一个与输入张量等长等宽,输出通道为输出通道数的张量。应该注意到输出通道为256仅为本实施例中的一个设置,任何不产生错误的输入通道数与输出通道数设置均可。使用该残差模块的主要优势在于,相比于一般的网络模块,残差网络模块能够针对残差进行学习,使得网络模型更加容易收敛,同时由于输入通道和输出通道可以随意设置,泛用性非常强,能在网络多处进行使用。

针对构建网络输入模块,该模块中各种网络模块按照顺序连接,每个网络层详细设置为:一个卷积核大小为7*7,输入通道数为3,输出通道为64,stride为2,padding为3,bias设置为false的卷积层。一个输入通道为64的批归一化层。一个relu激活层。然后紧接着一个输入64通道,输出128通道的残差模块。一个核大小为2*2,stride为2的最大池化层。一个输入128通道,输出128通道的残差模块。一个输入128通道,输出256通道的残差模块,至此,网络的输入模块构建完毕。

接下来针对沙漏型网络中的沙漏模块进行构建。构建沙漏模块的时候主要有一个沙漏层数layer_num和通道数channel_num两个超参数。如图5所示,其中将一个最大池化层,一个残差模块依次连接而成的网络子块称作一个下采样模块,而将一个残差模块和一个尺寸参数设置为2的上采样层连接而成的网络子块称作一个上采样模块。整个沙漏模块连接关系如图5所示,下路为layer_num个下采样模块依次相连,然后连接一个残差模块,最后与layer_num个上采样模块依次相连。上路的每个矩形为一个残差模块,将下采样之前的特征图作为输入,然后输出到对应大小的上采样模块的输出位置并相加。至此,网络的沙漏模块构建完毕。

接下来针对连接模块进行构建。如图6所示,中间的每个沙漏模块的输入由三部分构成。下面分别讲述三部分分别如何得到。首先上面虚线表示部分是上一个沙漏模块的输入。然后中间部分是一个卷积核为1*1大小,输入通道输出通道均为channel_num的卷积层。下面的部分为一个卷积核为1*1大小,输入通道为channel_num,输出通道为关键点个数的卷积层,并将该层的输出作为网络的中间预测结果进行保存,然后再连接一个卷积核1*1大小,输出通道数为关键点个数,输出为channel_num的卷积层。进一步,将三个部分的计算结果全部相加,并将结果作为下一个沙漏模块的输入。至此,沙漏型网络连接模块构建完毕。

进一步针对输出模块进行构建。输出模块较为简单,仅由一个卷积核大小为1*1,输入通道为channel_num,输出通道为飞机关键点个数的卷积层构成。

图7展示的是所构建得到的沙漏型网络模型各模块的连接关系图,网络结构依次为输入模块,8个沙漏模块和7个连接模块依次相连,然后是输出模块。每一个模块的输出作为与之相连的下一个模块的输入。

接下来针对构建的沙漏型网络模型初始化。需要初始化的参数包括:网络中的卷积层参数、批归一化层参数。参数初始化方法为卷积层中所有参数满足均值为0,标准差为1的高斯分布。批归一化层中所有伽马参数初始化为1,贝塔参数初始化为0。

3、训练沙漏型网络参数

本步骤的主要目的是利用第一步建立的飞机部件数据库,针对第二步中构建的沙漏型网络模型进行有关参数的训练和调节,使得沙漏型网络模型具备针对飞机部件的检测能力。其中需要完成的事情主要包括参数训练与模型保存。

在参数训练过程中,待训练的参数主要包含以下几种参数,模型中卷积层的卷积核参数、批归一化层中的均值和方差参数。整个训练过程主要流程如下:

(1)准备输入图像数据。

在飞机部件数据库中取出某一张图像,将图像缩放至长256像素、宽256像素大小,并将数据类型从uint8型变量转换至float32型变量,此时存储数据形式为float32型变量的一个形状为[256,256,3]的ndarrary型数组。接下来将该数组利用转置函数进行重新排序,将原数组第一维度转变为新数组第三维度,原数组第二维度转变为新数组第一维度,原数组第三维度转变为新数组第二维度,得到了一个存储数据形式为float32型变量的一个形状为[3,256,256]的ndarrary型数组。接下来将得到的新数组在第一维度上进行扩展,得到了一个存储数据形式为float32型变量的一个形状为[1,3,256,256]的ndarrary型数组。最后将该数组转变成数据格式为float32,形状为[1,3,256,256]的张量。如果一批输入数据为多张图像,那么得到的最终张量为上面步骤所述的得到的单张图像张量在第一维度上进行堆叠,最终形状为[b,3,256,256],其中b参数代表批量大小。

(2)准备响应图数据。

首先需要根据输入图像数据库,找出对应于输入图像的关键点标记信息。标记信息格式为{"name":"plane","all_points_x":[x1,x2,x3,x4,x5,x6,x7,x8],"all_points_y":[y1,y2,y3,y4,y5,y6,y7,y8]}。其中,x1,y1代表飞机机头顶端在对应图像中的像素坐标。x2,y2代表飞机左翼顶端在对应图像中的像素坐标。x3,y3代表飞机右翼顶端在对应图像中的像素坐标。x4,y4代表飞机左右翼与机身连接处在对应图像中的像素坐标。x5,y5飞机机尾在对应图像中的像素坐标。x6,y6飞机垂直尾翼顶端在对应图像中的像素坐标。x7,y7飞机水平尾翼左顶端在对应图像中的像素坐标。x8,y8飞机水平尾翼右顶端在对应图像中的像素坐标。得到图像对应的标签之后,针对每一个关键点,例如针对飞机机头顶端关键点,获取x1,y1坐标后,生成一个与输入图像等长等宽的矩阵,以像素坐标为(x1,y1)的点为中心,每个像素点的值服从一个均值为0,方差为1的二维高斯分布,得到的矩阵作为与飞机机头顶端关键点对应的期望响应图。接下来针对共k个飞机关键点,每个关键点生成一个对应的矩阵,并将k个矩阵在第三个维度上按照顺序拼接起来,形成一个存储数据形式为float32,形状为[k,256,256]的ndarrary型数组。最后将该张量在第一个维度进行扩展,得到了一个存储数据形式为float32型变量的一个形状为[1,k,256,256]的ndarrary型数组。最后将该数组转变成数据格式为float32,形状为[1,k,256,256]的张量,该张量即为对应于一张图像的飞机关键点响应图。如果一批输入数据为多张图像,那么得到的最终响应张量为上面步骤所述的得到的单张图像张量在第一维度上进行堆叠,最终形状为[b,k,256,256],其中b参数代表批量大小,k代表飞机关键点个数。在本实施例中k值取8,但是任意整数均可。

这一过程的主要优势在于,相比于直接用坐标值作为网络的监督信息,响应图能够使得网络更容易收敛,很大程度上避免了损失函数震荡不收敛的情况。

(3)输入网络得到输出并计算损失函数。

将准备输入数据步骤中得到的张量,作为输入给入沙漏型网络模型,并得到其最后一层输出张量和7个中间层输出张量,共8个形状为[b,k,256,256]大小的张量。其中b代表批量大小,与输入图像对应。k代表了网络模型中的飞机关键点个数,后面两个参数代表图像的长与宽。将8个张量分别与准备响应图数据步骤中得到的大小为[b,k,256,256]的响应图数据进行损失函数的计算,并最终将8个损失函数值进行加权和作为最终损失函数值。在本实施例中选取的损失函数为二范数损失函数,即均方误差函数,其定义公式为:

l2loss=|f(x)-y|2

其中,x代表准备输入数据中的输入数据,y代表准备响应图数据,f(x)代表网络的输出,经过计算得到损失函数值。应当注意,该损失函数只是本实施例中所选取的一种损失函数,在这个步骤中任何不会引起计算错误的损失函数均可以应用于此。

(4)根据损失函数反向传播更新网络参数。

根据步骤(3)计算得到的损失函数值,进行网络的反向传播,并根据反向传播的误差计算出对应每个参数的更新量,每一个批次进行一次损失函数计算和一次反向传播和参数更新,称为一个step。在重复固定次数的step后,将所有模型参数以文件形式保存,该文件称为,中间模型,这个过程称为一个epoch。在重复固定次数的epoch后,或者损失函数低于一定阈值后,将当前模型参数以文件形式保存,称为最终模型参数。在本实施例中,所取step迭代次数、epoch迭代次数、阈值分别取8000,200,0.0001。得到的最终模型参数,用于后续模型的实际应用,即测试和实际场景使用。

4、沙漏型网络模型的实际应用

这一主要利用步骤2中构建的沙漏型网络模型和步骤3中训练得到的沙漏型网络相关参数,进行实际场景的应用。

主要包含以下步骤:获取待检测飞机部件图像、图像的预处理、网络计算得到输出、根据输出计算得到飞机关键点位置与飞机部件裁剪图像。

其中,获取待检测飞机部件图像,具体为,通过图像采集器获取待检测飞机图像,或者通过已保存的文件进行读取均可。

图像的预处理,具体为,对图像进行预处理的过程中,将上一步中获取的待检测图像,缩放至长256像素、宽256像素大小,并将数据类型从uint8型变量转换至float32型变量,此时存储数据形式为float32型变量的一个形状为[256,256,3]的ndarrary型数组。接下来将该数组利用转置函数进行重新排序,将原数组第一维度转变为新数组第三维度,原数组第二维度转变为新数组第一维度,原数组第三维度转变为新数组第二维度,得到了一个存储数据形式为float32型变量的一个形状为[3,256,256]的ndarrary型数组。接下来将得到的新数组在第一维度上进行扩展,得到了一个存储数据形式为float32型变量的一个形状为[1,3,256,256]的ndarrary型数组。最后将该数组转变成数据格式为float32,形状为[1,3,256,256]的张量。如果一批输入数据为多张待检测图像,那么得到的最终张量为上面步骤所述的得到的单张图像张量在第一维度上进行堆叠,最终形状为[b,3,256,256],其中b参数代表批量大小。

网络计算得到输出,具体为,将准备输入数据步骤中得到的张量,作为输入给入已经加载了训练好的上述沙漏型网络参数的沙漏型网络模型,并得到其输出张量,输出为一个形状为[b,k,256,256]大小的张量。其中b代表批量大小,与输入图像对应。k代表了网络模型中的飞机关键点个数,后面两个参数代表图像的长与宽。

根据输出计算得到飞机关键点位置和飞机部件裁剪图像。具体为,根据得到的张量,针对每张图像,将张量按照第一个维度分为b个[1,k,256,256]的张量。针对每个图像对应的张量,针对每个关键点,将张量按照第二个维度分为k个[1,1,256,256]的张量,并在第三个和第四个维度上找出该二维平面内的最大值点,并将最大值点的像素坐标记录下来,作为对应图像的对应关键点的预测像素坐标。将该图像的所有关键点像素坐标均计算出来,得到所有飞机关键点的网络预测位置,并以图2的方式可视化,将可视化的结果以图像形式保存。同时,针对每个关键点的网络预测位置,以该预测位置为中心,裁剪出长为64,宽为64的图像块,作为该关键点对应的飞机部件的裁剪图像。对应关系为:飞机机头顶端对应飞机机头、飞机左翼顶端对应飞机左翼、飞机右翼顶端对应飞机右翼、飞机左右翼与机身连接处对应机身、飞机机尾(关键点)对应飞机机尾(部件)、飞机垂直尾翼顶端对应飞机垂直尾翼、飞机水平尾翼左顶端对应飞机水平左尾翼、飞机水平尾翼右顶端对应飞机水平右尾翼。

此外,本发明还对应于上述定位识别方法提供了一种定位识别系统,如图8所示,一种飞机部件的定位识别系统,包括:网络模型获取模块1、图像获取模块2、预处理模块3、像素坐标获取模块4、图像块获取模块5和图像块输出模块6。

其中,网络模型获取模块1用于获取沙漏型网络模型。所述沙漏型网络模型为以飞机三通道rgb彩色图像为输入,以飞机各部件关键点的像素坐标为输出的神经网络模型。

图像获取模块2用于获取待检测飞机的三通道rgb彩色图像。

预处理模块3用于对所述三通道rgb彩色图像进行预处理。

像素坐标获取模块4用于将预处理后的三通道rgb彩色图像,采用所述沙漏型网络模型,得到待检测飞机各部件关键点的像素坐标。

图像块获取模块5用于以所述待检测飞机各部件关键点的像素坐标为中心,以特定宽度和特定长度裁剪所述三通道rgb彩色图像,得到所述待检测飞机各部件的图像块。

图像块输出模块6用于将所述图像块输出,以完成对所述待检测飞机各部件的定位识别。

为了进一步提高定位识别的准确性,所述系统还包括:样本图像获取模块、标定采样模块和训练模块。

样本图像获取模块用于获取飞机样本图像。

标定采样模块用于选取所述样本图像中符合预设条件的图片进行标定采样。

训练模块用于利用标定采样的样本图像对所述沙漏型网络模型进行训练。

其中,所述标定采样模块包括:关键点标注单元和第二像素坐标获取单元。

关键点标注单元用于获取所述飞机各部件的关键点,并对所述关键点进行标注。所述飞机各部件的关键点包括:机头顶端、左翼顶端、右翼顶端、左右翼与机身连接处、机尾、垂直尾翼顶端和水平尾翼的两个顶端。

第二像素坐标获取单元用于根据所述各关键点的标注信息,获取所述各关键点在对应飞机样本图像中的像素坐标。

为了对沙漏型网络模型的参数进行调整,所述系统还包括:期望响应图构建模块和沙漏型网络优化模块。

其中,期望响应图构建模块用于根据所述飞机各部件关键点的像素坐标,构建各关键点的期望响应图。

沙漏型网络优化模块用于根据所述各关键点的期望响应图,调节所述沙漏型网络模型的参数。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的飞机部件的定位识别方法和系统,通过采用沙漏型网络模型,来检测飞机关键点为定位识别飞机部件的途径。相对于传统部件检测和基于fasterr-cnn等深度网络的直接针对飞机关键部件框进行回归和分类的方法,本发明所述方法能够构建部件之间、部件与飞机之间的相对位置和结构关系,从而能够精确定位飞机的关键点,进而精确定位识别飞机部件,最终提升飞机部件识别准确度,进而促进飞机图像细粒度分类性能与效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1