碎片的虚拟拼接方法、装置、设备及可读存储介质
未命名
09-03
阅读:82
评论:0

1.本技术涉及计算机技术领域和三维数字化文物修复技术领域,尤其涉及一种碎片的虚拟拼接方法、装置、设备及可读存储介质。
背景技术:
2.随着三维测量技术与数字可视化的发展,计算机技术逐渐被应用到文物碎片的修复工作当中。相对于传统的人工拼接,数字化的拼接有以下的优点:可以提高文物拼接的效率;使用计算机进行文物数字化虚拟拼接,缩短了碎片匹配的时间;可以减少碎片在实际拼接过程中与其余碎片的接触碰撞,减少拼接过程中对文物的“二次伤害”。
3.在大量出土的文物碎片中,存在种类不一、数量庞大和表面腐蚀等问题。传统的数字化碎片拼接包括:数据采集(三维面片的点云数据)、数据预处理、特征匹配、碎片拼接。其中,需要对文物碎片进行特征提取,再进行特征匹配,直到匹配到能拼接的碎片。该碎片拼接过程,需要经过多次的特征匹配,处理效率较低;其次,由于通过特征匹配得到拼接结果,没有对碎片进行整体处理,得到的拼接结果精确度不高。
技术实现要素:
4.本技术实施例提供一种碎片的虚拟拼接方法、装置、设备及可读存储介质,以解决相关技术存在的问题,技术方案如下:
5.第一方面,本技术实施例提供了一种碎片的虚拟拼接方法,包括:
6.获取多个碎片的点云数据;
7.将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,所述预设的输入规则包括:所述多个碎片以碎片组的方式输入至所述网络模型,每个所述碎片组包括两个碎片;所述输出结果包括拼接所述多个碎片时,所述多个碎片之间的相对位置。
8.第二方面,本技术实施例提供了一种碎片的虚拟拼接装置,包括:
9.碎片获取模块,用于获取多个碎片的点云数据;
10.结果输出模块,用于将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,所述预设的输入规则包括:所述多个碎片以碎片组的方式输入至所述网络模型,每个所述碎片组包括两个碎片;所述输出结果包括拼接所述多个碎片时,所述多个碎片之间的相对位置。
11.第三方面,本技术实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,以使至少一个处理器能够执行上述碎片的虚拟拼接方法。
12.第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
13.本技术实施例通过训练得到的网络模型对碎片进行全方位的处理,获得输出结果,避免了多次的特征提取和特征匹配步骤,提高了虚拟拼接的准确度和速度。
14.上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本技术进一步的方面、实施方式和特征将会是容易明白的。
附图说明
15.在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本技术公开的一些实施方式,而不应将其视为是对本技术范围的限制。
16.图1示出根据本技术一实施例的碎片的虚拟拼接方法的流程示意图。
17.图2示出根据本技术一实施例的获取训练样本的流程示意图。
18.图3示出根据本技术一实施例的碎片拼接过程示意图。
19.图4示出根据本技术一实施例的碎片的虚拟拼接装置的示意性结构框图。
20.图5示出用来实现本技术实施例的碎片的拼接方法的电子设备的框图。
具体实施方式
21.在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
22.图1示出根据本技术一实施例的碎片的虚拟拼接方法的流程示意图。如图1所示,该碎片虚拟拼接方法可以包括:
23.s210,获取多个碎片的点云数据。
24.本技术实施例中,多个碎片的点云数据可以是通过对多个真实碎片进行扫描等进行采集获得的点云数据。通过对多个真实碎片进行扫描获得多个真实碎片的点云数据,以通过本技术实施例的碎片虚拟拼接方法获得多个真实碎片的虚拟拼接结果,从而可以参照该虚拟拼接结果,对多个真实碎片进行拼接,减少对真实碎片拼接时的二次伤害。
25.本技术实施例中,对多个真实碎片进行扫描之前,可以对真实碎片做好标记,以标识不同的碎片。在获得碎片的点云数据时,可以采用与真实碎片相同的标记,标识对应该真实碎片的点云数据,从而方便根据虚拟拼接结果,对真实碎片进行拼接。
26.本技术实施例中,多个碎片的点云数据,可以是对扫描得到的数据进行降噪、删除等处理后得到的点云数据。其中,对扫描数据进行降噪处理,可以避免不同环境造成的干扰;对扫描数据进行删除,可以是删除点云外无连接的点以及扫描过程中外界物体遮挡生成的点。
27.本技术实施例中,对真实碎片进行扫描获得点云数据,可以是通过对一个真实碎片进行两个相对视角进行扫描,再对两个相对视角扫描得到的点进行合并,获得一个真实碎片的完整点云数据,可以避免关键数据丢失。
28.本技术实施例中,获得全部碎片的点云数据形成碎片点云文件,可以以pcd格式进行保存。
29.s220,将多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果。其中,预设的输入规则包括:多个碎片以碎片组的方式输入至网络模型,每个碎片组包括两个碎片;输出结果包括拼接多个碎片时,多个碎片之间的相对位置。
30.本技术实施例中,网络模型采用交叉编码的transformer层。网络模型基于多个训练样本的不断训练和学习得到。
31.其中,训练样本通过以下步骤获得,包括:
32.s310,采用建模软件,生成虚拟的完整物体。
33.建模软件可以是3ds max软件。利用3ds max软件形成多种不同形状或尺寸的文物模型,且分别复制多个相同的模型进行保存。
34.s320,基于刚体破碎方法对完整物体进行虚拟破碎,得到多个虚拟碎片。
35.本技术实施例中,可以采用3d voroni算法对文物模型进行虚拟破碎,每次打碎都是随机生成碎片,并在碎片断裂面处加入噪声,模拟碎片在真实情况破损的效果。
36.3d voroni算法包括:将文物模型转换成一组离散的点,生成多个随机种子点。由于种子点点的数量过于集中会影响算法的执行效率,本技术实施例采用中值滤波算法进行稀疏化处理。将多个随机种子点中,数量密集的多个种子点,可以为例如间距小于特色预设阈值的两个种子点,选取两个随机种子点的中值作为一个随机种子点;也可以根据密集程度,例如将较密集的多个种子点作为一个集合,选择该集合中的一个点作为随机种子点。
37.基于上述方式,获得多个随机种子点,每四个种子点生成一个delaunay(三角剖分)四面体;每个四面体中的任意两个种子点做中垂面;中垂面与文物模型的相交线围成闭合的凸包;删除凸包面外部分,并保留中垂面与模型相交的外围部分;保留中垂面与文物模型外表面相交曲面部分。中垂面与文物模型相交线围成闭合的凸包以及中垂面与外表面相交曲面部分,就是该虚拟文物模型生成的碎片。
38.得到碎片后,为增强碎片破损以及碎片形成不同方式的鲁棒性,对筛选出的碎片进行随机旋转、裁剪等数据增强操作。
39.将虚拟破碎后获得的碎片点云模型以三角面片的三维形式进行保存,用obj文件格式导出。
40.采用cloudcompre软件打开导出文件,对每个碎片点云均匀降采样为4096个点,用pcd文件格式保存。
41.s330,分别将任意两个碎片点云组成为一个碎片组,根据碎片组的两碎片点云是否为近邻匹配,区分正样本和负样本。
42.其中对于同一瓷器且相邻的两个碎片点云设置为positive正样本,对不同模型以及不相邻的碎片点云设置为negative负样本。
43.s340,将得到的训练样本分为训练集、验证集和测试集。
44.其中得到训练样本可以包括2000个匹配对和1600个不匹配的小规模数据集,可以按照6:2:2的比例将其分为训练集、验证集和测试集。
45.本技术实施例中,采用核点卷积(kpconv)作为主干网络,对碎片的点云数据进行特征提取,以得到碎片的关键点云。其中,碎片的点云数据可以是真实碎片的点云数据,也可以是经过虚拟破碎得到的虚拟碎片的点云数据。
46.kpconv网络核点卷积网络采用预设的核函数和预设的步长卷积,将碎片的点云数
据转化成关键点以及对应关键点的特征和以使特征可以线性投影到低维。
47.在一个示例中,输入的张量维度为4096,通过核点卷积网络的处理,张量维度变为低维度,例如d=512。
48.本技术实施例将kpconv网络作为神经网络的特征提取网络,将卷积核分别与输入点进行卷积,得到所有点云的特征,然后卷积后得到的点云特征向量与kpconv核权矩阵相乘,实现加权,得到一个点云x的特征输出。再以点云和特征作为输入,进行卷积池化并且提升维度,先通过设置核卷积的半径球域为0.06mm对点云进行检索领域,然后经过卷积操作,提取采样点的特征。输出下采样关键点m'*3、n'*3(m'<m,n'<n)的张量,m'、n'表示两点云的特征关键点数,3表示xyz坐标,同时输出特征张量m'*512、n'*512(m'<m,n'<n)。
49.在一种实施方式中,网络模型为交叉编码的transformer层,每个交叉编码的transformer层包括三个子层:多头自注意力层、多头交叉注意力层和位置型前馈网络;
50.多头自注意力层定义为:
[0051][0052]
其中,mhattn(q,k,v)表示q,k,v根据头数h进行拆分,分别进行线性变换,然后拼接每个head的输出,最后乘以对结果进一步融合;q,k,v分别表示query,key和value;表示通道上多个维度的串联,和是学习到的投影矩阵;输入网络的特征维度d,头数h=8,并且d
head
=d/h;每个多头自注意力层采用单头的点积注意力:soft max是对向量做归一化的函数。
[0053]
每个子层应用残差连接和层归一化,并使用pre-ln排序;当query,key,value设置在相同点云的多头自注意力层,关注到同一点云的其余部分;当key和value设置为另一点云的特征,则让每个点与其他点云中的点交互,即多头交叉注意力层;
[0054]
利用位置型前馈网络层分别对每个关键点的特征进行处理,每个transformer层使用带relu激活函数的两层前馈网络,应用残差连接和归一化。
[0055]
在一种实施方式中,网络模型还包括:
[0056]
向每个transformer层的输入添加正弦位置编码以合并位置信息,使得交叉编码的transformer层输出约束特征为其中,m'和n'分别是输入的两个点云数据经过核点卷积后得到的特征向量的长度,d为维度;输出约束特征用于预测出关键点拼接后的坐标;使用两层mlp获取需要的坐标。
[0057]
目标点云相对于源点云的局部对应关系为:w1和w2是学习权重,b1和b2是学习偏差;relu函数是修正线性单元,是一种非线性激活函数。
[0058]
基于局部对应关系,预测目标点云相对于源点云的变换位置;
[0059]
使用单头注意力层,预测的位置是目标关键点坐标的加权和:的加权和:是学习的投影矩阵。同时使用带sigmoid激活的单个全连接层来分别预测重
叠置信度,用来屏蔽两个输入文物碎片点云没有被准确地预测出来的对应关系的影响。
[0060]
将目标点云与源点云在至少两个方向上预测的变换位置串联,获得目标点云与源点云的相对位置。
[0061]
下采样关键点m'*3、n'*3(m'<m,n'<n)的张量和特征张量m'*512、n'*512(m'<m,n'<n)作为6层交叉注意力层(每层结构都一样)输入。首先输入位置型前馈网络,分别对每一个关键点的特征1*512进行残差连接和归一化操作。
[0062]
馈入一层交叉注意力层时,输入特征首先经过多头自注意力层,在预测点自身变换时,于同一点云其他点交互。然后经过linear层、dropout层、norm层,最终单层子注意力层输出特征张量m'*512、n'*512(m'<m,n'<n)
[0063]
将单个通道上注意力层的key,value值修改成另一通道上的点云特征值,实现两个通道特征向量交互。经过其余5层transformer层,然后到norm层,对特征向量进行线性归一化操作。
[0064]
经过两层mlp解码输出层,依次馈入linear层、relu层、linear层、relu层、linear层,得到输出特征维度为3的张量,即为预测的关键点xyz坐标,损失函数设置为bcewithlogitsloss()。
[0065]
在一种实施方式中,如图3所示,将多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果,包括:
[0066]
将第一碎片与第二碎片作为一个碎片组,输入至网络模型,获得第一拼接碎片;
[0067]
将第一拼接碎片与第三碎片作为一个碎片组,输入至网络模型,获得第二拼接碎片;
[0068]
依次将第n拼接碎片与第n+1碎片作为一个碎片组,输入至网络模型,获得第n+1拼接碎片,输出结果包括拼接第n拼接碎片与第n+1碎片时,第n拼接碎片与第n+1碎片的相对位置。
[0069]
在一种实施方式中,输出结果还包括:
[0070]
碎片组的两个碎片中,确定为源点云的碎片和确定为目标点云的碎片;以及拼接两个碎片时,目标点云相对于源点云所需要做的刚性变换,刚性变换包括平移量和旋转量;
[0071]
相应地,方法还包括:
[0072]
控制目标点云相对源点云,按照刚性变换进行变换,获得多个碎片的可视化拼接效果。
[0073]
根据sigmoid函数计算源点云预测的重叠区域得分情况,将点对应关系估计刚性变换。将两个方向上预测的变换位置串联,获得准确的旋转平移矩阵,根据准确的旋转平移矩阵对两个碎片进行拼接,获得两个碎片的拼接可视化结果。
[0074]
获取多个碎片点云之间的关键点之间的位置关系,经过齐次矩阵相乘,转化得到完整的物体可视化模型。
[0075]
本技术实施例通过刚体破碎法建立了文物碎片数据库,解决了神经网络缺乏合适的数据训练的问题。
[0076]
本技术实施例基于碎片点云局部特征,对点云进行虚拟拼接,使用了多个transformer层直接预测清晰的点对应关系,并根据点对应关系进行位置编码—解码,估计刚性变换,完成点云的拼接。
[0077]
图4示出根据本技术一实施例的碎片的虚拟拼接装置的结构框图。如图4所示,该碎片的虚拟拼接装置可以包括:
[0078]
碎片获取模块,用于获取多个碎片的点云数据;
[0079]
结果输出模块,用于将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,所述预设的输入规则包括:所述多个碎片以碎片组的方式输入至所述网络模型,每个所述碎片组包括两个碎片;所述输出结果包括拼接所述多个碎片时,所述多个碎片之间的相对位置。
[0080]
在一种实施方式中,碎片的虚拟拼接装置还包括:
[0081]
将所述碎片的点云数据输入至核点卷积网络,得到所述碎片的关键点云;
[0082]
相应地,所述将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果,包括:
[0083]
将所述多个碎片的关键点云数据按照预设的输入规则输入至网络模型,获得输出结果。
[0084]
在一种实施方式中,结果输出模块用于:
[0085]
将第一碎片与第二碎片作为一个碎片组,输入至所述网络模型,获得第一拼接碎片;
[0086]
将所述第一拼接碎片与第三碎片作为一个碎片组,输入至所述网络模型,获得第二拼接碎片;
[0087]
依次将第n拼接碎片与第n+1碎片作为一个碎片组,输入至所述网络模型,获得第n+1拼接碎片,所述输出结果包括拼接所述第n拼接碎片与第n+1碎片时,所述第n拼接碎片与第n+1碎片的相对位置。
[0088]
在一种实施方式中,所述输出结果还包括:
[0089]
所述碎片组的两个碎片中,确定为源点云的碎片和确定为目标点云的碎片;以及拼接所述两个碎片时,所述目标点云相对于所述源点云所需要做的刚性变换,所述刚性变换包括平移量和旋转量;
[0090]
相应地,所述方法还包括:
[0091]
控制所述目标点云相对所述源点云,按照所述刚性变换进行变换,获得所述多个碎片的可视化拼接效果。
[0092]
在一种实施方式中,所述网络模型通过如下步骤训练得到:
[0093]
采用建模软件,生成虚拟的完整物体;
[0094]
基于刚体破碎方法对所述完整物体进行虚拟破碎,得到多个虚拟碎片;
[0095]
将所述多个虚拟碎片,作为训练样本,训练所述网络模型。
[0096]
在一种实施方式中,所述网络模型为交叉编码的transformer层,每个交叉编码的transformer层包括三个子层:多头自注意力层、多头交叉注意力层和位置型前馈网络;
[0097]
所述多头自注意力层定义为:
[0098][0099]
其中,mhattn(q,k,v)表示q,k,v根据头数h进行拆分,分别进行线性变换,然后拼接每个head的输出,最后乘以对结果进一步融合;;q,k,v分别表示query,
key,value;表示通道上多个维度的串联,和是学习到的投影矩阵;输入网络的特征维度d,头数h=8,并且d
head
=d/h;每个多头自注意力层采用单头的点积注意力:soft max是对向量做归一化的函数。
[0100]
每个所述子层应用残差连接和层归一化,并使用pre-ln排序;当query,key,value设置在相同点云的多头自注意力层,关注到同一点云的其余部分;当key和value设置为另一点云的特征,则让每个点与其他点云中的点交互,即多头交叉注意力层;
[0101]
利用位置型前馈网络层分别对每个关键点的特征进行操作,每个transformer层使用带relu激活函数的两层前馈网络,同时应用残差连接和归一化。
[0102]
在一种实施方式中,所述网络模型还包括:
[0103]
向每个transformer层的输入添加正弦位置编码以合并位置信息,使得交叉编码的transformer层输出约束特征为其中,m'和n'分别是输入的两个点云数据经过核点卷积后得到的特征向量的长度,d为维度;输出约束特征用于预测出关键点拼接后的坐标;
[0104]
目标点云相对于源点云的局部对应关系为:w1,b1,w2,b2是可以学习的权重和偏差;relu函数是修正线性单元,是一种非线性激活函数。
[0105]
基于所述局部对应关系,预测所述目标点云相对于所述源点云的变换位置;
[0106]
将所述目标点云与所述源点云在两个方向上预测的变换位置串联,获得所述目标点云与所述源点云的相对位置。
[0107]
本技术实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
[0108]
图5示出根据本技术一实施例的电子设备的结构框图。如图5所示,该电子设备包括:存储器510和处理器520,存储器510内存储有可在处理器520上运行的指令。处理器520执行该指令时实现上述实施例中的碎片的虚拟拼接方法。存储器510和处理器520的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0109]
该电子设备还可以包括通信接口530,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器520可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总
线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0110]
可选的,在具体实现上,如果存储器510、处理器520及通信接口530集成在一块芯片上,则存储器510、处理器520及通信接口530可以通过内部接口完成相互间的通信。
[0111]
应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital dignal processing,dsp)、专用集成电路(application specific sntegrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
[0112]
本技术实施例提供了一种计算机可读存储介质(如上述的存储器510),其存储有计算机指令,该程序被处理器执行时实现本技术实施例中提供的方法。
[0113]
可选的,存储器510可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据碎片的虚拟拼接方法的电子设备的使用所创建的数据等。此外,存储器510可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器510可选包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至碎片的虚拟拼接方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0114]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0115]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0116]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
[0117]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0118]
应理解的是,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0119]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
[0120]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种碎片的虚拟拼接方法,其特征在于,包括:获取多个碎片的点云数据;将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,所述预设的输入规则包括:所述多个碎片以碎片组的方式输入至所述网络模型,每个所述碎片组包括两个碎片;所述输出结果包括拼接所述多个碎片时,所述多个碎片之间的相对位置。2.根据权利要求1所述的方法,其特征在于,还包括:将所述碎片的点云数据输入至核点卷积网络,得到所述碎片的关键点云;相应地,所述将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果,包括:将所述多个碎片的关键点云数据按照预设的输入规则输入至网络模型,获得输出结果。3.根据权利要求1或2所述的方法,其特征在于,所述将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果,包括:将第一碎片与第二碎片作为一个碎片组,输入至所述网络模型,获得第一拼接碎片;将所述第一拼接碎片与第三碎片作为一个碎片组,输入至所述网络模型,获得第二拼接碎片;依次将第n拼接碎片与第n+1碎片作为一个碎片组,输入至所述网络模型,获得第n+1拼接碎片,所述输出结果包括拼接所述第n拼接碎片与第n+1碎片时,所述第n拼接碎片与第n+1碎片的相对位置。4.根据权利要求3所述的方法,其特征在于,所述输出结果还包括:所述碎片组的两个碎片中,确定为源点云的碎片和确定为目标点云的碎片;以及拼接所述两个碎片时,所述目标点云相对于所述源点云所需要做的刚性变换,所述刚性变换包括平移量和旋转量;相应地,所述方法还包括:控制所述目标点云相对所述源点云,按照所述刚性变换进行变换,获得所述多个碎片的可视化拼接效果。5.根据权利要求2所述的方法,其特征在于,所述网络模型通过如下步骤训练得到:采用建模软件,生成虚拟的完整物体;基于刚体破碎方法对所述完整物体进行虚拟破碎,得到多个虚拟碎片;将所述多个虚拟碎片,作为训练样本,训练所述网络模型。6.根据权利要求5所述的方法,其特征在于,所述网络模型为交叉编码的transformer层,每个交叉编码的transformer层包括三个子层:多头自注意力层、多头交叉注意力层和位置型前馈网络;所述多头自注意力层定义为:其中,mhattn(q,k,v)表示q,k,v根据头数h进行拆分,分别进行线性变换,然后拼接每个head的输出,最后乘以对结果进一步融合;q,k,v分别表示query,key和
value;表示通道上多个维度的串联,和是学习到的投影矩阵;输入网络的特征维度d,头数h=8,并且d
head
=d/h;每个所述多头自注意力层采用单头的点积注意力:soft max是对向量做归一化的函数;每个所述子层应用残差连接和层归一化,并使用pre-ln排序;当query,key,value设置在相同点云的多头自注意力层,关注到同一点云的其余部分;当key和value设置为另一点云的特征,则让每个点与其他点云中的点交互,即多头交叉注意力层;利用位置型前馈网络层分别对每个关键点的特征进行处理,每个transformer层使用带relu激活函数的两层前馈网络,应用残差连接和归一化。7.根据权利要求6所述的方法,其特征在于,所述网络模型还包括:向每个transformer层的输入添加正弦位置编码以合并位置信息,使得交叉编码的transformer层输出约束特征为其中,m'和n'分别是输入的两个点云数据经过核点卷积后得到的特征向量的长度,d为维度;输出约束特征用于预测出关键点拼接后的坐标;目标点云相对于源点云的局部对应关系为:w1和w2是学习权重,b1和b2是学习偏差;relu函数是修正线性单元,是一种非线性激活函数;基于所述局部对应关系,预测所述目标点云相对于所述源点云的变换位置;将所述目标点云与所述源点云在至少两个方向上预测的变换位置串联,获得所述目标点云与所述源点云的相对位置。8.一种碎片的虚拟拼接装置,其特征在于,包括:碎片获取模块,用于获取多个碎片的点云数据;结果输出模块,用于将所述多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,所述预设的输入规则包括:所述多个碎片以碎片组的方式输入至所述网络模型,每个所述碎片组包括两个碎片;所述输出结果包括拼接所述多个碎片时,所述多个碎片之间的相对位置。9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
技术总结
本申请提出一种碎片的虚拟拼接方法、装置、设备及可读存储介质。其中,方法包括:获取多个碎片的点云数据;将多个碎片的点云数据按照预设的输入规则输入至网络模型,获得输出结果;其中,预设的输入规则包括:多个碎片以碎片组的方式输入至网络模型,每个碎片组包括两个碎片;输出结果包括拼接多个碎片时,多个碎片之间的相对位置。本申请实施例通过训练得到的网络模型对碎片进行全方位的处理,获得输出结果,避免了多次的特征提取和特征匹配步骤,提高了虚拟拼接的准确度和速度。高了虚拟拼接的准确度和速度。高了虚拟拼接的准确度和速度。
技术研发人员:罗哉 梁泉江 江文松 杨力 郭斌 胡晓峰
受保护的技术使用者:中国计量大学
技术研发日:2023.06.02
技术公布日:2023/8/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/