CN114332411A - 一种三维图形实时网格的生成方法 - Google Patents
一种三维图形实时网格的生成方法 Download PDFInfo
- Publication number
- CN114332411A CN114332411A CN202111663752.2A CN202111663752A CN114332411A CN 114332411 A CN114332411 A CN 114332411A CN 202111663752 A CN202111663752 A CN 202111663752A CN 114332411 A CN114332411 A CN 114332411A
- Authority
- CN
- China
- Prior art keywords
- subspace
- point cloud
- generating
- real
- grid
- 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.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明涉及三维扫描技术领域,具体为一种三维图形实时网格的生成方法,包括以下步骤:初始化子空间:根据所扫描对象的大小,建立其空间Ω的最小外包围盒Volume,然后将Volume空间等距离划分得到子空间集Volume=∑i,j, kblocki,j,k;一帧点云的处理:获取拼接成功的点云:根据点云的空间位置计算其属于哪几个子空间;子空间进一步细分:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分。该三维图形实时网格的生成方法,通过在满足扫描速度的前提下,最大限度的压缩了内存,尽可能给出高精度的网格显示,有助于扫描的过程的视觉导航。
Description
技术领域
本发明涉及三维扫描技术领域,具体为一种三维图形实时网格的生成方法。
背景技术
在三维扫描设备领域中,扫描设备的工作流程如下:通过获取2D图像信息重建出3D点云,并将3D点云按照其特征拼接起来形成完整的统一坐标系下点云,最后由3D点云生成3D网格,完成现实物体的数字化。在三维实时扫描应用中,所见即所得的实时渲染是一个重要环节。实时扫描中用户交互有点云渲染和网格渲染两种方式,点云渲染比网格渲染网格速度快,能满足实时渲染的要求,但在很多场景中,3D网格是三维扫描设备领域实时渲染和最终输出,其主要原因如下:3D网格是3D打印的基础;3D网格通过渲染,能有效的反应实物的特征;3D网格有几何拓扑特性,能有效表达连通性;3D网格能够有效进行纹理贴图,真实反应物体表面;3D网格的实时渲染能提高扫描质量,增强用户体验。
三维扫描中实时渲染3D网格,即时呈现已扫描数据的特点,能够有效提高扫描导航;其几何拓扑特性能够帮助算法及时有效的的去除噪点,避免噪点数据的累积。因此实现扫描中网格实时化,不仅能够提高扫描的精确度,而且能够极大地增强用户体验,是很多三维扫描设备产品必备的功能。但目前已有的CPU实现的网格算法,对CPU的要求高,影响实时扫描速度;已有的GPU网格算法,不仅增加了硬件的要求,而且受限于显存大小,也无法满足实时网格的精度需要,为此我们提出一种三维图形实时网格的生成方法以解决上述提出的问题。
发明内容
针对现有技术的不足,本发明结合实时扫描具体要求,综合权衡内存,速度和精度,基于隐函数值的生成网格的方法,提供了一种三维图形实时网格的生成方法,解决了上述背景技术中提出的问题。主要用于扫描时的数据展示,采用真彩渲染,为实时扫描提供分层检测,导航,补扫缺少部位,删除噪点等;该部分牺牲部分精度,以相对粗糙的分辨率换取快速网格生成,以点云的颜色插值网格顶点颜色,达到快速生成网格,渲染网格的目的。
为实现以上目的,本发明通过以下技术方案予以实现:一种三维图形实时网格的生成方法,包括以下步骤:
初始化子空间:根据所扫描对象的大小,建立其空间Ω的最小外包围盒Volume,然后将Volume空间等距离划分得到子空间集Volume=∑i,j,kblocki,j,k;
一帧点云的处理:获取拼接成功的点云:根据点云的空间位置计算其属于哪几个子空间;子空间进一步细分:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分;将归属该子空间的点云并缓存;直到该帧点云处理完毕;
网格生成:生成实时网格;子空间点云处理;子空间网格生成。
优选的,所述空间Ω的最小外包围盒Volume为长方体,一般为简化模型,扩充为立方体。
优选的,所述子空间集Volume=∑i,j,kblocki,j,k为一个立方体,按粗糙度划分,(如假设网格精度为发resolution,则子空间的边长则为n*resolution,其中n为整数,如根据需要可选择n>30或者n>100等)其中相邻的两个子空间按照一定比例(rate取值范围(0,1))重叠:blocki,j,k∩blocki_l,j+m,k+n≠φ;l,m,n∈{0,1},即l,m,n只能取值0或者1。
优选的,所述获取拼接成功的点云具体为:根据点云的空间位置计算其属于哪几个子空间:处在子空间边界的点云,会划分到相邻的几个子空间中;处在子空间中心的点云,划分到单个子空间中。
优选的,所述子空间进一步细分具体为:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分block=∑i,j,kVoxeli,j,k;细分的规则是按照网格的精度(resolution)来设置的,其中每一个Voxeli,j,k也是一个立方体,代表实时网格生成方法中最小的单位,其有两个标量属性值tsdf和权重w。类似二维图片中的像素,所有的Voxeli,j,k大小相同,位置不同。
优选的,所述生成实时网格具体为:将有新点云插入的子空间Blocki.j.k搜集起来(可能有多个这样的子空间),根据实时扫描时,CPU的资源使用情况,选择其中一个或者若干个子空间。
优选的,所述子空间点云处理具体为:处理上一步筛选出的子空间缓存的点云,更新每个voxelj的TSDF(truncated signed distance function截断符号距离函数值)值。
优选的,所述子空间网格生成具体为:调用Marchcube算法,完成每个子空间的网格的生成。
本发明提供了一种三维图形实时网格的生成方法,具备以下有益效果:
1、该三维图形实时网格的生成方法,通过在满足扫描速度的前提下,最大限度的压缩了内存,尽可能给出高精度的网格显示,有助于扫描的过程的视觉导航,以及及时提醒已扫描数据的质量,清理一些不必要的噪点,避免误差过度累积。
2、该三维图形实时网格的生成方法,不依赖GPU的硬件支持,节约了产品的成本。
附图说明
图1为本发明实时网格生成流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
请参阅图1,本发明提供一种技术方案:一种三维图形实时网格的生成方法,包括以下步骤:初始化子空间:根据所扫描对象的大小,建立其空间Ω的最小外包围盒Volume,然后将Volume空间等距离划分得到子空间集Volume=∑i,j,kblocki,j,k,根据扫描的对象大小和网格的分辨率,将扫描对象的三维空间粗分为几个大小相同的子空间,相邻的两个子空间有交集。
一帧点云的处理:获取拼接成功的点云:根据点云的空间位置计算其属于哪几个子空间;子空间进一步细分:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分;将归属该子空间的点云并缓存,实时网格模块缓存所有的点云,并按照点云的编号Index进行排序,方便快速查找,缓存每个点后,实时网格算法分配该点到相应的子空间中,当子空间包含实际点云时,才根据网格的分辨率进一步细分;直到该帧点云处理完毕;
网格生成:生成实时网格;子空间点云处理;子空间网格生成,在压缩内存时,相应会增加CPU资源的使用,以及一些有用的数据会被误删,导致在扫描过程中会偶发产生一些误导,但此种情况可以通过反复扫描消除。
所述空间Ω的最小外包围盒Volume为长方体,一般为简化模型,扩充为立方体。
所述子空间集Volume=∑i,j,kblocki,j,k为一个立方体,按粗糙度划分,(如假设网格精度为发resolution,则子空间的边长则为n*resolution,其中n为整数,如根据需要可选择n>30或者n>100等)其中相邻的两个子空间按照一定比例(rate取值范围(0,1))重叠:blocki,j,k∩blocki_l,j+m,k+n≠φ;l,m,n∈{0,1},即l,m,n只能取值0或者1。
所述获取拼接成功的点云具体为:根据点云的空间位置计算其属于哪几个子空间:处在子空间边界的点云,会划分到相邻的几个子空间中;处在子空间中心的点云,划分到单个子空间中,点云使用八叉树储存,点云中的每个点包含空间位置,法向,颜色,以及编号index以及是否删除bDelete属性,编号index是点在八叉树中的内存位置,是否删除bDelete属性用来辅助删除噪点。
所述子空间进一步细分具体为:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分block=∑i,j,kVoxeli,j,k;细分的规则是按照网格的精度(resolution)来设置的,其中每一个Voxeli,j,k也是一个立方体,代表实时网格生成方法中最小的单位,其有两个标量属性值tsdf和权重w。类似二维图片中的像素,所有的Voxeli,j,k大小相同,位置不同。
所述生成实时网格具体为:将有新点云插入的子空间Blocki.j.k搜集起来(可能有多个这样的子空间),根据实时扫描时,CPU的资源使用情况,选择其中一个或者若干个子空间,对于每一个子空间,采用run-lenght encode(RLE)结构进行内存压缩:具体方法为,取子空间Blocki.j.k的一组数据,如如line={(x0,y0,z)|0≤z≤zmaz},其中(x0,y0,z)均为voxel的编号。如果line的所有数据都一样,则压缩为缩为[zmazx,tsdf,w],其中tsdf和w分别为隐函数值和权重。
所述子空间点云处理具体为:处理上一步筛选出的子空间缓存的点云,更新每个voxelj的TSDF(truncated signed distance function截断符号距离函数值)值,异步刷新机制:单帧点云处理过程中,不计算tsdf值,只进行点云归属判断;生成网格时,完成tsdf的计算,并更新网格。网格更新有延迟,部分网格会延迟更新,暂停时所有待更新的子空间全部更新。
所述子空间网格生成具体为:调用Marchcube算法,完成每个子空间的网格的生成,MarchingCube计算优化:采用CPU多线程进行,一个线程会处理多个voxel的插值,但只处理左下角相关的三条边的插值,避免了重复计算。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性,此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种三维图形实时网格的生成方法,其特征在于,包括以下步骤:
初始化子空间:根据所扫描对象的大小,建立其空间Ω的最小外包围盒Volume,然后将Volume空间等距离划分得到子空间集Volume=∑i,j,kblocki,j,k;
一帧点云的处理:获取拼接成功的点云:根据点云的空间位置计算其属于哪几个子空间;子空间进一步细分:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分;将归属该子空间的点云并缓存;直到该帧点云处理完毕;
网格生成:生成实时网格;子空间点云处理;子空间网格生成。
2.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述空间Ω的最小外包围盒Volume为长方体,一般为简化模型,扩充为立方体。
3.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述子空间集Volume=∑i,j,kblocki,j,k为一个立方体,按粗糙度划分,其中相邻的两个子空间按照一定比例(rate取值范围(0,1))重叠:blocki,j,k∩blocki_l,j+m,k+n≠φ;l,m,n∈{0,1},即l,m,n只能取值0或者1。
4.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述获取拼接成功的点云具体为:根据点云的空间位置计算其属于哪几个子空间:处在子空间边界的点云,会划分到相邻的几个子空间中;处在子空间中心的点云,划分到单个子空间中。
5.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述子空间进一步细分具体为:如果该子空间没有细分,且有点云被划分到该子空间,则将该子空间进一步细分block=∑i,j,kVoxeli,j,k;细分的规则是按照网格的精度(resolution)来设置的。
6.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述生成实时网格具体为:将有新点云插入的子空间Blocki.j.k搜集起来(可能有多个这样的子空间),根据实时扫描时,CPU的资源使用情况,选择其中一个或者若干个子空间。
7.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述子空间点云处理具体为:处理上一步筛选出的子空间缓存的点云,更新每个voxelj的TSDF(截断符号距离函数值)值。
8.根据权利要求1所述的一种三维图形实时网格的生成方法,其特征在于:所述子空间网格生成具体为:调用Marchcube算法,完成每个子空间的网格的生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111663752.2A CN114332411A (zh) | 2021-12-30 | 2021-12-30 | 一种三维图形实时网格的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111663752.2A CN114332411A (zh) | 2021-12-30 | 2021-12-30 | 一种三维图形实时网格的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114332411A true CN114332411A (zh) | 2022-04-12 |
Family
ID=81020109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111663752.2A Pending CN114332411A (zh) | 2021-12-30 | 2021-12-30 | 一种三维图形实时网格的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114332411A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117351482A (zh) * | 2023-12-05 | 2024-01-05 | 国网山西省电力公司电力科学研究院 | 一种用于电力视觉识别模型的数据集增广方法、系统、电子设备和存储介质 |
-
2021
- 2021-12-30 CN CN202111663752.2A patent/CN114332411A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117351482A (zh) * | 2023-12-05 | 2024-01-05 | 国网山西省电力公司电力科学研究院 | 一种用于电力视觉识别模型的数据集增广方法、系统、电子设备和存储介质 |
CN117351482B (zh) * | 2023-12-05 | 2024-02-27 | 国网山西省电力公司电力科学研究院 | 一种用于电力视觉识别模型的数据集增广方法、系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3981302B2 (ja) | 3次元の静止した又は動くオブジェクトの階層イメージベース表現並びに該表現をオブジェクトのレンダリングに使用する方法及び装置 | |
CN113178014B (zh) | 场景模型渲染方法、装置、电子设备和存储介质 | |
KR100468851B1 (ko) | 3차원 객체와 애니메이트된 3차원 객체의 이미지 기반표현과 렌더링 방법 | |
US7940279B2 (en) | System and method for rendering of texel imagery | |
US7561156B2 (en) | Adaptive quadtree-based scalable surface rendering | |
CN112308974B (zh) | 一种改进八叉树和自适应读取的大规模点云可视化方法 | |
GB2378337A (en) | 3D computer modelling apparatus | |
CA2294538A1 (en) | System and method for computer modeling of 3d objects and 2d images by mesh constructions that incorporate non-spatial data such as color or texture | |
CN116051759B (zh) | 一种生成倾斜摄影lod简化模型的方法 | |
US20060066613A1 (en) | Method and system for partitioning the surface of a three dimentional digital object model in order to map a texture | |
CN109544672A (zh) | 一种三维建筑模型纹理映射方法及装置 | |
CN116402973A (zh) | 一种基于lod重构的倾斜摄影模型优化方法、系统 | |
CN114332411A (zh) | 一种三维图形实时网格的生成方法 | |
JP4165695B2 (ja) | 非多様体の陰関数表現方法のコンピュータプログラム | |
CN117274527B (zh) | 一种发电机设备三维可视化模型数据集构建方法 | |
CN117496077A (zh) | 一种三维地质模型可视化分析方法及系统 | |
CN111028349B (zh) | 一种适用于海量三维实景数据快速可视化的层级构建方法 | |
CN112802175B (zh) | 大规模场景遮挡剔除方法、装置、设备及存储介质 | |
Scholz et al. | Level of Detail for Real-Time Volumetric Terrain Rendering. | |
CN115187720A (zh) | 一种基于数字地形分析优化地形渲染的方法 | |
CN110443891B (zh) | 一种3d模型的网格化处理方法及系统 | |
Sim et al. | Construction of regular 3D point clouds using octree partitioning and resampling | |
US5821942A (en) | Ray tracing through an ordered array | |
CN114155346B (zh) | 用于地形匹配的数据处理方法和装置 | |
Shareef et al. | An Image-Based Modelling Approach To GPU-based Unstructured Grid Volume Rendering. |
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 |