基于逆向建模的模型修正方法、装置、设备和存储介质转让专利

申请号 : CN202210586737.0

文献号 : CN114677468B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 欧清扬蒋念娟吕江波沈小勇

申请人 : 深圳思谋信息科技有限公司苏州思谋智能科技有限公司

摘要 :

本申请涉及一种基于逆向建模的模型修正方法、装置、设备和存储介质。所述方法包括:获取三维模型,并从三维模型中提取目标模型;将目标模型与模型素材库中的基础模型进行形状匹配;模型素材库预先存储有基础模型;在模型素材库中存在与目标模型相匹配的匹配模型的情况下,根据目标模型的尺寸和坐标调整匹配模型的尺寸和坐标,得到与目标模型的尺寸和坐标一致的待替换模型;将三维模型中的目标模型替换为待替换模型,得到修正后的三维模型。本方案可通配高精度和低精度的扫描重建要求,通过较少的交互次数,快速对三维模型进行模型修正,从而可以快速完成逆向建模过程。

权利要求 :

1.一种基于逆向建模的模型修正方法,其特征在于,所述方法包括:获取三维模型,并从所述三维模型中提取由若干个点云数据组成的目标模型;

将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;

在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;或者在所述模型素材库中不存在与所述目标模型相匹配的匹配模型的情况下,在所述目标模型上拔模出对应于所述若干个点云数据的数据质量的参考模型,并将所述目标模型的坐标赋值给所述参考模型,得到待替换模型;所述数据质量包括较高、一般和较差中的一种;

将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。

2.根据权利要求1所述的方法,其特征在于,所述将所述目标模型与模型素材库中的基础模型进行形状匹配包括:将所述目标模型的稀疏点云特征与所述基础模型的稀疏点云特征进行形状匹配;

所述方法还包括:

若所述目标模型的稀疏点云特征与所述基础模型的稀疏点云特征的形状匹配度大于匹配度阈值,则匹配成功。

3.根据权利要求1所述的方法,其特征在于,所述在所述模型素材库中不存在与所述目标模型相匹配的匹配模型的情况下,在所述目标模型上拔模出对应于所述若干个点云数据的数据质量的参考模型,并将所述目标模型的坐标赋值给所述参考模型,得到待替换模型,包括:在所述目标模型上确定与所述若干个点云数据的数据质量相对应的基准面,并基于所述基准面确定基准面轮廓;

获取拔模方向以及拔模终点,根据所述拔模方向、所述拔模终点以及所述基准面轮廓确定拔模路径;

根据所述拔模路径从所述目标模型上的所述基准面进行拔模,得到所述参考模型;

将所述目标模型的坐标赋值给所述参考模型的坐标,并将所述参考模型作为所述待替换模型。

4.根据权利要求3所述的方法,其特征在于,所述基于所述基准面确定基准面轮廓包括:根据所述基准面的点云数据的分辨率确定目标范围;

截取所述目标范围内的点云数据;

对所述目标范围内的点云数据进行轮廓拟合,确定所述基准面轮廓。

5.根据权利要求3所述的方法,其特征在于,所述在所述目标模型上确定与所述若干个点云数据的数据质量相对应的基准面,并基于所述基准面确定基准面轮廓包括:根据所述目标模型的点云数据的数据质量,获取所述目标模型的至少一个点云数据;

若所述数据质量不低于第一质量阈值,则根据所述至少一个点云数据采用近邻算法进行面拟合,得到一个点云数据对应的基准面;并采用轮廓拟合算法对所述基准面进行轮廓拟合,确定基准面轮廓;

若所述数据质量低于第一质量阈值但不低于第二质量阈值,则所述至少一个点云数据为至少三个点云数据,确定所述至少三个点云数据对应的基准面,并采用轮廓拟合算法对所述至少三个点云数据对应的基准面进行轮廓拟合,确定基准面轮廓;其中,所述至少三个点云数据中至少三个点云数据不在同一直线上;

若所述数据质量低于第二质量阈值,则所述至少一个点云数据为至少三个点云数据,确定所述至少三个点云数据对应的基准面,并获取用户根据所述至少三个点云数据对应的基准面输入的轮廓点,根据所述轮廓点确定基准面轮廓。

