CN115661374A - 一种基于空间划分和模型体素化的快速检索方法 - Google Patents

一种基于空间划分和模型体素化的快速检索方法 Download PDF

Info

Publication number
CN115661374A
CN115661374A CN202211672072.1A CN202211672072A CN115661374A CN 115661374 A CN115661374 A CN 115661374A CN 202211672072 A CN202211672072 A CN 202211672072A CN 115661374 A CN115661374 A CN 115661374A
Authority
CN
China
Prior art keywords
model
space
node
vertex
voxelization
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
Application number
CN202211672072.1A
Other languages
English (en)
Other versions
CN115661374B (zh
Inventor
王志涛
彭栩涛
刘洁丙
张旭坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Chenglian Laser Technology Co Ltd
Original Assignee
Nanjing Chenglian Laser Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Chenglian Laser Technology Co Ltd filed Critical Nanjing Chenglian Laser Technology Co Ltd
Priority to CN202211672072.1A priority Critical patent/CN115661374B/zh
Publication of CN115661374A publication Critical patent/CN115661374A/zh
Priority to PCT/CN2023/081088 priority patent/WO2024138878A1/zh
Application granted granted Critical
Publication of CN115661374B publication Critical patent/CN115661374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于空间划分和模型体素化的快速检索方法,属于3D打印技术领域,包括将模型进行体素化处理后提取模型的粗粒度特征和细粒度特征,将两种特征进行融合用八叉树形式表达特征,使用光线追踪进行查询,有效的节省体素化存储过程的空间占用量,而且也能保留原始三维网格模型的细节信息,本发明荐虑到计算性能,还在模型体素化的过程中做出一定的改进,通过对模型外表面进行多层空间划分,实现了对体素化过程的数据存储优化,大大降低了内存开销。并且使用自适应的空间划分方法,使得计算光线追踪时的效率更高。

Description

一种基于空间划分和模型体素化的快速检索方法
技术领域
本发明属于3D打印技术领域,尤其涉及一种基于空间划分和模型体素化的快速检索方法。
背景技术
随着科技的快速发展,如今大型复杂的三维模型已经十分常见,这些模型的数据量庞大,给存储、传输、显示与渲染带来很大难题。然而很多情况下,这些高分辩率的模型是无法兼容实时的处理速度的,模型的准确度和需要处理的时间也要有一个折中。在三维空间的点是乱序的,因此很难用结构化的信息进行存储。
发明内容
本发明的目的是提供一种基于空间划分和模型体素化的快速检索方法,解决了有效地节省体素化存储过程的空间占用量,而且也能保留原始三维网格模型的细节信息的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种基于空间划分和模型体素化的快速检索方法,包括如下步骤:
步骤1:建立数据采集服务器,数据采集服务器提供人机界面,用户通过人机界面输入三维模型数据,数据采集服务器根据三维模型数据构建模型,统计模型的顶点,建立顶点序列;
步骤2:建立模型处理服务器,在模型处理服务器中建立标准坐标系,将模型置于标准坐标系原点处,在标准坐标系的一个平面中采用PCA变换方法将模型对齐,将模型归一化到预设的标准单位大小,从而完成模型的翻转变换;
步骤3:根据顶点序列对处理后的模型进行八叉树空间划分,将顶点序列中的顶点划分为八个卦限空间,建立卦限空间顶点序列,将卦限空间顶点序列中的顶点放入一个待划分空间队列中,待划分空间队列中包含了多个划分空间以及对应的卦限空间顶点序列;
步骤4:模型处理服务器逐一对待划分空间队列中的所有划分空间进行是否需要二次八叉树空间划分的判定,具体包括如下步骤:
步骤S4-1:建立多个待简化队列,判断划分空间的卦限空间顶点序列中的顶点个数是否小于预设的门限值:是,则执行步骤S4-2;否,则执行步骤S4-3;
步骤S4-2:将卦限空间顶点序列放入一个待简化队列中,执行步骤5;
步骤S4-3:根据步骤3的方法原理,对划分空间进行二次八叉树空间划分,执行步骤4;
步骤5:建立检索服务器,检索服务器通过互联网从模型处理服务器中获取三角形面片列表和总待体素化的队列,通过VTK显示函数渲染后得到体素处理后的模型,并显示体素化后的模型。
优选的,所述顶点序列是由构成原始模型的所有顶点所构建的序列,顶点的属性包含方向和坐标。
优选的,在执行步骤2时,翻转变换包括平移处理和旋转处理,平移处理具体为采用对三维网格进行面积加权的方法增加对三维模型表面网格的采样数量,其表示为以下公式:
Figure DEST_PATH_IMAGE001
其中,C表示三维网格模型的重心位置,P i 表示模型中的每个三维网格的重心,S i 表示三维网格模型中每个三角形面片的表面积;
旋转处理具体为采用面积加权的主成分分析法进行处理,具体包括如下步骤:
步骤S2-1:采用网格三维模型表面点集合的协方差矩阵来计算各自对应的特征值;
步骤S2-2:然后对特征值进行排序,求出对应的特征向量(v 1v 2v 3);
步骤S2-3:在特征值排序过程中使用降序排列,根据降序排列结果,依次求得模型顶点分布的第一主方向v 1,模型顶点分布的第二主方向v 2和第三主方向v 3,其中,第一主方向v 1为模型顶点分布最为广泛的主方向;
步骤S2-4:将降序排列得出的序列所构成的矩阵进行转置变换,得到矩阵R,具体为计算协方差矩阵C p 最终实现对三维网格模型的空间旋转的归一化,同时对面积进行加权来计算上述协方差矩阵C p ,得到具有旋转不变性的三维网格模型,具体公式如下:
Figure 100002_DEST_PATH_IMAGE002
其中,C p 表示前面提到的协方差矩阵;p i 、p j q j 分别表示每个网格三角形的重心,s i s j 分别为每个网格三角形面片构成的三角形的面积。
优选的,在执行步骤3时,模型的包围盒作为八叉树的根节点,然后按顺序把所有顶点插入八叉树,通过控制八叉树的每个叶子节点的性质来实现网格模型的自适应性划分,具体包括如下步骤:
步骤S3-1:当一个顶点插入八叉树的某一叶子节点时,如果该叶子节点内还不包含顶点,则把该顶点直接放入该节点,不用做其他操作;如果该叶子节点内已经含有顶点,那就要判断该叶子节点所表示的长方体的尺寸是否大于用户指定的每个长方体的最大尺寸以及该节点所包含的顶点数目是否大于用户指定的每个长方体最多所能包含的顶点数目,如果是,则需要分裂该节点并把该节点包含的顶点分配到其子节点中去;否则,为了保证每个长方体内的顶点和边所构成的图是连通的和避免变形过大的聚类,算法还要判断在把顶点放入该长方体后,会不会导致与新顶点集合相关的三角形集合中某些三角形的朝向相反,即法向量相反,如果会,该节点也要被分裂;
步骤S3-2:在完成逐层划分之后,对数据进行编码,编码方式为:假设点云坐标P(x, y , z)和树中节点(a,b,c)相对应且树中任一个节点都与一个最小包围盒一一对应;
节点的编码为
Figure DEST_PATH_IMAGE003
为节点在n层的节点序号;
首先利用空间坐标计算索引值:
Figure 100002_DEST_PATH_IMAGE004
上式中x,y,z为点在空间的坐标,
Figure DEST_PATH_IMAGE005
为点云在空间中的最小坐标值,
Figure 100002_DEST_PATH_IMAGE006
为 八叉树分辨率,int表示计算结果取整;
其编码可用二进制表示为:
Figure DEST_PATH_IMAGE007
节点序号
Figure 100002_DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE009
之间的关系可表示为:
Figure 100002_DEST_PATH_IMAGE010
若知道八叉树某一节点序号
Figure 404186DEST_PATH_IMAGE008
,利用
Figure 242698DEST_PATH_IMAGE008
Figure 756856DEST_PATH_IMAGE009
之间的关系得出:
Figure DEST_PATH_IMAGE011
上式中mod为取模运算符,利用上述公式可以由点A包围盒邻接的立方体求出节点在树中的编码,即可从根节点沿路径检测出节点,按此规则,在点A搜索出距离最近的K个点,并得到点A的K邻域N|A|;
步骤S3-3:通过八叉树结构对每个点搜索其邻域;查询非空叶子节点所在立方体的数据点和周围26个叶子节点立方体中的数据点,找到最近的K个点作为点云的K邻域,如果邻域内点的个数不足K个;则扩大搜索范围至124个立方体,最终完成K邻域的建立。
优选的,在执行步骤5时,检索的方式是鼠标点击时间。
优选的,所述体素处理具体为将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。
优选的,在执行步骤5时,体素处理的具体包括如下步骤:
步骤S5-1:首先计算出模型的AABB包围盒;
步骤S5-2:然后根据空间分辨率对包围盒进行划分,得到每个大小为(X/N) * (Y/N) * (Z/N)空间像素列表;
步骤S5-3:对构成3D模型的多边形或三角形列表进行遍历,得到这些基本体元所对就应的包围盒,然后由AABB求交运算得到这些基本体元所能影响到的体素单元,将这些体素单元做为待判断的基本对象;
步骤S5-4:做进一步的精确判定,使用三角形与AABB的求交算法确定这些基本体元所能影响到最终体素,并将这些体素标记为非空,完成对模型表面的体素化处理。
优选的,在执行步骤5时,将模型的连续点映射到体素。
优选的,在执行步骤5时,通过VTK显示函数渲染后得到体素处理后的模型时,还进行光线追踪处理;在光线追踪处理时,通过时间戳的方式标记已经计算过交点的几何体,每条光线带一个单调递增的编号,每个几何体记录与它做过交点计算的最大光线编号,从而快速定位到所操作的网格中的三角面片。
本发明所述的一种基于空间划分和模型体素化的快速检索方法,解决了有效地节省体素化存储过程的空间占用量,而且也能保留原始三维网格模型的细节信息的技术问题,本发明荐虑到计算性能,还在模型体素化的过程中做出一定的改进,通过对模型外表面进行多层空间划分,实现了对体素化过程和数据存储优化,大大降低了内存开销。并且使用自适应的空间划分方法,使得计算光线时的效率更高。
附图说明
图1是本发明的主流程图;
图2是本发明的模型包围盒的示意图。
具体实施方式
由图1-图2所示的一种基于空间划分和模型体素化的快速检索方法,包括如下步骤:
步骤1:建立数据采集服务器,数据采集服务器提供人机界面,用户通过人机界面输入三维模型数据,数据采集服务器根据三维模型数据构建模型,统计模型的顶点,建立顶点序列;所述顶点序列是由构成原始模型的所有顶点所构建的序列,顶点的属性包含方向和坐标。
步骤2:建立模型处理服务器,在模型处理服务器中建立标准坐标系,将模型置于标准坐标系原点处,在标准坐标系的一个平面中采用PCA变换方法将模型对齐,将模型归一化到预设的标准单位大小,从而完成模型的翻转变换;
由于三维模型具有不同的空间尺度、不同的空间位置、以及旋转角度和拓扑结构等等,这些都会成为影响三维模型检索精度的重要因素,因此确定统一的三维模型表述方法,保证模型的空间尺度、空间位置以及旋转角度的统一性是三维模型特征提取的重中之重。为保证平移不变性,本发明将模型置于坐标系原点处;为保证旋转的不变,本发明在一个标准的坐标平面中采用PCA(Principal Component Analysis)变换方法将模型对齐;为保证尺度的不变性,本发明需要将模型归一化到标准单位大小;为保证方位的不变性,本发明需要将模型进行翻转变换。
在执行步骤2时,翻转变换包括平移处理和旋转处理,平移处理需要解决模型的原点位置问题,需要对模型原点的位置进行归一化操作,模型重心平移可以将三维模型的重心平移到标准坐标系的原点上,本发明采用对三维网格进行面积加权的方法增加对三维模型表面网格的采样数量,从而减少不同网格面积的三角形网格对模型重心位置产生的偏差,其表示为以下公式:
Figure DEST_PATH_IMAGE012
其中,C表示三维网格模型的重心位置,P i 表示模型中的每个三维网格的重心,S i 表示三维网格模型中每个三角形面片的表面积;
旋转处理的主要目的是修正相同模型在不同角度下的偏差,旋转处理具体为采用面积加权的主成分分析法进行处理,具体包括如下步骤:
步骤S2-1:采用网格三维模型表面点集合的协方差矩阵来计算各自对应的特征值;
步骤S2-2:然后对特征值进行排序,求出对应的特征向量(v 1v 2v 3);
步骤S2-3:在特征值排序过程中使用降序排列,根据降序排列结果,依次求得模型顶点分布的第一主方向v 1,模型顶点分布的第二主方向v 2和第三主方向v 3,其中,第一主方向v 1为模型顶点分布最为广泛的主方向;
步骤S2-4:将降序排列得出的序列所构成的矩阵进行转置变换,得到矩阵R,具体为计算协方差矩阵C p 最终实现对三维网格模型的空间旋转的归一化,同时对面积进行加权来计算上述协方差矩阵C p ,得到具有旋转不变性的三维网格模型,具体公式如下:
Figure 89749DEST_PATH_IMAGE002
其中,C p 表示前面提到的协方差矩阵;p i 、p j q j 分别表示每个网格三角形的重心,s i s j 分别为每个网格三角形面片构成的三角形的面积。
步骤3:根据顶点序列对处理后的模型进行八叉树空间划分,将顶点序列中的顶点划分为八个卦限空间,建立卦限空间顶点序列,将卦限空间顶点序列中的顶点放入一个待划分空间队列中,待划分空间队列中包含了多个划分空间以及对应的卦限空间顶点序列;
在执行步骤3时,模型的包围盒作为八叉树的根节点,然后按顺序把所有顶点插入八叉树,通过控制八叉树的每个叶子节点的性质来实现网格模型的自适应性划分,具体包括如下步骤:
步骤S3-1:当一个顶点插入八叉树的某一叶子节点时,如果该叶子节点内还不包含顶点,则把该顶点直接放入该节点,不用做其他操作;如果该叶子节点内已经含有顶点,那就要判断该叶子节点所表示的长方体的尺寸是否大于用户指定的每个长方体的最大尺寸以及该节点所包含的顶点数目是否大于用户指定的每个长方体最多所能包含的顶点数目,如果是,则需要分裂该节点并把该节点包含的顶点分配到其子节点中去;否则,为了保证每个长方体内的顶点和边所构成的图是连通的和避免变形过大的聚类,算法还要判断在把顶点放入该长方体后,会不会导致与新顶点集合相关的三角形集合中某些三角形的朝向相反,即法向量相反,如果会,该节点也要被分裂;
步骤S3-2:在完成逐层划分之后,对数据进行编码,编码方式为:假设点云坐标P(x, y , z)和树中节点(a,b,c)相对应且树中任一个节点都与一个最小包围盒一一对应;
节点的编码为
Figure 700859DEST_PATH_IMAGE003
为节点在n层的节点序号;
首先利用空间坐标计算索引值:
Figure 257742DEST_PATH_IMAGE004
上式中x,y,z为点在空间的坐标,
Figure 956400DEST_PATH_IMAGE005
为点云在空间中的最小坐标值,
Figure 686459DEST_PATH_IMAGE006
为 八叉树分辨率,int表示计算结果取整;
其编码可用二进制表示为:
Figure 89759DEST_PATH_IMAGE007
节点序号
Figure 755226DEST_PATH_IMAGE008
Figure 243976DEST_PATH_IMAGE009
之间的关系可表示为:
Figure 777726DEST_PATH_IMAGE010
若知道八叉树某一节点序号
Figure 35532DEST_PATH_IMAGE008
,利用
Figure 121168DEST_PATH_IMAGE008
Figure 159532DEST_PATH_IMAGE009
之间的关系得出:
Figure DEST_PATH_IMAGE013
上式中mod为取模运算符,利用上述公式可以由点A包围盒邻接的立方体求出节点在树中的编码,即可从根节点沿路径检测出节点,按此规则,在点A搜索出距离最近的K个点,并得到点A的K邻域N|A|;
步骤S3-3:通过八叉树结构对每个点搜索其邻域;查询非空叶子节点所在立方体的数据点和周围26个叶子节点立方体中的数据点,找到最近的K个点作为点云的K邻域,如果邻域内点的个数不足K个;则扩大搜索范围至124个立方体,最终完成K邻域的建立。
步骤4:模型处理服务器逐一对待划分空间队列中的所有划分空间进行是否需要二次八叉树空间划分的判定,具体包括如下步骤:
步骤S4-1:建立多个待简化队列,判断划分空间的卦限空间顶点序列中的顶点个数是否小于预设的门限值:是,则执行步骤S4-2;否,则执行步骤S4-3;
步骤S4-2:将卦限空间顶点序列放入一个待简化队列中,执行步骤5;
步骤S4-3:根据步骤3的方法原理,对划分空间进行二次八叉树空间划分,执行步骤4;
步骤5:建立检索服务器,检索服务器通过互联网从模型处理服务器中获取三角形面片列表和总待体素化的队列,通过VTK显示函数渲染后得到体素处理后的模型,并显示体素化后的模型。
体素化:将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。表示模型的空间体素跟表示图像的二维像素比较相似,只不过从二维的点扩展到三维的立方体单元。
在执行步骤5时,检索的方式是鼠标点击时间。所述体素处理具体为将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。
在执行步骤5时,体素处理的具体包括如下步骤:
步骤S5-1:首先计算出模型的AABB包围盒;
步骤S5-2:然后根据空间分辨率对包围盒进行划分,得到每个大小为(X/N) * (Y/N) * (Z/N)空间像素列表;
步骤S5-3:对构成3D模型的多边形或三角形列表进行遍历,得到这些基本体元所对就应的包围盒,然后由AABB求交运算得到这些基本体元所能影响到的体素单元,将这些体素单元做为待判断的基本对象;
步骤S5-4:做进一步的精确判定,使用三角形与AABB的求交算法确定这些基本体元所能影响到最终体素,并将这些体素标记为非空,完成对模型表面的体素化处理。
在执行步骤5时,将模型的连续点映射到体素。
本实施例中,体素化时又包含了顶点体素化、边缘素体化和三角形面片体素化处理,顶点体素化具体为:
对于网络三维模型而言,连续空间中任意一个顶点都有一个在离散空间中与之对应的体素点,同理对顶点的体素化过程,也是一对一的映射过程。本算法需要将模型的连续点映射到体素,从而实现三维模型的体素化。假设通过坐标尺度归一化处理后的三维模型刚好能被一个L×L×L的立方体包围盒所包围,如果将该立方体包围盒分为n×n×n个体素,那么每个体素的大小为w×w×w,其中w=L/n。因此对于三维网格模型上的连续点(x,y,z),映射到体素(x',y',z')
Figure DEST_PATH_IMAGE014
边缘体素化具体为:
对于三维网格模型边的体素化,画以分为两种情况:第一种是边的长度L小于体素的边长w,在这种情况下,要么边的两个端点在同一个体素内,要么两个顶点在两个体素内,此时根据实际情况进行体素化即可。第二种是边的长度L大于体素的边长w ,这时需要将这个边进行等分,将L分成个新的边,使得每个都小于w即可。这样就可以按照第一种情况下的方法实现对边的体素化处理。
三角形面片体素化具体为:
对于网格三维模型表面的三角形而言,如果它的三个边的长度都小于体素的宽度w,那么三角形的三个顶点会映射到同一个体素,或是相邻的体素当中,此时仅对三个顶点进行体素化,就可以实现三角形的体素化。
如果三角形的边长超过体素的宽度w,需要对三角形进行切割,将其分成多个小三角形,其中小三角形的边长应满足任意边的边长都不超过体素宽度w。之后按照三角形边长小于体素宽度w的方式对其进行体素化。
在执行步骤5时,通过VTK显示函数渲染后得到体素处理后的模型时,还进行光线追踪处理;在光线追踪处理时,通过时间戳的方式标记已经计算过交点的几何体,每条光线带一个单调递增的编号,每个几何体记录与它做过交点计算的最大光线编号,从而快速定位到所操作的网格中的三角面片。
光线追踪的定义为光线追踪的原理就跟它的名字一样,模拟物理中的光线,光线是怎么走的,就跟着它走。具体来讲,一条光线从光源处出发,途中条光线可能会击中某个物体,然后就会发生折射或反射,并且会损失一部分光能。那些最终能射入人的眼睛(或照相机)的光线,就会在人的眼睛(或照相机)内留下影像,就看到了光来源位置的物体。而渲染器就是去模拟一个这样的过程。
几何体可能位于多个网格中,为了避免重复计算,要用某种方式标记已经计算过交点的几何体,本发明采用的方法是时间戳。
本发明所述的一种基于空间划分和模型体素化的快速检索方法,解决了有效地解决了体素化存储过程的空间占用量过高和原始三维网格模型的细节信息丢失的技术问题。本发明荐虑到计算性能,还在模型体素化的过程中做出一定的改进,通过对模型外表面进行多层空间划分,实现了对体素化过程的数据存储优化,大大降低了内存开销。并且使用自适应的空间划分方法,使得计算光线追踪时的效率更高。

Claims (9)

1.一种基于空间划分和模型体素化的快速检索方法,其特征在于:包括如下步骤:
步骤1:建立数据采集服务器,数据采集服务器提供人机界面,用户通过人机界面输入三维模型数据,数据采集服务器根据三维模型数据构建模型,统计模型的顶点,建立顶点序列;
步骤2:建立模型处理服务器,在模型处理服务器中建立标准坐标系,将模型置于标准坐标系原点处,在标准坐标系的一个平面中采用PCA变换方法将模型对齐,将模型归一化到预设的标准单位大小,从而完成模型的翻转变换;
步骤3:根据顶点序列对处理后的模型进行八叉树空间划分,将顶点序列中的顶点划分为八个卦限空间,建立卦限空间顶点序列,将卦限空间顶点序列中的顶点放入一个待划分空间队列中,待划分空间队列中包含了多个划分空间以及对应的卦限空间顶点序列;
步骤4:模型处理服务器逐一对待划分空间队列中的所有划分空间进行是否需要二次八叉树空间划分的判定,具体包括如下步骤:
步骤S4-1:建立多个待简化队列,判断划分空间的卦限空间顶点序列中的顶点个数是否小于预设的门限值:是,则执行步骤S4-2;否,则执行步骤S4-3;
步骤S4-2:将卦限空间顶点序列放入一个待简化队列中,执行步骤5;
步骤S4-3:根据步骤3的方法原理,对划分空间进行二次八叉树空间划分,执行步骤4;
步骤5:建立检索服务器,检索服务器通过互联网从模型处理服务器中获取三角形面片列表和总待体素化的队列,通过VTK显示函数渲染后得到体素处理后的模型,并显示体素化后的模型。
2.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:所述顶点序列是由构成原始模型的所有顶点所构建的序列,顶点的属性包含方向和坐标。
3.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤2时,翻转变换包括平移处理和旋转处理,平移处理具体为采用对三维网格进行面积加权的方法增加对三维模型表面网格的采样数量,其表示为以下公式:
Figure 182778DEST_PATH_IMAGE001
其中,C表示三维网格模型的重心位置,P i 表示模型中的每个三维网格的重心,S i 表示三维网格模型中每个三角形面片的表面积;
旋转处理具体为采用面积加权的主成分分析法进行处理,具体包括如下步骤:
步骤S2-1:采用网格三维模型表面点集合的协方差矩阵来计算各自对应的特征值;
步骤S2-2:然后对特征值进行排序,求出对应的特征向量(v 1v 2v 3);
步骤S2-3:在特征值排序过程中使用降序排列,根据降序排列结果,依次求得模型顶点分布的第一主方向v 1,模型顶点分布的第二主方向v 2和第三主方向v 3,其中,第一主方向v 1为模型顶点分布最为广泛的主方向;
步骤S2-4:将降序排列得出的序列所构成的矩阵进行转置变换,得到矩阵R,具体为计算协方差矩阵C p 最终实现对三维网格模型的空间旋转的归一化,同时对面积进行加权来计算上述协方差矩阵C p ,得到具有旋转不变性的三维网格模型,具体公式如下:
Figure DEST_PATH_IMAGE002
其中,C p 表示前面提到的协方差矩阵;p i 、p j q j 分别表示每个网格三角形的重心,s i s j 分别为每个网格三角形面片构成的三角形的面积。
4.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤3时,模型的包围盒作为八叉树的根节点,然后按顺序把所有顶点插入八叉树,通过控制八叉树的每个叶子节点的性质来实现网格模型的自适应性划分,具体包括如下步骤:
步骤S3-1:当一个顶点插入八叉树的某一叶子节点时,如果该叶子节点内还不包含顶点,则把该顶点直接放入该节点,不用做其他操作;如果该叶子节点内已经含有顶点,那就要判断该叶子节点所表示的长方体的尺寸是否大于用户指定的每个长方体的最大尺寸以及该节点所包含的顶点数目是否大于用户指定的每个长方体最多所能包含的顶点数目,如果是,则需要分裂该节点并把该节点包含的顶点分配到其子节点中去;否则,为了保证每个长方体内的顶点和边所构成的图是连通的和避免变形过大的聚类,算法还要判断在把顶点放入该长方体后,会不会导致与新顶点集合相关的三角形集合中某些三角形的朝向相反,即法向量相反,如果会,该节点也要被分裂;
步骤S3-2:在完成逐层划分之后,对数据进行编码,编码方式为:假设点云坐标P(x,y,z)和树中节点(a,b,c)相对应且树中任一个节点都与一个最小包围盒一一对应;
节点的编码为
Figure 357408DEST_PATH_IMAGE003
为节点在n层的节点序号;
首先利用空间坐标计算索引值:
Figure DEST_PATH_IMAGE004
上式中x,y,z为点在空间的坐标,
Figure 846902DEST_PATH_IMAGE005
为点云在空间中的最小坐标值,
Figure DEST_PATH_IMAGE006
为八叉 树分辨率,int表示计算结果取整;
其编码可用二进制表示为:
Figure 106982DEST_PATH_IMAGE007
节点序号
Figure DEST_PATH_IMAGE008
Figure 123479DEST_PATH_IMAGE009
之间的关系可表示为:
Figure DEST_PATH_IMAGE010
若知道八叉树某一节点序号
Figure 277249DEST_PATH_IMAGE008
,利用
Figure 48896DEST_PATH_IMAGE008
Figure 530693DEST_PATH_IMAGE009
之间的关系得出:
Figure 819723DEST_PATH_IMAGE011
上式中mod为取模运算符,利用上述公式可以由点A包围盒邻接的立方体求出节点在树中的编码,即可从根节点沿路径检测出节点,按此规则,在点A搜索出距离最近的K个点,并得到点A的K邻域N|A|;
步骤S3-3:通过八叉树结构对每个点搜索其邻域;查询非空叶子节点所在立方体的数据点和周围26个叶子节点立方体中的数据点,找到最近的K个点作为点云的K邻域,如果邻域内点的个数不足K个;则扩大搜索范围至124个立方体,最终完成K邻域的建立。
5.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤5时,检索的方式是鼠标点击时间。
6.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:所述体素处理具体为将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。
7.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤5时,体素处理的具体包括如下步骤:
步骤S5-1:首先计算出模型的AABB包围盒;
步骤S5-2:然后根据空间分辨率对包围盒进行划分,得到每个大小为(X/N) * (Y/N) *(Z/N)空间像素列表;
步骤S5-3:对构成3D模型的多边形或三角形列表进行遍历,得到这些基本体元所对就应的包围盒,然后由AABB求交运算得到这些基本体元所能影响到的体素单元,将这些体素单元做为待判断的基本对象;
步骤S5-4:做进一步的精确判定,使用三角形与AABB的求交算法确定这些基本体元所能影响到最终体素,并将这些体素标记为非空,完成对模型表面的体素化处理。
8.如权利要求7所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤5时,将模型的连续点映射到体素。
9.如权利要求1所述的一种基于空间划分和模型体素化的快速检索方法,其特征在于:在执行步骤5时,通过VTK显示函数渲染后得到体素处理后的模型时,还进行光线追踪处理;在光线追踪处理时,通过时间戳的方式标记已经计算过交点的几何体,每条光线带一个单调递增的编号,每个几何体记录与它做过交点计算的最大光线编号,从而快速定位到所操作的网格中的三角面片。
CN202211672072.1A 2022-12-26 2022-12-26 一种基于空间划分和模型体素化的快速检索方法 Active CN115661374B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211672072.1A CN115661374B (zh) 2022-12-26 2022-12-26 一种基于空间划分和模型体素化的快速检索方法
PCT/CN2023/081088 WO2024138878A1 (zh) 2022-12-26 2023-03-13 一种基于空间划分和模型体素化的快速检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211672072.1A CN115661374B (zh) 2022-12-26 2022-12-26 一种基于空间划分和模型体素化的快速检索方法

Publications (2)

Publication Number Publication Date
CN115661374A true CN115661374A (zh) 2023-01-31
CN115661374B CN115661374B (zh) 2023-03-21

Family

ID=85022819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211672072.1A Active CN115661374B (zh) 2022-12-26 2022-12-26 一种基于空间划分和模型体素化的快速检索方法

Country Status (2)

Country Link
CN (1) CN115661374B (zh)
WO (1) WO2024138878A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115826836A (zh) * 2023-02-13 2023-03-21 南京铖联激光科技有限公司 一种基于广度优先搜索的三维标注方法
CN115937438A (zh) * 2023-02-14 2023-04-07 正元地理信息集团股份有限公司 城市三维模型轻量化方法、系统、电子设备及存储介质
CN117033675A (zh) * 2023-10-09 2023-11-10 深圳眸瞳科技有限公司 基于城市实景模型的安全空间计算生成方法及装置
WO2024138878A1 (zh) * 2022-12-26 2024-07-04 南京铖联激光科技有限公司 一种基于空间划分和模型体素化的快速检索方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377857A (zh) * 2008-07-30 2009-03-04 电子科技大学 一种基于八叉树空间划分和顶点删除的三维模型简化方法
US20140176545A1 (en) * 2012-12-21 2014-06-26 Nvidia Corporation System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537869B (zh) * 2018-03-08 2022-03-18 哈尔滨工程大学 一种基于级联纹理的圆锥追踪动态全局光照方法
CN111161411B (zh) * 2020-04-08 2020-07-14 速度时空信息科技股份有限公司 一种基于八叉树的三维建筑物模型lod方法
CN115661374B (zh) * 2022-12-26 2023-03-21 南京铖联激光科技有限公司 一种基于空间划分和模型体素化的快速检索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377857A (zh) * 2008-07-30 2009-03-04 电子科技大学 一种基于八叉树空间划分和顶点删除的三维模型简化方法
US20140176545A1 (en) * 2012-12-21 2014-06-26 Nvidia Corporation System, method, and computer program product implementing an algorithm for performing thin voxelization of a three-dimensional model
CN109345619A (zh) * 2018-08-10 2019-02-15 华北电力大学(保定) 基于类八叉树编码的海量点云空间管理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024138878A1 (zh) * 2022-12-26 2024-07-04 南京铖联激光科技有限公司 一种基于空间划分和模型体素化的快速检索方法
CN115826836A (zh) * 2023-02-13 2023-03-21 南京铖联激光科技有限公司 一种基于广度优先搜索的三维标注方法
CN115937438A (zh) * 2023-02-14 2023-04-07 正元地理信息集团股份有限公司 城市三维模型轻量化方法、系统、电子设备及存储介质
CN115937438B (zh) * 2023-02-14 2024-01-23 正元地理信息集团股份有限公司 城市三维模型轻量化方法、系统、电子设备及存储介质
CN117033675A (zh) * 2023-10-09 2023-11-10 深圳眸瞳科技有限公司 基于城市实景模型的安全空间计算生成方法及装置
CN117033675B (zh) * 2023-10-09 2024-02-20 深圳眸瞳科技有限公司 基于城市实景模型的安全空间计算生成方法及装置

Also Published As

Publication number Publication date
WO2024138878A1 (zh) 2024-07-04
CN115661374B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN115661374B (zh) 一种基于空间划分和模型体素化的快速检索方法
CN109410321B (zh) 基于卷积神经网络的三维重建方法
CN102682103B (zh) 一种面向海量激光雷达点云模型的三维空间索引方法
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
WO2022121525A1 (zh) 三维场景数据的渲染方法及装置、存储介质、电子装置
CN110599506B (zh) 一种复杂异形曲面机器人三维测量的点云分割方法
US9971335B2 (en) Hybrid dynamic tree data structure and accessibility mapping for computer numerical controlled machining path planning
CN108053483A (zh) 一种基于gpu加速的维诺图三维网格重构方法
WO2023124676A1 (zh) 3d模型构建方法、装置和电子设备
CN110021072A (zh) 面向全息测绘的多平台点云智能处理方法
CN111460193B (zh) 一种基于多模态信息融合的三维模型分类方法
CN113724279B (zh) 路网自动划分交通小区的系统、方法、设备及存储介质
CN114359226A (zh) 基于分层叠加和区域增长的三维模型组可视面积提取方法
CN104134236A (zh) 一种三维平面实体的布尔运算方法
CN109544672A (zh) 一种三维建筑模型纹理映射方法及装置
CN113593037A (zh) 一种德劳内三角化表面重建模型的建立方法及其应用
CN110738726B (zh) 一种基于八叉树的机器人视觉引导三维物体重建方法
CN110580497B (zh) 一种基于旋转不变性的空间场景匹配方法
CN117275748A (zh) 一种基于密度关系图的rna-疾病关联关系可视分析方法
CN113763563B (zh) 一种基于平面识别的三维点云几何网格结构生成方法
Sahebdivani et al. Deep learning based classification of color point cloud for 3D reconstruction of interior elements of buildings
Liu et al. An approach to 3D building model retrieval based on topology structure and view feature
CN113052231A (zh) 一种基于体素和全局形状分布特征的三维模型分类方法
CN114186603A (zh) 多源模型单体化融合方法及系统、存储介质及终端
CN113609691A (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