CN110297924A - 点云数据的处理及渲染方法、装置、设备及存储介质 - Google Patents
点云数据的处理及渲染方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110297924A CN110297924A CN201910563858.1A CN201910563858A CN110297924A CN 110297924 A CN110297924 A CN 110297924A CN 201910563858 A CN201910563858 A CN 201910563858A CN 110297924 A CN110297924 A CN 110297924A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- data
- octree
- nodes encoding
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种点云数据的处理及渲染方法、装置、设备及存储介质。通过基于待处理点云数据构建八叉树索引结构并对八叉树索引结构中的各个节点进行编码;将待处理点云数据进行分块处理,得到多个点云数据块;读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树,通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
Description
技术领域
本发明实施例涉及电子地图技术,尤其涉及一种点云数据的处理及渲染方法、装置、设备及存储介质。
背景技术
随着科学技术的发展,越来越多的先进设备被用于测量领域,三维激光扫描技术由于其测量精度高、采样密度大、数据获取方便等特点,成为三维空间信息快速获取的主要手段之一。此外,由于多线激光设备具有高采样频率的特性,其每秒可产生多达几十万、几百万甚至上千万的三维空间点,这些三维空间点不仅包含位置信息、时间信息,同时也包含强度信息以及回波信息等。多线激光设备单次作业采集的总数据量达到几十千兆字节(Gigabyte,GB)甚至上百GB,如何将海量数据给用户渲染展示成为当前亟待解决的问题。
目前对于海量数据的渲染展示大部分采用的方法是:对原始数据进行分块显示或者采用抽稀的方式。数据分块方式虽然降低了数据渲染时计算机内存的消耗量,但是,会导致用户无法完整的浏览整个场景的数据,同时在后续处理过程中出现数据提取不全等问题。抽稀的方式不仅会降低数据的精度,随着数据量的增大,数据的抽稀比例也随之增大,当达到一定程度时,会严重破坏数据的精度和整体效果。数据分块方式和抽稀的方式不能从根本上解决海量数据渲染展示的问题。
发明内容
本发明提供一种点云数据的处理及渲染方法、装置、设备及存储介质,以实现对海量点云数据的实时快速渲染。
第一方面,本发明实施例提供了一种点云数据的处理方法,包括:
基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
将待处理点云数据进行分块处理,得到多个点云数据块;
读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
第二方面,本发明实施例还提供了一种点云数据的渲染方法,包括:
通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
第三方面,本发明实施例还提供了一种点云数据的处理装置,包括:
索引结构构建模块,用于基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
点云数据分块模块,用于将待处理点云数据进行分块处理,得到多个点云数据块;
第一点云数据读取模块,用于读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
第四方面,本发明实施例还提供了一种点云数据的渲染装置,其特征在于,包括:
节点编码确定模块,用于通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
第二点云数据读取模块,用于通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
点云数据渲染模块,用于通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
第五方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中所述的点云数据的处理方法和上述第二方面中所述的点云数据的渲染方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述第一方面中所述的点云数据的处理方法和上述第二方面中所述的点云数据的渲染方法。
本发明实施例通过基于待处理点云数据构建八叉树索引结构并对八叉树索引结构中的各个节点进行编码;将待处理点云数据进行分块处理,得到多个点云数据块;读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树,通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
附图说明
图1为本发明实施例一提供的点云数据的处理方法的流程图;
图2是本发明实施例一提供的一种八叉树索引结构创建的流程示意图;
图3是本发明实施例一提供的一种索引文件的结构示意图;
图4为本发明实施例二提供的点云数据的渲染方法的流程图;
图5为本发明实施例三提供的点云数据的处理装置的结构示意图;
图6为本发明实施例四提供的点云数据的渲染装置的结构示意图;
图7是本发明实施例五中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的点云数据的处理方法的流程图,本实施例可适用于在点云数据进行存储和调用的情况,该方法可以由点云数据的处理方法装置来执行,所述点云数据的处理方法装置可以通过软件和/或硬件的方式来实现。
目前,点云数据处理技术是对获取的离散数据进行处理,以获得物体的曲面模型,根据测量所得点云数据构建三维模型是一种新技术,其特点是直接以点的形式进行存储、处理、传输和绘制三维物体。
在实际应用中,用户对三维场景的显示速度提出了很高的要求,不仅要能按照用户的交互指令动态显示模型,并且要能够按照用户的视点变换快速更新模型的分辨率。然而,点云数据的海量性和运算的复杂性导致点云数据实时绘制速度慢的问题。
如图1所示,本发明实施例提供的点云数据的处理方法主要包括如下步骤:
S110、基于待处理点云数据构建八叉树索引结构并对所述八叉树结构中的各个节点进行编码。
八叉树是一种用于描述三维立体空间的有层次性的树状数据结构,八叉树的每个节点表示一个正方体体积元素,每个节点有8个子节点,将8个子节点的体积元素加起来就是父节点的体积。所有具有子节点的父节点都是非叶子结点,叶子节点没有子节点。八叉树中每个节点都有可视范围,可视范围和包围盒的半径是线性关系,节点半径越大,则可视范围越大,因此,父节点的可视范围比子节点的可视范围大。
在构建八叉树索引结构之前,需要获取待处理点云数据,待处理点云数据可以是单个待处理点云数据文件,也可以是多个待处理点云数据文件。当待处理的点云数据不是很大,通过一次构建就可以完成存储,并存入文件中。当待处理的点云数据量很大时,一次构建无法完成,可以将待处理点云数据分多块依次读取创建,并同步更新八叉树索引结构。
需要说明的是,不论是单个待处理点云数据文件还是多个待处理点云数据文件中的每一个待处理点云数据文件,对待处理点云数据的处理方式都是相同。
进一步的,遍历待处理点云数据文件,计算待处理点云数据的空间范围,总点数、偏移量、缩放比例、类别、回波、坐标***等信息。
基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码,包括:根据待处理点云数据的总点数、顶层节点数量阈值以及预设的抽稀间隔确定八叉树索引结构的层数N。
进一步的,根据如下公式计算索引结构的层数N:
其中,PointNumber为待处理点云数据的总点数,Scale为预设的抽稀间隔,TopNum为顶层节点数量阈值。
顶层节点数量阈值可以理解为八叉树索引结构中顶层节点的个数。抽稀间隔可以理解为从预设数量的点云数据中抽取一个数据作为上一层节点的点云数据。预设数量即为抽稀间隔。例如:抽稀间隔为4,则每间隔4个点云数据抽取一个点云数据作为上一层节点的点云数据。所述顶层节点数量阈值和预设的抽稀间隔都可以根据实际情况进行设计。
示例性的,顶层节点数量阈值为200000个,待处理点云数据的总点数为20000000个,数据抽稀间隔为4,当数据划分为满足20000000÷4>200000,20000000÷4<200000,因此,八叉树索引结构的层数N。
S120、将待处理点云数据进行分块处理,得到多个点云数据块。
进一步的,可以根据运行环境信息对获取的待处理点云数据进行分块处理,运行环境信息包括内存容量。所述点云数据块的数量可以为8N,其中,N为正整数。由于所述待处理点云数据的处理过程中使用八叉树,所以点云数据块的数量可以为8N。
根据待处理点云数据的空间范围和层数N在XYZ方向上,划分为2N,确定第N层的节点范围。
第N层的节点范围为:
stepX=(MaxX-MinX)/8^(N-1);
stepY=(MaxY-MinY)/8^(N-1);
StepZ=(MaxZ-MinZ)/8^(N-1);
SubBound[Code]=(MinX+N×stepX,MinY+N×stepY,MinZ+N×stepZ,MinX+(N+1)×stepX,MinY+(N+1)×stepY,MinZ+(N+1)×stepZ)
其中,MaxX为X轴最大值,MinX为X轴最小值,stepX为X轴长度,MaxY为Y轴最大值,MinY为Y轴最小值,stepY为Y轴长度,MaxZ为Z轴最大值,MinZ为Z轴最小值,stepZ为Z轴长度,SubBound[Code]为第N层的节点范围。
在待处理点云数据的X轴数据中,确定X轴最大值和X轴最小值。在待处理点云数据的Y轴数据中,确定Y轴最大值和Y轴最小值。在待处理点云数据的Z轴数据中,确定Z轴最大值和Z轴最小值。根据X轴最大值、X轴最小值、Y轴最大值、Y轴最小值、Z轴最大值和Z轴最小值,确定待处理点云数据的原始包围盒。用X轴最大值减去X轴最小值,得到X轴长度。用Y轴最大值减去Y轴最小值,得到Y轴长度。用Z轴最大值减去Z轴最小值,得到Z轴长度。根据X轴最小值、Y轴最小值、Z轴最小值、层数、X轴长度、Y轴长度以及Z轴长度确定第N层的节点范围。
图2是本发明实施例一提供的一种八叉树索引结构创建的流程示意图。如图2所示,点云数据一共切分了三次,共切分为四层,在空间中有点云数据的部分用灰色表示,没有点云数据的部分用白色表示,结构树中只保留包含点云数据的节点。对八叉树索引结构进行编码,第一层编码为1,第二层编码依次为11,12,13,14,15,16,17,18,第三层依次为111,112...187,188,直至第N层。
S130、读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
根据计算机硬件内存大小设定数据分块阈值,确定数据分块数M,依次将与数据分块阈值相等的点云数据块进行内存映射读取,通过内存映射方式可加快读取速度。
读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的抽稀八叉树包括:通过内存映射的方式读取点云数据块中的点云数据;将读取到的点云数据按照空间位置信息填充至八叉树的叶子节点,生成整体八叉树;按照预设抽稀间隔对所述整体八叉树进行抽稀并逐层向上填充,得到具有金字塔结构的八叉树,并更新索引文件中的索引记录。
将读取的点云数据按照空间位置信息填充到八叉树的叶子结点。按照抽稀间隔Scale进行逐层抽稀并向上填充,将八叉树数据写入索引文件,并更新索引文件索引记录信息;返回执行将读取的点云数据按照空间位置信息填充到八叉树的叶子结点,直至所有点云数据文件读取完毕。
进一步的,点云数据存储过程中,会建立索引文件。图3是本发明实施例一提供的一种索引文件的结构示意图;如图3所示,索引文件中包括索引文件头、变长记录信息、各节点数据信息以及Las文件记录。在读取点云数据块中的点云数据之前,要先在索引文件中写入索引文件头和八叉树结构信息。索引文件头中主要描述了原始点云数据的信息,例如:点云数据文件空间范围,总点数,偏移量、缩放比例、类别、回波、坐标***等信息。本实施例中索引文件头共占用417字节。变长记录信息中记录的是八叉树结构信息。八叉树结构信息包括:起始点位置,点云数据块的长宽,存储点数等信息。各节点数据信息主要包括各节点的节点编号,以及该节点中存储的字节长度,图3中的53个子节由5个字节的标头和48个字节的信息段。分块数为该节点中存储的点云数据块的数量,12子节是每个点云数据块中存放的字节长度。Las文件用来包含lidar点数据记录。由软件输出的数据都以这种格式存在。数据格式的目的是提供一个公开的数据格式,使得不同的lidar软硬件工具能够以一个共同的格式输出。Las文件记录是点云数据记录,本实施例中不再进行详细说明。
本发明实施例通过基于待处理点云数据构建八叉树索引结构并对八叉树索引结构中的各个节点进行编码;将待处理点云数据进行分块处理,得到多个点云数据块;读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树,通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
在上述实施例的基础上,进一步的,读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具备金字塔结构的八叉树之后,还包括:构建每个节点内的点云数据对应的分页细节节点模型;所述分页细节节点模型的可视范围根据节点所在层数确定。
首先,每个八叉树的节点分别对应一个分页细节节点模型。
在建立各个节点对应的分页细节节点模型时,需要读取八叉树结构信息。在本实施例中,读取索引中,索引文件头信息以获取八叉树层数、点数、范围、偏移、缩放比例等点云数据的信息。读取索引文件中结构信息以获取八叉树索引结构信息。然后,根据点云数据信息以及八叉树索引结构信息,计算八叉树中子节点的包围球半径,并设置分页细节节点模型的可视范围和时间阈值。
其中,第一层节点的可视范围为:max>Node[0]>0;第二层节点的可视范围为:8*R[2]>Node[1]>0;依次类推,第N层结点:8*R[N]>Node[N-1]>0。其中,Node[X]是指第X-1层的可视范围。R[X]为第X层的包围球半径。
本实施例中,提供的了一种分页细节节点模型中可视范围的确定范围。需要说明的是,仅对可视范围的确定方法进行说明,而非限定,可以根据实际情况选择其他确定可视范围的方法。
实施例二
图4为本发明实施例二提供的点云数据的渲染方法的流程图,本实施例可适用于在点云数据进行渲染显示的情况,该方法可以由点云数据的渲染方法装置来执行,所述点云数据的渲染装置可以通过软件和/或硬件的方式来实现。
如图4所示,本发明实施例提供的点云数据的渲染方法主要包括如下步骤:
S410、通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码。
在本实施例中,视点可以理解为用户相当于显示屏幕的位置。视口范围可以理解为当前显示屏幕的范围。节点编码可以理解为上述实施例S110中,节点编码的编号。视口范围内的节点编码可以理解为当前显示屏幕范围内可显示的子节点的集合。
数据控制线程根据视口范围遍历查询视口范围内节点,并计算视点到节点中心的距离,如果满足LOD设置的可视范围则将节点编号加入的数据添加列表。
S420、通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据。
进一步的,通过数据IO线程根据节点编码读取各个节点编码对应的点云数据,包括:通过数据IO线程根据节点编码确定索引记录的地址;读取索引记录中存储的节点编码对应的点云数据的位置和长度;通过内存映射到点云数据的位置,根据点云数据的长度读取点云数据。
在本实施例中,数据IO线程根据数据添加列表中各个节点编码在索引文件中进行查询,针对各个节点编码,确定节点编码在索引文件中存储的该节点编码对应的节点中存储的点云数据的位置以及点云数据的长度。通过内存映射的方式直接映射该位置处长度的点云数据,进行点云数据读取。利用上述方法可以加快点云数据的读取速度。
在本实施例中,点云数数据读取时,直接读取索引文件,索引文件中查询各个节点的编码,确定节点编码对应的该节点中存储的点云数据的位置以及长度,通过内存映射的放射读取点云数据。不需要采用遍历点云数据进行查找,大大提高了检索效率。
S430、通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
渲染线程将读取的点云数据通过OpenGL绘制出来进行渲染显示。需要说明的是,可以采用合理的渲染方式,本实施例中,不再进行赘述。
进一步的,所述方法还包括:通过渲染线程更新各个节点编码对应的点云数据的时间戳;如果节点编码对应的点云数据的时间戳差值大于时间阈值,则将节点编码加入卸载列表;通过卸载线程将卸载列表中的节点编码卸载。
在本实施例中,在点云数据进行渲染的同时,更新每一帧点云数据的时间戳,数据控制线程同步实时遍历数据添加列表中各个节点编码对应的时间戳。并根据时间戳计算时间差,如果差值大于分页细节节点模型中设置的时间阈值,则将该节点编码加入到卸载列表。卸载线程同步遍历卸载数据列表,将节点编码对应的点云数据进行卸载,卸载完毕后重复该循环进行下一帧渲染操作。
本发明实施例通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;通过渲染线程将所述各个节点编码对应的点云数据进行渲染。本发明实施例提供的技术方案通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
实施例三
图5为本发明实施例三提供的点云数据的处理装置的结构示意图,本实施例可适用于在点云数据进行存储和调用的情况,所述点云数据的处理方法装置可以通过软件和/或硬件的方式来实现。
如图5所示,本发明实施例提供的点云数据的处理装置,主要包括如下模块:索引结构构建模块510、点云数据分块模块520和第一点云数据读取模块530。
其中,索引结构构建模块510,用于基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
点云数据分块模块520,用于将待处理点云数据进行分块处理,得到多个点云数据块;
第一点云数据读取模块530,用于读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
本发明实施例通过基于待处理点云数据构建八叉树索引结构并对八叉树索引结构中的各个节点进行编码;将待处理点云数据进行分块处理,得到多个点云数据块;读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树,通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
进一步的,所述装置还包括:
节点模型构建模块,用于针对八叉树索引结构中各个节点的点云数据,构建每个节点内的点云数据对应的分页细节节点模型;所述分页细节节点模型的可视范围根据节点所在层数确定。
进一步的,第一点云数据读取模块530,具体用于通过内存映射的方式读取点云数据块中的点云数据;将读取到的点云数据按照空间位置信息填充至八叉树的叶子节点,生成整体八叉树;按照预设抽稀间隔对所述整体八叉树进行抽稀并逐层向上填充,得到具有金字塔结构的八叉树,并更新索引文件中的索引记录。
本发明实施例所提供的点云数据的处理装置可执行本发明任意实施例所提供的点云数据的处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的点云数据的渲染装置的结构示意图,本实施例可适用于在点云数据进行渲染显示的情况,所述点云数据的渲染装置可以通过软件和/或硬件的方式来实现。
如图6所示,本发明实施例提供的点云数据的渲染装置,主要包括如下模块:节点编码确定模块610、第二点云数据读取模块620和点云数据渲染模块630。
其中,节点编码确定模块610,用于通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
第二点云数据读取模块620,用于通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
点云数据渲染模块630,用于通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
本发明实施例通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;通过渲染线程将所述各个节点编码对应的点云数据进行渲染。本发明实施例提供的技术方案通过运算线程、IO线程、渲染线程以及数据卸载线程等多线程技术手段实现内外存数据的调度管理,实现海量数据的快速渲染显示和交互操作。
进一步的,所述装置还包括:
时间戳更新单元,用于通过渲染线程更新各个节点编码对应的点云数据的时间戳;
节点编码加入模块,用于如果节点编码对应的点云数据的时间戳差值大于时间阈值,则将节点编码加入卸载列表;
节点编码卸载模块,用于通过卸载线程将卸载列表中的节点编码卸载。
进一步的,第二点云数据读取模块620,具体用于通过数据IO线程根据所述节点编码确定索引记录的地址;读取索引记录中存储的节点编码对应的点云数据的位置和长度;通过内存映射到所述点云数据的位置,根据点云数据的长度读取点云数据。
本发明实施例所提供的点云数据的渲染装置可执行本发明任意实施例所提供的点云数据的渲染方法,具备执行方法相应的功能模块和有益效果。
实施例五
图7是本发明实施例五中的一种设备的结构示意图,如图7所示,该设备包括处理器710、存储器720、输入装置730和输出装置740;设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的点云数据的处理方法对应的程序指令/模块(例如,点云数据的处理装置中的索引结构构建模块510、点云数据分块模块520和第一点云数据读取模块530),又如本发明实施例中的点云数据的渲染方法对应的程序指令/模块(例如,点云数据的渲染装置中的节点编码确定模块610、第二点云数据读取模块620和点云数据渲染模块630)。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的点云数据的处理方法。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
需要说明的是,本实施例中的执行点云数据的处理方法时,处理器710通过运行存储在***存储器720中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的点云数据的处理方法,该方法包括:
基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
将待处理点云数据进行分块处理,得到多个点云数据块;
读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
当然,本领域技术人员可以理解,处理器710还可以实现本发明任意实施例所提供的点云数据的处理方法的技术方案。该设备的硬件结构以及功能可参见实施例五的内容解释。
需要说明的是,本实施例中的执行点云数据的渲染方法时,处理器710通过运行存储在***存储器720中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的点云数据的渲染方法,该方法包括:
通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
当然,本领域技术人员可以理解,处理器710还可以实现本发明任意实施例所提供的点云数据的渲染方法的技术方案。该设备的硬件结构以及功能可参见实施例五的内容解释。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理装置执行时实现点云数据的处理方法,该方法包括:
基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
将待处理点云数据进行分块处理,得到多个点云数据块;
读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的有金字塔结构的八叉树。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的点云数据的处理方法中的相关操作。
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种点云数据的渲染方法,该方法包括:
通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的点云数据的渲染方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述点云数据的处理装置和点云数据渲染装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种点云数据的处理方法,其特征在于,包括:
基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
将待处理点云数据进行分块处理,得到多个点云数据块;
读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
2.根据权利要求1所述的方法,其特征在于,还包括:
针对八叉树索引结构中各个节点的点云数据,构建每个节点内的点云数据对应的分页细节节点模型;所述分页细节节点模型的可视范围根据节点所在层数确定。
3.根据权利要求1所述的方法,其特征在于,读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树,包括:
通过内存映射的方式读取点云数据块中的点云数据;
将读取到的点云数据按照空间位置信息填充至八叉树的叶子节点,生成整体八叉树;
按照预设抽稀间隔对所述整体八叉树进行抽稀并逐层向上填充,得到具有金字塔结构的八叉树,并更新索引文件中的索引记录。
4.一种点云数据的渲染方法,其特征在于,包括:
通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
5.根据权利要求4所述的方法,其特征在于,还包括:
通过渲染线程更新各个节点编码对应的点云数据的时间戳;
如果节点编码对应的点云数据的时间戳差值大于时间阈值,则将节点编码加入卸载列表;
通过卸载线程将卸载列表中的节点编码卸载。
6.根据权利要求4所述的方法,其特征在于,通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据,包括:
通过数据IO线程根据所述节点编码确定索引记录的地址;
读取索引记录中存储的节点编码对应的点云数据的位置和长度;
通过内存映射到所述点云数据的位置,根据点云数据的长度读取点云数据。
7.一种点云数据的处理装置,其特征在于,包括:
索引结构构建模块,用于基于待处理点云数据构建八叉树索引结构并对所述八叉树索引结构中的各个节点进行编码;
点云数据分块模块,用于将待处理点云数据进行分块处理,得到多个点云数据块;
第一点云数据读取模块,用于读取点云数据块中的点云数据,并根据读取到的点云数据生成待处理点云数据对应的具有金字塔结构的八叉树。
8.一种点云数据的渲染装置,其特征在于,包括:
节点编码确定模块,用于通过数据控制线程基于所述分页细节节点模型以及视点距离确定视口范围内的节点编码;
第二点云数据读取模块,用于通过数据IO线程根据所述节点编码读取各个节点编码对应的点云数据;
点云数据渲染模块,用于通过渲染线程将所述各个节点编码对应的点云数据进行渲染。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的点云数据的处理方法和权利要求4-6中任一所述的点云数据的渲染方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的点云数据的处理方法和权利要求4-6中任一所述的点云数据的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910563858.1A CN110297924A (zh) | 2019-06-26 | 2019-06-26 | 点云数据的处理及渲染方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910563858.1A CN110297924A (zh) | 2019-06-26 | 2019-06-26 | 点云数据的处理及渲染方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110297924A true CN110297924A (zh) | 2019-10-01 |
Family
ID=68029131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910563858.1A Pending CN110297924A (zh) | 2019-06-26 | 2019-06-26 | 点云数据的处理及渲染方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297924A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552555A (zh) * | 2020-05-19 | 2020-08-18 | 北京数字绿土科技有限公司 | 一种点云的可视化方法和设备 |
CN112417965A (zh) * | 2020-10-21 | 2021-02-26 | 湖北亿咖通科技有限公司 | 激光点云处理方法、电子装置和存储介质 |
CN112489177A (zh) * | 2020-11-30 | 2021-03-12 | 深圳供电局有限公司 | 一种点云数据渲染展示方法及*** |
CN112817538A (zh) * | 2021-02-22 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN113761238A (zh) * | 2021-08-27 | 2021-12-07 | 广州文远知行科技有限公司 | 点云存储方法、装置、设备及存储介质 |
CN113836095A (zh) * | 2021-09-26 | 2021-12-24 | 广州极飞科技股份有限公司 | 一种点云数据存储方法、装置、存储介质及电子设备 |
CN117078825A (zh) * | 2023-09-04 | 2023-11-17 | 山东捷瑞信息技术产业研究院有限公司 | 一种点云数据线上渲染修改方法、***、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306180A (zh) * | 2011-08-29 | 2012-01-04 | 北京建筑工程学院 | 一种基于海量激光雷达栅格点云数据的建模方法 |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN104392480A (zh) * | 2014-11-12 | 2015-03-04 | 山东地纬数码科技有限公司 | 以内外存交换方式实现基于点的全局光照效果的渲染方法 |
CN105808672A (zh) * | 2016-03-01 | 2016-07-27 | 重庆市勘测院 | 基于浏览器的海量三维点云数据的发布方法 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
CN107798721A (zh) * | 2016-08-31 | 2018-03-13 | 北京四维图新科技股份有限公司 | 一种点云数据的处理方法及装置和点云渲染方法及装置 |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN109410118A (zh) * | 2018-09-12 | 2019-03-01 | 广州南方卫星导航仪器有限公司 | 一种用于海量的点云数据快速加载显示方法 |
US20190114808A1 (en) * | 2017-10-12 | 2019-04-18 | Sony Corporation | Octree traversal for anchor point cloud compression |
-
2019
- 2019-06-26 CN CN201910563858.1A patent/CN110297924A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306180A (zh) * | 2011-08-29 | 2012-01-04 | 北京建筑工程学院 | 一种基于海量激光雷达栅格点云数据的建模方法 |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN104392480A (zh) * | 2014-11-12 | 2015-03-04 | 山东地纬数码科技有限公司 | 以内外存交换方式实现基于点的全局光照效果的渲染方法 |
CN105808672A (zh) * | 2016-03-01 | 2016-07-27 | 重庆市勘测院 | 基于浏览器的海量三维点云数据的发布方法 |
CN107798721A (zh) * | 2016-08-31 | 2018-03-13 | 北京四维图新科技股份有限公司 | 一种点云数据的处理方法及装置和点云渲染方法及装置 |
CN106407408A (zh) * | 2016-09-22 | 2017-02-15 | 北京数字绿土科技有限公司 | 一种海量点云数据的空间索引构建方法及装置 |
US20190114808A1 (en) * | 2017-10-12 | 2019-04-18 | Sony Corporation | Octree traversal for anchor point cloud compression |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN109410118A (zh) * | 2018-09-12 | 2019-03-01 | 广州南方卫星导航仪器有限公司 | 一种用于海量的点云数据快速加载显示方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552555A (zh) * | 2020-05-19 | 2020-08-18 | 北京数字绿土科技有限公司 | 一种点云的可视化方法和设备 |
CN111552555B (zh) * | 2020-05-19 | 2023-07-28 | 北京数字绿土科技股份有限公司 | 一种点云的可视化方法和设备 |
CN112417965A (zh) * | 2020-10-21 | 2021-02-26 | 湖北亿咖通科技有限公司 | 激光点云处理方法、电子装置和存储介质 |
CN112489177A (zh) * | 2020-11-30 | 2021-03-12 | 深圳供电局有限公司 | 一种点云数据渲染展示方法及*** |
CN112489177B (zh) * | 2020-11-30 | 2024-04-09 | 深圳供电局有限公司 | 一种点云数据渲染展示方法及*** |
CN112817538A (zh) * | 2021-02-22 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN112817538B (zh) * | 2021-02-22 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 数据处理的方法、装置、设备和存储介质 |
CN113761238A (zh) * | 2021-08-27 | 2021-12-07 | 广州文远知行科技有限公司 | 点云存储方法、装置、设备及存储介质 |
CN113836095A (zh) * | 2021-09-26 | 2021-12-24 | 广州极飞科技股份有限公司 | 一种点云数据存储方法、装置、存储介质及电子设备 |
CN117078825A (zh) * | 2023-09-04 | 2023-11-17 | 山东捷瑞信息技术产业研究院有限公司 | 一种点云数据线上渲染修改方法、***、设备及介质 |
CN117078825B (zh) * | 2023-09-04 | 2024-05-28 | 山东捷瑞信息技术产业研究院有限公司 | 一种点云数据线上渲染修改方法、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297924A (zh) | 点云数据的处理及渲染方法、装置、设备及存储介质 | |
CN106407408B (zh) | 一种海量点云数据的空间索引构建方法及装置 | |
CN101364310B (zh) | 一种三维模型图形的生成方法和装置 | |
CN106776963B (zh) | 轻量化的bim大数据在线可视化方法和*** | |
CN103093499B (zh) | 一种适用于网络传输的城市三维模型数据组织方法 | |
DE112021003335T5 (de) | Punktwolkengeometriekompression unter verwendung von octrees mit mehreren scanreihenfolgen | |
US8947431B2 (en) | Method and system for providing scene data of virtual world | |
CN115918088A (zh) | 使用具有切片的八叉树的点云压缩 | |
CN104572755B (zh) | 一种建立数据索引的方法、数据查询方法及相关装置 | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
CN112598793B (zh) | 三维地图瓦片矢栅一体化***和方法 | |
CN105405166A (zh) | 一种基于线性四叉树的lod模型生成方法 | |
CN103309943A (zh) | 一种三维地理信息平台及其地形数据处理方法 | |
CN113034663B (zh) | Gim模型轻量化处理方法和装置、设备及存储介质 | |
CN112685616A (zh) | 一种基于空间网格和建筑信息模型的精准化电力部件管理方法 | |
Andújar et al. | Visualization of Large‐Scale Urban Models through Multi‐Level Relief Impostors | |
CN112843700B (zh) | 地形图像的生成方法、装置、计算机设备和存储介质 | |
CN104166715A (zh) | VxWorks平台电子海图引擎 | |
CN112115226A (zh) | 地图渲染方法和地图渲染装置 | |
Masood et al. | High‐performance virtual globe GPU terrain rendering using game engine | |
CN115952252B (zh) | 基于动态渲染的语义瓦片数据处理方法、装置和电子设备 | |
CN114863040B (zh) | 纹理密集三维场景的lod树构建方法、装置和电子设备 | |
CN116737852A (zh) | 一种基于矢量瓦片数据的矢量绘图方法、装置和电子设备 | |
CN115269756A (zh) | 一种在cesium中引入热力图的方法及*** | |
CN114266874A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191001 |