6.根据权利要求1所述的方法,其特征在于,所述从所述三维模型中提取由若干个点云数据组成的目标模型包括:基于点云分割算法,将所述三维模型进行结构分割,得到子结构模型;

从所述子结构模型中提取目标模型。

7.根据权利要求1至6中任意一项所述的方法,其特征在于,在所述获取三维模型之前,所述方法还包括:获取初始点云数据;

对所述初始点云数据进行预处理,分割出所述三维模型的点云数据。

8.根据权利要求6所述的方法,其特征在于,所述方法还包括:根据所述待替换模型的形状以及所述基础模型在所述三维模型中的位置,确定所述待替换模型的表面纹理类型;

从贴图素材库中查找与所述待替换模型的表面纹理类型对应的纹理贴图;

根据所述纹理贴图对所述待替换模型进行纹理贴图处理,得到贴图后的替换模型。

9.一种基于逆向建模的模型修正装置,其特征在于,所述装置包括:目标模型提取模块,用于获取三维模型,并从所述三维模型中提取由若干个点云数据组成的目标模型;

匹配模块,用于将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;

调整模块,用于在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;或者在所述模型素材库中不存在与所述目标模型相匹配的匹配模型的情况下,在所述目标模型上拔模出对应于所述若干个点云数据的数据质量的参考模型,并将所述目标模型的坐标赋值给所述参考模型,得到待替换模型;所述数据质量包括较高、一般和较差中的一种;

替换模块,用于将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。

10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

说明书 :

基于逆向建模的模型修正方法、装置、设备和存储介质

技术领域

[0001] 本申请涉及逆向建模技术领域,特别是涉及一种基于逆向建模的模型修正方法、装置、计算机设备和存储介质。

背景技术

[0002] 在机械工程领域,逆向工程是指在没有设计模型或者图纸不完整的情况下,按照现有的实物或数据,利用各种技术重新构建模型的过程。相较于传统正向设计需要较长周期,逆向工程切实提高了企业生产效率,已在机械设计领域占有较大比重。
[0003] 逆向设计通常基于图片、视频、点云、网格等扫描数据进行模型重建,自动重建的算法通常效果不佳,难以在整体及局部都保证良好的重建效果。另外自动重建的模型冗余表面较多。因此在实际的逆向设计中还需要大量的修模工作。
[0004] 目前基于扫描数据由算法逆向建模后,仍需要大量人为修模工作,修模时间较多。

发明内容

[0005] 基于此,有必要针对上述技术问题,提供一种能够减少人为修模操作,降低修模时间的基于逆向建模的模型修正方法、装置、计算机设备和计算机可读存储介质。
[0006] 第一方面,本申请提供了一种基于逆向建模的模型修正方法。所述方法包括:
[0007] 获取三维模型,并从所述三维模型中提取目标模型;
[0008] 将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;
[0009] 在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;
[0010] 将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。
[0011] 在其中一个实施例中,所述将所述目标模型与模型素材库中的基础模型进行形状匹配包括:
[0012] 将所述目标模型的稀疏点云特征与所述基础模型的稀疏点云特征进行形状匹配;
[0013] 所述方法还包括:
[0014] 若所述目标模型的稀疏点云特征与所述基础模型的稀疏点云特征的形状匹配度大于匹配度阈值,则匹配成功。
[0015] 在其中一个实施例中,所述方法还包括:
[0016] 在所述素材库中不存在与所述目标模型相匹配的匹配模型的情况下,则在所述目标模型上确定基准面,并基于所述基准面确定基准面轮廓;
[0017] 获取拔模方向以及拔模终点,根据所述拔模方向、所述拔模终点以及所述基准面轮廓确定拔模路径;
[0018] 根据所述拔模路径从所述基准面进行拔模,得到参考模型;
[0019] 根据所述目标模型的坐标确定所述参考模型的坐标,并将所述参考模型作为所述待替换模型。
[0020] 在其中一个实施例中,所述基于所述基准面确定基准面轮廓包括:
[0021] 根据所述基准面的点云数据的分辨率确定目标范围;
[0022] 截取所述目标范围内的点云数据;
[0023] 对所述目标范围内的点云数据进行轮廓拟合,确定所述基准面轮廓。
[0024] 在其中一个实施例中,所述在所述目标模型上确定基准面,并基于所述基准面确定基准面轮廓包括:
[0025] 根据所述目标模型的点云数据的数据质量,获取所述目标模型的至少一个点云数据;
[0026] 若所述数据质量不低于第一质量阈值,则根据所述至少一个点云数据采用近邻算法进行面拟合,得到一个点云数据对应的基准面;并采用轮廓拟合算法对所述基准面进行轮廓拟合,确定基准面轮廓;
[0027] 若所述数据质量低于第一质量阈值但不低于第二质量阈值,则所述至少一个点云数据为至少三个点云数据,确定所述至少三个点云数据对应的基准面,并采用轮廓拟合算法对所述至少三个点云数据对应的基准面进行轮廓拟合,确定基准面轮廓;其中,所述至少三个点云数据中至少三个点云数据不在同一直线上;
[0028] 若所述数据质量低于第二质量阈值,则所述至少一个点云数据为至少三个点云数据,确定所述至少三个点云数据对应的基准面,并获取用户根据所述至少三个点云数据对应的基准面输入的轮廓点,根据所述轮廓点确定基准面轮廓。
[0029] 在其中一个实施例中,所述从所述三维模型中提取目标模型包括:
[0030] 基于点云分割算法,将所述三维模型进行结构分割,得到子结构模型;
[0031] 从所述子结构模型中提取目标模型。
[0032] 在其中一个实施例中,在所述获取三维模型之前,所述方法还包括:
[0033] 获取初始点云数据;
[0034] 对所述初始点云数据进行预处理,分割出所述三维模型的点云数据。
[0035] 在其中一个实施例中,所述方法还包括:
[0036] 根据所述待替换模型的形状以及所述基础模型在所述三维模型中的位置,确定所述待替换模型的表面纹理类型;
[0037] 从贴图素材库中查找与所述待替换模型的表面纹理类型对应的纹理贴图;
[0038] 根据所述纹理贴图对所述待替换模型进行纹理贴图处理,得到贴图后的替换模型。
[0039] 第二方面,本申请还提供了一种基于逆向建模的模型修正装置。所述装置包括:
[0040] 目标模型提取模块,用于获取三维模型,并从所述三维模型中提取目标模型;
[0041] 匹配模块,用于将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;
[0042] 调整模块,用于在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;
[0043] 替换模块,用于将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。
[0044] 第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0045] 获取三维模型,并从所述三维模型中提取目标模型;
[0046] 将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;
[0047] 在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;
[0048] 将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。
[0049] 第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0050] 获取三维模型,并从所述三维模型中提取目标模型;
[0051] 将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;
[0052] 在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;
[0053] 将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。
[0054] 第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0055] 获取三维模型,并从所述三维模型中提取目标模型;
[0056] 将所述目标模型与模型素材库中的基础模型进行形状匹配;所述模型素材库预先存储有所述基础模型;
[0057] 在所述模型素材库中存在与所述目标模型相匹配的匹配模型的情况下,根据所述目标模型的尺寸和坐标调整所述匹配模型的尺寸和坐标,得到与所述目标模型的尺寸和坐标一致的待替换模型;
[0058] 将所述三维模型中的目标模型替换为所述待替换模型,得到修正后的三维模型。
[0059] 上述基于逆向建模的模型修正方法、装置、设备和存储介质,通过获取三维模型,并从三维模型中提取目标模型;将目标模型与模型素材库中的基础模型进行形状匹配;模型素材库预先存储有基础模型;在模型素材库中存在与目标模型相匹配的匹配模型的情况下,根据目标模型的尺寸和坐标调整匹配模型的尺寸和坐标,得到与目标模型的尺寸和坐标一致的待替换模型;将三维模型中的目标模型替换为待替换模型,得到修正后的三维模型。本方案可通配高精度和低精度的扫描重建要求,通过较少的交互次数,快速对三维模型进行模型修正,从而可以快速完成逆向建模过程。

附图说明

[0060] 图1为一个实施例中基于逆向建模的模型修正方法的应用环境图;
[0061] 图2为一个实施例中基于逆向建模的模型修正方法的流程示意图;
[0062] 图3为另一个实施例中基于逆向建模的模型修正方法的流程示意图;
[0063] 图4为一个实施例中基于逆向建模的模型修正装置的结构框图;
[0064] 图5为一个实施例中计算机设备的内部结构图。

具体实施方式

[0065] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0066] 本申请实施例提供的逆向建模方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0067] 在一个实施例中,如图2所示,提供了一种基于逆向建模的模型修正方法,包括以下步骤:
[0068] 步骤202,获取三维模型,并从三维模型中提取目标模型。
[0069] 其中,三维模型可以是采用三维扫描数据构建成的模型,也可以是采用二维拍摄数据构建成的模型。三维扫描数据是携带有强度或纹理信息的三维数据,二维拍摄数据可以通过现有SFM(Structure From Motion)算法重建出包括点云、网格以及初始模型等包含纹理的三维数据。三维扫描数据定义了三维模型的实际尺寸大小。该三维模型是整体的模型,需要从三维模型中提取需要进行修正的目标模型。目标模型可以是根据用户对模型分析后框选需要修模的三维模型的部分模型,也可以通过系统对三维模型进行分析,将三维模型进行分割成若干个子模型,再根据子模型的模型情况确定需要进行修正的子模型。
[0070] 步骤204,将目标模型与模型素材库中的基础模型进行形状匹配;模型素材库预先存储有基础模型。
[0071] 其中,在确定了需要修正的目标模型后,模型素材库中预先存储了各种形状的基础模型,如圆柱体模型,长方体模型等。将目标模型与素材库中的基础模型进行形状匹配,匹配方式可以是将目标模型与基础模型的稀疏点云特征进行匹配,也可以是将目标模型的网格与基础模型的网格进行形状匹配。三维模型可以近似看作是由具有多种基本形状的模型组合得到,基本形状为如圆柱体、长方体等形状,这些形状看成是三维模型的最小子结构模型,从三维模型中提取出需要进行修模的具有基本形状的模型,作为目标模型。将目标模型与素材库中的基础模型进行形状匹配,找到与目标模型形状相似的基础模型。
[0072] 步骤206,在模型素材库中存在与目标模型相匹配的匹配模型的情况下,根据目标模型的尺寸和坐标调整匹配模型的尺寸和坐标,得到与目标模型的尺寸一致的待替换模型。
[0073] 其中,若模型素材库中存在与目标模型相匹配的基础模型,则说明匹配成功,匹配模型即为与该目标模型匹配的基础模型。获取匹配模型后,由于匹配模型的尺寸与目标模型的尺寸可能不相同,要根据目标模型的尺寸大小调整匹配模型的尺寸大小,使得匹配模型的尺寸与目标模型的尺寸一致。并且为了后面的步骤中将待替换模型放入到三维模型中,需要根据目标模型的坐标调整匹配模型的坐标。在一个实施例中,根据匹配模型的模型特征,确定匹配模型的尺寸属性(如边长、半径、高度等),并通过目标模型获取的对应的尺寸属性大小,根据该尺寸属性大小调整匹配模型的尺寸大小。举例来说,从三维模型中提取出来的目标模型可近似看成是长方体模型,将该目标模型与素材库中的基础模型进行匹配,逐一对比,若素材库中存储有长方体模型,则获取到素材库中的长方体模型作为匹配模型,该匹配模型的尺寸属性为长、宽、高,则基于目标模型,获取到目标模型的长度尺寸、宽度尺寸以及高度尺寸,并根据长度尺寸调整匹配模型的长,根据宽度尺寸调整匹配模型的宽,根据宽度尺寸调整匹配模型的高。
[0074] 步骤208,将三维模型中的目标模型替换为待替换模型,得到修正后的三维模型。
[0075] 其中,待替换模型即为修正后的目标模型,经过上一步骤对匹配模型进行尺寸调整得到待替换模型后,待替换模型的尺寸和形状均近似为目标模型的尺寸和形状,根据三维模型中的目标模型的位置,对待替换模型进行位置粗配置,使得待替换模型具有目标模型的位置数据,将三维模型中的目标模型替换为该待替换模型。
[0076] 上述基于逆向建模的模型修正方法中,获取三维模型,并从三维模型中提取目标模型;将目标模型与模型素材库中的基础模型进行形状匹配;模型素材库预先存储有基础模型;在模型素材库中存在与目标模型相匹配的匹配模型的情况下,根据目标模型的尺寸和坐标调整匹配模型的尺寸和坐标,得到与目标模型的尺寸和坐标一致的待替换模型;将三维模型中的目标模型替换为待替换模型,得到修正后的三维模型本方案可通配高精度和低精度的扫描重建要求,通过较少的交互次数,快速对三维模型进行模型修正,从而可以快速完成逆向建模过程。
[0077] 在一个实施例中,将目标模型与模型素材库中的基础模型进行形状匹配包括:将目标模型的稀疏点云特征与基础模型的稀疏点云特征进行形状匹配;
[0078] 基于逆向建模的模型修正方法还包括:若目标模型的稀疏点云特征与基础模型的稀疏点云特征的形状匹配度大于匹配度阈值,则匹配成功。
[0079] 具体地,目标模型是通过三维点云数据进行重建得到,目标模型的稀疏点云特征描述了目标模型的形状,同时,模型素材库同时也存储了不同基础模型对应的稀疏点云特征,将目标模型的稀疏点云特征与模型素材库中基础模型的稀疏点云特征一一进行形状匹配,确定出形状匹配度。若存在形状匹配度大于匹配度阈值,则该形状匹配度对应的基础模型与目标模型的形状相似,匹配成功,该形状匹配度对应的基础模型为匹配模型。
[0080] 在一个实施例中,如图3所示,基于逆向建模的模型修正方法还包括:
[0081] 步骤301,在素材库中不存在与目标模型相匹配的匹配模型的情况下,则在目标模型上确定基准面,并基于基准面确定基准面轮廓。
[0082] 其中,可能会出现素材库中的基础模型不健全或者三维模型的数据质量较低,素材库中没有能够与目标模型进行匹配的基础模型,此时则需要根据目标模型进行模型的重建。通过用户在目标模型上进行点选目标模型的点云数据,根据点选的点云数据,可以采用近邻算法的方式对该点选的点云数据所在的面进行回归拟合,得到基准面,也可以获取至少三个点云数据以确定基准面。确定基准面后,可以采用例如轮廓拟合算法的方式对基准面采用进行轮廓拟合,自动提取基准面的轮廓并回归形状,得到基准面的轮廓,也可以通过用户点选描边的方式确定基准轮廓。
[0083] 步骤302,获取拔模方向以及拔模终点,根据拔模方向、拔模终点以及基准面轮廓确定拔模路径。
[0084] 其中,确定基准面轮廓后,需要对基准面进行拔模,拔模方向和拔模终点是需要用户通过点选的方式指定,拔模起点在基准面轮廓所在的平面上,是系统根据用户点选的距基准面轮廓所在平面最近的点确定。拔模路径是根据用户点选的拔模方向进行拟合确定。若拔模方向是直线,则只需在目标模型上点击拔模终点,就确定了从基准面轮廓所在的平面至拔模终点的方向为拔模方向,根据拔模方向在拔模终点与基准面轮廓之间采用路径拟合算法拟合出拔模路径。若拔模方向是曲线,则需要在拔模终点和基准面轮廓之间逐步根据预设的方向进行多点点选,采用多段线拟合算法根据点选的点进行路径拟合。在一个实施例中,采用最短路径规划算法拟合相邻两个点击的点之间的路径,每相邻两个点选的点均拟合出最短路径,得到多段路径,再采用路径优化算法,根据对多段路径进行曲线回归,得到更加平滑的拔模终点至基准面轮廓之间的拔模路径。在一个实施例中,方法还包括:根据拔模终点,确定拔模终点所在的终点基准面,并根据终点基准面确定终点基准面轮廓。终点基准面的确定方式与上述基准面的确定方式相同,由于在用户点选拔模终点时即选定了终点基准面上的一个点云数据,若数据质量较高,则系统可以直接根据该拔模终点拟合出终点基准面并拟合出终点基准面轮廓,若数据质量一般,则需要用户再点选至少两个点云数据,系统再根据拔模终点以及至少两个点云数据拟合出终点基准面并拟合出终点基准面轮廓,若数据质量较差,通过点选点云数据均不能拟合出较理想的终点基准面轮廓,则需要用户先通过点选至少两个点云数据以确定终点基准面,再在终点基准面上描绘出轮廓,以确定终点基准面轮廓。在一个实施例中,最短规划路径算法可以采用但不限于Dijkstra算法(迪杰斯特拉算法)、BFS(Best‑First‑Search,广度优先算法)算法和A*算法等。
[0085] 步骤303,根据拔模路径从基准面进行拔模,得到参考模型。
[0086] 其中,生成拔模路径后,拔模路径的起始点是在基准面上,沿拔模路径从基准面开始至拔模终点,从而得到参考模型。
[0087] 步骤304,根据目标模型的坐标确定参考模型的坐标,并将参考模型作为待替换模型。
[0088] 其中,由于参考模型是根据目标模型进行重新建模得到,因此,该参考模型的尺寸与目标模型的尺寸一致。但是参考模型还不具有坐标信息,因此根据目标模型的坐标确定参考模型的坐标,将目标模型的坐标信息赋值给参考坐标,将该参考模型作为待替换模型,从而将三维模型中的目标模型直接替换成该待替换模型。
[0089] 上述实施例中,在素材库中的基础模型不能与目标模型匹配的情况下,根据目标模型以及较少的交互快速完成局部建模,扩展了模型的修正方式,能够适配多种形状的目标模型的修正。
[0090] 在一个实施例中,基于基准面确定基准面轮廓包括:
[0091] 步骤401,根据基准面的点云数据的分辨率确定目标范围;
[0092] 步骤402,截取目标范围内的点云数据;
[0093] 步骤403,对目标范围内的点云数据进行轮廓拟合,确定基准面轮廓。
[0094] 具体地,三维模型是通过三维点云数据生成的,根据目标模型的点云数据进行拟合,可以确定所需要的基准面轮廓。基准面的点云数据的分辨率也就是点云的疏密情况,若点云数据的分辨率较高,则点云较密集,点云数据的质量较高,若点云数据的分辨率较低,则点云较稀疏,点云数据的质量较低。由于三维模型的电源数据中,一些点云可能距离模型边缘较远,不能作为拟合边缘的点云,需要根据总体的点云数据的分辨率确定具有该分辨率的点云,先根据分辨率确定这些点云所在的范围,即目标范围,再获取该目标范围内所有的点云数据,最后采用轮廓拟合算法并基于这些目标范围内的点云数据对基准面进行轮廓拟合,排序轮廓内的点云,确认轮廓的首点、末点以及中间点,从而得到基准面轮廓。在一些实施例中,若是要对目标模型中的子模型进行重新建模,而通过点选确定的基准面可能是需要的基准面所在的平面,这时在确定目标范围并截取点云时,会将目标模型中的其它子模型在该平面上的面的点云一并截取。因此,在截取目标范围内的点云数据后,采用对点云数据进行聚类,得到与点选的点云最近的点云数据,再对与点选的点云最近的点云数据进行拟合,得到所需的基准面轮廓。
[0095] 在一个实施例中,在目标模型上确定基准面,并基于基准面确定基准面轮廓包括:
[0096] 步骤501,根据目标模型的点云数据的数据质量,获取目标模型的至少一个点云数据;
[0097] 步骤502,若数据质量不低于第一质量阈值,则根据至少一个点云数据采用近邻算法进行面拟合,得到一个点云数据对应的基准面;并采用轮廓拟合算法对基准面进行轮廓拟合,确定基准面轮廓;
[0098] 步骤503,若数据质量低于第一质量阈值但不低于第二质量阈值,则至少一个点云数据为至少三个点云数据,确定至少三个点云数据对应的基准面,并采用轮廓拟合算法对至少三个点云数据对应的基准面进行轮廓拟合,确定基准面轮廓;其中,至少三个点云数据中至少三个点云数据不在同一直线上;
[0099] 步骤504,若数据质量低于第二质量阈值,则至少一个点云数据为至少三个点云数据,确定至少三个点云数据对应的基准面,并获取用户根据至少三个点云数据对应的基准面输入的轮廓点,根据轮廓点确定基准面轮廓。
[0100] 具体地,由于有时候输入的用于生成三维模型的点云数据的数据质量不一,采用统一的基准轮廓确定方式会使得建模准确性较低,用户可以根据数据质量(也就是三维点云数据精度)以及拟合得到的轮廓情况采用不同的点选方式,系统根据数据的质量情况以及用户的点选情况,采用不同的基准面确定方式以及基准轮廓的确定方式,提高建模的效率和质量。若数据质量较高,用户只需要在目标模型上点选至少一个点云数据(选择至少一个点云数据),若数据质量一般,用户可在目标模型上点选至少三个点云数据(选择至少三个点云数据),若数据质量较差,三维扫描点云都不在真实面上,采用拟合的方式已不能准确确定基准面,则需要用户先通过点选至少三个点云数据以确定基准面,再在基准面上以点选的方式输入轮廓点,系统根据轮廓点确定基准面轮廓。
[0101] 在一个实施例中,从三维模型中提取目标模型包括:
[0102] 步骤601,基于点云分割算法,将三维模型进行结构分割,得到子结构模型;
[0103] 步骤602,从子结构模型中提取目标模型。
[0104] 具体地,通过基于纹理、空间特征差异的点云分割算法,如区域生长分割算法,将三维模型的点云数据进行分割,得到三维模型不同子结构模型对应的点云数据。由于获取的点云数据的精度不确定,且实际建模的精度需求也存在差异,需要根据用户选定的三维模型中的位置,提取该位置对应的子结构模型的点云数据,即从子结构模型中提取目标模型。在一些实施例中,在采用点云分割算法分割不理想的情况下,可通过基础选框工具完成分割。
[0105] 在一个实施例中,在获取三维模型之前,基于逆向建模的模型修正方法还包括:
[0106] 步骤701,获取初始点云数据;
[0107] 步骤702,对初始点云数据进行预处理,分割出三维模型的点云数据;
[0108] 步骤703,根据三维模型的点云数据,得到三维模型。
[0109] 具体地,三维模型是通过点云数据生成的,而最初获取到的点云数据并不仅仅是所需要的三维模型的点云数据,可能还包括了其它模型的数据,因此在获取到初始的点云数据后,需要统一对初始点云数据进行预处理,进行前后景分割,将背景、飞点与所需要的三维模型的目标点云数据分开,从而获得目标点云数据,并根据目标点云数据生成三维模型。在一些实施例中,预处理方式可采用但不限于二维抠图处理和/或点云滤波处理。
[0110] 在一个实施例中,在对初始点云数据进行预处理,分割出三维模型的点云数据之后,根据三维模型的点云数据,得到三维模型之前,方法还包括:对三维模型的点云数据进行坐标转换。
[0111] 具体地,为方便后续步骤中在笛卡尔坐标系下选取基准面进行建模,需要整体分析三维模型,将三维模型的主要平面矫正至正对三坐标。通过平面提取算法,提取三维点云数据中的第一平面,并选出与该第一平面相互垂直的第二平面,并使第一平面与转换后的坐标系中的其中两轴所在的平面平行,再对点云数据转换坐标完成矫正。
[0112] 在一个实施例中,基于逆向建模的模型修正方法还包括:
[0113] 步骤801,根据待替换模型的形状以及目标模型在三维模型中的位置,确定待替换模型的表面纹理类型;
[0114] 步骤802,从贴图素材库中查找与待替换模型的表面纹理类型对应的纹理贴图;
[0115] 步骤803,根据纹理贴图对待替换模型进行纹理贴图处理,得到贴图后的替换模型。
[0116] 具体地,在得到待替换模型后,需要对待替换模型进行贴图处理,系统将自动进行计算并重新将贴图附着在待替换模型上。一般来说,三维模型的点云数据都是带有RGB纹理信息的,重建的待替换模型的点坐标以及像素值由目标模型的贴图插值确定。但是通过扫描的点云数据插值算出的贴图,可能会受到数据采集时的光照以及设备影像等因素,或存在明暗纹理不合理的问题。本实施例采用了贴图素材库,贴图素材库中预先存储了各种类型的贴图,贴图素材库分为纹理和主色调两个属性,模型结构也具备材质属性,根据待替换模型的形状以及待替换模型需要代替的目标模型的位置,可以推测出该目标模型对应的实际物体,从而可以根据实际物体的属性从贴图素材库中选择合适的纹理贴图以对待替换模型进行贴图处理。
[0117] 在一个实施例中,还可以提取点云数据的主要色块,再根据主要色块对待替换模型赋值纹理分布。例如地毯表面在光照下颜色分布在灰色至黑色范围内,提取地毯对应的点云数据的主要色块为灰色、次要色块为黑色。
[0118] 应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0119] 基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于逆向建模的模型修正方法的基于逆向建模的模型修正装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于逆向建模的模型修正装置实施例中的具体限定可以参见上文中对于基于逆向建模的模型修正方法的限定,在此不再赘述。
[0120] 在一个实施例中,如图4所示,提供了一种基于逆向建模的模型修正装置400,包括:目标模型提取模块401、匹配模块402、调整模块403和替换模块404,其中:
[0121] 目标模型提取模块401,用于获取三维模型,并从三维模型中提取目标模型。
[0122] 匹配模块402,用于将目标模型与模型素材库中的基础模型进行形状匹配;模型素材库预先存储有基础模型。
[0123] 调整模块403,用于在模型素材库中存在与目标模型相匹配的匹配模型的情况下,根据目标模型的尺寸和坐标调整匹配模型的尺寸和坐标,得到与目标模型的尺寸和坐标一致的待替换模型。
[0124] 替换模块404,用于将三维模型中的目标模型替换为待替换模型,得到修正后的三维模型。
[0125] 上述基于逆向建模的模型修正装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0126] 在一个实施例中,匹配模块402具体用于将目标模型的稀疏点云特征与基础模型的稀疏点云特征进行形状匹配;若目标模型的稀疏点云特征与基础模型的稀疏点云特征的形状匹配度大于匹配度阈值,则匹配成功。
[0127] 在一个实施例中,基于逆向建模的模型修正装置400还包括:轮廓确定模块、路径确定模块、拔模模块和坐标确定模块,其中:
[0128] 轮廓确定模块,用于在素材库中不存在与目标模型相匹配的匹配模型的情况下,则在目标模型上确定基准面,并基于基准面确定基准面轮廓;
[0129] 路径确定模块,用于获取拔模方向以及拔模终点,根据拔模方向、拔模终点以及基准面轮廓确定拔模路径;
[0130] 拔模模块,用于根据拔模路径从基准面进行拔模,得到参考模型;
[0131] 坐标确定模块,用于根据目标模型的坐标确定参考模型的坐标,并将参考模型作为待替换模型。
[0132] 在一个实施例中,轮廓确定模块包括:范围确定模块、截取模块和拟合模块,其中,范围确定模块用于根据基准面的点云数据的分辨率确定目标范围;截取模块用于截取目标范围内的点云数据;拟合模块用于对目标范围内的点云数据进行轮廓拟合,确定基准面轮廓。
[0133] 在一个实施例中,轮廓确定模块具体用于根据目标模型的点云数据的数据质量,获取目标模型的至少一个点云数据;若数据质量不低于第一质量阈值,则根据至少一个点云数据采用近邻算法进行面拟合,得到一个点云数据对应的基准面;并采用轮廓拟合算法对基准面进行轮廓拟合,确定基准面轮廓;若数据质量低于第一质量阈值但不低于第二质量阈值,则至少一个点云数据为至少三个点云数据,确定至少三个点云数据对应的基准面,并采用轮廓拟合算法对至少三个点云数据对应的基准面进行轮廓拟合,确定基准面轮廓;其中,至少三个点云数据中至少三个点云数据不在同一直线上;若数据质量低于第二质量阈值,则至少一个点云数据为至少三个点云数据,确定至少三个点云数据对应的基准面,并获取用户根据至少三个点云数据对应的基准面输入的轮廓点,根据轮廓点确定基准面轮廓。
[0134] 在一个实施例中,目标模型提取模块401包括分割模块和目标模块,其中:分割模块用于基于点云分割算法,将三维模型进行结构分割,得到子结构模型;目标模块用于从子结构模型中提取目标模型。
[0135] 在一个实施例中,基于逆向建模的模型修正装置400还包括:获取模块和预处理模块,其中,获取模块用于获取初始点云数据;预处理模块用于对初始点云数据进行预处理,分割出三维模型的点云数据。
[0136] 在一个实施例中,基于逆向建模的模型修正装置400还包括:表面纹理类型确定模块、查找模块和贴图模块,其中,表面纹理类型确定模块用于根据待替换模型的形状以及基础模型在三维模型中的位置,确定待替换模型的表面纹理类型;查找模块用于从贴图素材库中查找与待替换模型的表面纹理类型对应的纹理贴图;贴图模块用于根据纹理贴图对待替换模型进行纹理贴图处理,得到贴图后的替换模型。
[0137] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于逆向建模的模型修正方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0138] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0139] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0140] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0141] 在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0142] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0143] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0144] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0145] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。