CN111552555A - 一种点云的可视化方法和设备 - Google Patents

一种点云的可视化方法和设备 Download PDF

Info

Publication number
CN111552555A
CN111552555A CN202010422785.7A CN202010422785A CN111552555A CN 111552555 A CN111552555 A CN 111552555A CN 202010422785 A CN202010422785 A CN 202010422785A CN 111552555 A CN111552555 A CN 111552555A
Authority
CN
China
Prior art keywords
point cloud
scheduling
tile
thread
size
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
CN202010422785.7A
Other languages
English (en)
Other versions
CN111552555B (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.)
Beijing Greenvalley Technology Co ltd
Original Assignee
Beijing Greenvalley 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 Beijing Greenvalley Technology Co ltd filed Critical Beijing Greenvalley Technology Co ltd
Priority to CN202010422785.7A priority Critical patent/CN111552555B/zh
Priority to PCT/CN2020/092901 priority patent/WO2021232469A1/zh
Publication of CN111552555A publication Critical patent/CN111552555A/zh
Application granted granted Critical
Publication of CN111552555B publication Critical patent/CN111552555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出一种点云的可视化方法和设备,方法包括:基于点云数据的空间特性构建点云数据的八叉树结构;在可视化化系统中开启线程池,以使得线程池基于处理装置的机器性能确定开启的线程;基于瓦片调度子线程的数量、加载到场景中点云文件的数量和大小分配多个瓦片调度子线程加载点云文件;通过总调度线程基于用户设置的调度优先级确定调度策略,基于调度策略确定当前最大加载层级,并使瓦片调度子线程基于调度策略及当前最大加载层级对所加载的点云文件进行渲染。采用构建点云数据的八叉树结构,解决了海量数据处理难以及海量数据无法全部显示到内存中的问题,还通过多线程调度,实现了对多个点云文件进行调度渲染,实现了快速可视化。

Description

一种点云的可视化方法和设备
技术领域
本发明涉及点云可视化技术领域,特别涉及一种点云的可视化方法和设备。
背景技术
激光扫描系统能够直接获取被测目标表面的三维空间坐标,具有采样密度高、点云分布密集等特点,正逐渐成为三维空间信息快速获取的主要手段之一,被广泛应用于文物保护、三维重建、数字地面模型生产、城市规划等领域。但随着激光扫描系统设备精度的提高,扫描系统获得的点的数据(点的集合也即点云数据)也成几何式上升,点云数据的单体文件大小一般在GB(GigaByte,又被称为吉咖字节或京字节或十亿字节或戟)级。
目前存在有一些点云数据的处理方法,例如公开号为CN107943961A,名称为一种基于Web的海量点云渲染方法,其通过采用四叉树数据结构进行分配数据,利用Potree将点云数据进行渲染到Web浏览器上,但是该方法无法有效应对目前海量的点云数据的处理流程,且由于点云数据的数据量过于海量,使得其无法被全部显示到内存中。
由此,如何处理并在系统中展现如此庞大的数据,成为了目前亟待解决的问题。
发明内容
针对现有技术中的缺陷,本发明提出了一种点云的可视化方法和设备,采用构建点云数据的八叉树结构,解决了海量数据处理难以及海量数据无法全部显示到内存中的问题,且还通过多线程调度,实现了对多个点云文件进行调度渲染,实现了快速可视化。
本发明实施例提出了一种点云的可视化方法,应用于处理装置,该方法包括:
基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小,分配多个所述瓦片调度子线程加载所述点云文件;
通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。
在一个具体的实施例中,所述基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配所述瓦片调度子线程加载所述点云文件,包括:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小。
在一个具体的实施例中,还包括:若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
在一个具体的实施例中,用户设置的调度优先级包括:同层级优先、近处细节优先;
当所述用户设置的调度优先级为同层级优先时,对应的调度策略为按层级调度;
当所述用户设置的调度优先级为近处细节优先时,对应的调度策略为按视点距离调度;其中,按层级调度所见的点云的疏密程度一致;按视点距离调度所见的点云疏密程度不一致,视点距离越近所见的点云数据越密集,视点距离越远所见的点云越稀疏。
在一个具体的实施例中,所述基于所述调度策略确定当前最大加载层级,包括:
若调度策略为按层级调度,则根据场景加载的点云文件的数量,以及当前系统内存空间,确定当前能够加载进内存的最大加载层级;
若调度策略为按视点距离调度,则根据视点,遍历当前瓦片的下一级瓦片,计算下级瓦片范围内需要的内存大小,并判断当前物理内存能否容纳下级瓦片,若能够容纳,将下级瓦片层级作为当前最大加载层级,否则,确定当前瓦片所在层级为当前最大加载层级。
在一个具体的实施例中,还包括:
当场景中存在超出当前最大加载层级的瓦片时,将超出的所述瓦片移除出所述场景。
在一个具体的实施例中,还包括:
当所述渲染完成,通过所述瓦片调度子线程生成消息反馈给所述总调度线程。
本发明实施例还提出了一种点云的可视化设备,应用于处理装置,该设备包括:
构建模块,用于基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
线程调度模块,用于在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
分配模块,用于基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;
处理模块,用于通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。
在一个具体的实施例中,所述分配模块,用于:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小。
在一个具体的实施例中,所述分配模块,还用于若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
本发明实施例提出了一种点云的可视化方法和设备,应用于处理装置,该方法包括:基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。采用构建点云数据的八叉树结构,解决了海量数据处理难以及海量数据无法全部显示到内存中的问题,且还通过多线程调度,实现了对多个点云文件进行调度渲染,实现了快速可视化。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提出的一种点云的可视化方法的流程示意图;
图2为本发明实施例提出的一种点云的可视化设备的结构示意图;
图3为本发明实施例提出的一种点云的可视化设备的结构示意图;
图4为本发明实施例提出的一种点云的可视化设备的结构示意图。
具体实施方式
在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。
实施例1
本发明实施例1公开了一种点云的可视化方法,应用于处理装置,如图1所示,该方法包括以下步骤:
步骤101、基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
具体的,通过构建八叉树结构,根据后续可以视点或者层级调度点云文件,而不是一次性全部加载,解决了海量数据处理难以及场景渲染效率慢的问题。
具体的,步骤101中,实质是对点云数据进行预处理,具体的,是将点云数据按照空间索引方法,基于原始的点云数据的空间特性构建原始的点云数据的八叉树结构,其中,八叉树结构包含叶子节点和非叶子节点。
步骤102、在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
具体的,在可视化系统中,开启线程池,作为渲染调度的协助线程,线程池开启的线程数是根据机器性能来决定的,在一个实施例中,可以基于CPU(中央处理器)的物理核心数量来决定,例如当有四个物理核心时,开启8个线程等等。
步骤103、基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;
在一个具体的实施例中,步骤103中的所述基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配所述瓦片调度子线程加载所述点云文件,包括:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小;N为正整数。
具体的,当加载到场景中的点云文件的数量小于等于瓦片调度子线程的数量,那么为一个文件分配一个瓦片调度子线程;二当加载到场景中的文件大于瓦片子线程数,那么采用依据文件大小来处理瓦片调度子线程的分配。具体的,按照点云文件大小来分配的具体过程如下:
当点云文件较多时,采用按点云文件的大小来决定瓦片调度子线程的分配,具体而言,按照点云文件大小进行排序,得到点云文件大小序列,计算加载到场景中的点云文件总大小、根据瓦片调度子线程数计算平均到每个瓦片调度子线程的大小(平均每个瓦片调度子线程的大小=加载到场景中的文件总大小/瓦片调度子线程数)。
当单个文件大于平均每个瓦片调度子线程的大小时,将该点云文件分配一个瓦片调度子线程,当单个点云文件小于平均每个瓦片调度子线程能分配的大小时,将为多个点云文件分配一个瓦片调度子线程,具体的,在此的多个点云文件为其文件总大小刚好大于平均每个瓦片调度子线程能分配的大小,去掉其中的任意一个点云文件,则会使得文件总大小小于平均每个瓦片调度子线程能分配的大小。
特别的,若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
具体的,当场景中只有一个点云文件时,依据当前的瓦片调度子线程,让多个瓦片调度子线程同时处理该点云文件的八叉树索引。
步骤104、通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。
具体的,用户设置的调度优先级包括:同层级优先、近处细节优先;
当所述用户设置的调度优先级为同层级优先时,对应的调度策略为按层级调度;
当所述用户设置的调度优先级为近处细节优先时,对应的调度策略为按视点距离调度;其中,按层级调度所见的点云的疏密程度一致;按视点距离调度所见的点云疏密程度不一致,越近所见的点云数据越密集,越远所见的点云越稀疏。
具体的,总调度线程根据用户设置调度优先级(同层级优先或近处细节优先),当用户选择同层级优先时,采用按层级调度;用户选择近处细节优先时,则采用按视点距离调度。
由此,步骤104中的所述基于所述调度策略确定当前最大加载层级,包括:
若调度策略为按层级调度,则根据场景加载的点云文件的数量,以及当前系统内存空间,确定当前能够加载进内存的最大加载层级;
若调度策略为按视点距离调度,则根据视点,遍历当前瓦片的下一级瓦片,计算下级瓦片范围内需要的内存大小,并判断当前物理内存能否容纳下级瓦片,若能够容纳,将下级瓦片层级作为当前最大加载层级,否则,确定当前瓦片所在层级为当前最大加载层级。
由于在八叉树结构中,存在上下级瓦片,而上级瓦片管理并记录下级瓦片,由此,针对每一级瓦片,可以获知该瓦片的下一级瓦片,进而可以获取当前内存是否足够加载下级瓦片。
具体的,如果采用按层级调度,根据场景加载的点云文件的数,以及当前系统内存空间,计算最大能够加载进内存的层级,并通知各瓦片调度子线程;
如果当前采用按视点距离调度,根据视点,遍历当前瓦片的下一级瓦片(八叉树有很多层级,所以有层级关系,就比如树干有树枝,树枝有分支一样,瓦片也分有层级),计算下级瓦片范围内需要多大内存,当前剩余物理内存大小(即当前剩余物理内存大小与下级瓦片所需内存进行比较),判断当前物理内存大小能否容纳下级瓦片,如果能够容纳,将下级瓦片层级作为当前加载层级,否则,保持原有层级不变,并通知各瓦片加载子线程。
在一个具体的实施例中,各瓦片调度子线程,按加载层级数和当前调度策略信息,会对分配的点云文件进行废弃瓦片移除,新增瓦片的加载和渲染的操作;
具体的,当场景中存在超出当前最大加载层级的瓦片时,将超出的所述瓦片移除出场景。具体的,也即执行废弃瓦片移除,当场景中存在不属于当前加载层级数的瓦片时,认为该瓦片为废弃瓦片,将这些瓦片移除出场景。
此外,本方案中还包括新增瓦片的加载,当点云文件较少时,采用一个瓦片调度子线程对应一个点云文件进行八叉树索引数据调度;
当文件较多时,采用按点云文件大小来决定瓦片调度子线程的分配,具体而言,按照点云文件大小进行排序,得到点云文件大小序列,计算加载到场景中的点云文件总大小、根据瓦片调度子线程数计算平均到每个瓦片调度子线程的大小(平均每个瓦片调度子线程的大小=加载到场景中的文件总大小/瓦片调度子线程数)。
当单个点云文件大于平均每个瓦片调度子线程的大小时,将该点云文件分配一个线程,当单个点云文件小于平均每个瓦片调度子线程能分配的大小时,将为多个点云文件分配一个瓦片调度子线程。特别的,当场景中只有一个点云文件时,依据当前的瓦片调度子线程,让多个瓦片调度子线程同时处理该点云文件的八叉树索引;
至于新增瓦片渲染,加载完瓦片后,将瓦片送入渲染管道进行渲染。
此外,该方法还包括:
当所述渲染完成,通过所述瓦片调度子线程生成消息反馈给所述总调度线程。瓦片调度子线程在完成加载和渲染之后,通知总调度线程,然后等待总调度线程的下一步指令。
以此,本方案中通过采用构建原始点云数据的八叉树结构,解决了海量数据处理难的问题,解决了海量数据无法全部显示到内存的问题,此外,采用渲染调度策略,结合多线程调度,解决了在三维场景中进行渲染调度,对数据进行快速可视化的问题,采用多线程调度解决了同时对多文件进行渲染调度的问题。
实施例2
本发明实施例2还提出了一种点云的可视化设备,应用于处理装置,如图2所示,该设备包括:
构建模块201,用于基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
线程调度模块202,用于在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
分配模块203,用于基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;
处理模块204,用于通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行处理并进行渲染。
在一个具体的实施例中,所述分配模块203,用于:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小。
在一个具体的实施例中,所述分配模块203,还用于若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
在一个具体的实施例中,用户设置的调度优先级包括:同层级优先、近处细节优先;
当所述用户设置的调度优先级为同层级优先时,对应的调度策略为按层级调度;
当所述用户设置的调度优先级为近处细节优先时,对应的调度策略为按视点距离调度;其中,按层级调度所见的点云的疏密程度一致;按视点距离调度所见的点云疏密程度不一致,越近所见的点云数据越密集,越远所见的点云越稀疏。
在一个具体的实施例中,所述处理模块204基于所述调度策略确定当前最大加载层级,包括:
若调度策略为按层级调度,则根据场景加载的点云文件的数量,以及当前系统内存空间,确定当前能够加载进内存的最大加载层级;
若调度策略为按视点距离调度,则根据视点,遍历当前瓦片的下一级瓦片,计算下级瓦片范围内需要的内存大小,并判断当前物理内存能否容纳下级瓦片,若能够容纳,将下级瓦片层级作为当前最大加载层级,否则,确定当前瓦片所在层级为当前最大加载层级。
在一个具体的实施例中,如图3所示,该设备还包括:
移除模块205,用于当场景中存在超出当前最大加载层级的瓦片时,将超出的所述瓦片移除出场景。
在一个具体的实施例中,如图4所示,该设备还包括:
反馈模块206,用于当所述渲染完成,通过所述瓦片调度子线程生成消息反馈给所述总调度线程。
本发明实施例提出了一种点云的可视化方法和设备,应用于处理装置,该方法包括:基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行处理并进行渲染。采用构建点云数据的八叉树结构,解决了海量数据处理难以及海量数据无法全部显示到内存中的问题,且还通过多线程调度,实现了对多个点云文件进行调度渲染,实现了快速可视化。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (10)

1.一种点云的可视化方法,其特征在于,应用于处理装置,该方法包括:
基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小,分配多个所述瓦片调度子线程加载所述点云文件;
通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。
2.如权利要求1所述的一种点云的可视化方法,其特征在于,所述基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配所述瓦片调度子线程加载所述点云文件,包括:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小。
3.如权利要求2所述的一种点云的可视化方法,其特征在于,还包括:
若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
4.如权利要求1所述的一种点云的可视化方法,其特征在于,用户设置的调度优先级包括:同层级优先、近处细节优先;
当所述用户设置的调度优先级为同层级优先时,对应的调度策略为按层级调度;
当所述用户设置的调度优先级为近处细节优先时,对应的调度策略为按视点距离调度;其中,按层级调度所见的点云的疏密程度一致;按视点距离调度所见的点云疏密程度不一致,视点距离越近所见的点云数据越密集,视点距离越远所见的点云越稀疏。
5.如权利要求4所述的一种点云的可视化方法,其特征在于,所述基于所述调度策略确定当前最大加载层级,包括:
若调度策略为按层级调度,则根据场景加载的点云文件的数量,以及当前系统内存空间,确定当前能够加载进内存的最大加载层级;
若调度策略为按视点距离调度,则根据视点,遍历当前瓦片的下一级瓦片,计算下一级瓦片范围内需要的内存大小,并判断当前物理内存能否容纳下一级瓦片,若能够容纳,将下一级瓦片层级作为当前最大加载层级,否则,确定当前瓦片所在层级为当前最大加载层级。
6.如权利要求5所述的一种点云的可视化方法,其特征在于,还包括:
当场景中存在超出当前最大加载层级的瓦片时,将超出的所述瓦片移除出所述场景。
7.如权利要求1所述的一种点云的可视化方法,其特征在于,还包括:
当所述渲染完成,通过所述瓦片调度子线程生成消息反馈给所述总调度线程。
8.一种点云的可视化设备,其特征在于,应用于处理装置,该设备包括:
构建模块,用于基于点云数据的空间特性构建所述点云数据的八叉树结构;其中,构建了八叉树结构的点云数据包括多个层级且具有空间索引关系的点云文件;
线程调度模块,用于在可视化化系统中开启线程池,以使得所述线程池基于处理装置的机器性能确定开启的线程,所述线程包括一个总调度线程和多个瓦片调度子线程;
分配模块,用于基于所述瓦片调度子线程的数量、加载到场景中所述点云文件的数量和大小分配多个所述瓦片调度子线程加载所述点云文件;
处理模块,用于通过所述总调度线程基于用户设置的调度优先级确定调度策略,基于所述调度策略确定当前最大加载层级,并使所述瓦片调度子线程基于所述调度策略及当前最大加载层级对所加载的点云文件进行渲染。
9.如权利要求8所述的一种点云的可视化设备,其特征在于,所述分配模块,用于:
若加载到场景中所述点云文件的数量大于1且小于或等于所述瓦片调度子线程的数量时,为每个所述点云文件分配一个瓦片调度子线程进行加载;
若加载到场景中所述点云文件的数量大于所述瓦片调度子线程的数量时,基于加载到场景中各所述点云文件的大小确定加载到场景中所述点云文件的文件总大小,以及所述文件总大小平均到每个瓦片调度子线程的线程大小,其中,所述线程大小=文件总大小/所述瓦片调度子线程的数量;
针对各所述点云文件,当所述点云文件的文件大小小于所述线程大小时,选择文件总大小大于所述线程大小的N个所述点云文件分配一个瓦片调度子线程进行加载,其中N-1个所述点云文件的文件总大小小于所述线程大小。
10.如权利要求9所述的一种点云的可视化设备,其特征在于,所述分配模块,还用于若加载到场景中所述点云文件数量为1时,为所述点云文件分配预设数量的瓦片调度子线程进行加载,以处理所述点云文件的八叉树索引;所述预设数量大于等于2。
CN202010422785.7A 2020-05-19 2020-05-19 一种点云的可视化方法和设备 Active CN111552555B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010422785.7A CN111552555B (zh) 2020-05-19 2020-05-19 一种点云的可视化方法和设备
PCT/CN2020/092901 WO2021232469A1 (zh) 2020-05-19 2020-05-28 一种点云的可视化方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010422785.7A CN111552555B (zh) 2020-05-19 2020-05-19 一种点云的可视化方法和设备

Publications (2)

Publication Number Publication Date
CN111552555A true CN111552555A (zh) 2020-08-18
CN111552555B CN111552555B (zh) 2023-07-28

Family

ID=71998759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010422785.7A Active CN111552555B (zh) 2020-05-19 2020-05-19 一种点云的可视化方法和设备

Country Status (2)

Country Link
CN (1) CN111552555B (zh)
WO (1) WO2021232469A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112489177A (zh) * 2020-11-30 2021-03-12 深圳供电局有限公司 一种点云数据渲染展示方法及系统
CN112802179A (zh) * 2021-01-18 2021-05-14 南京航空航天大学 一种基于法向的大规模点云可视化方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648607B (zh) * 2022-02-23 2024-03-29 中国电建集团昆明勘测设计研究院有限公司 基于cad平台的倾斜三维模型重建与动态调度方法
CN115063497B (zh) * 2022-08-19 2023-05-05 北京山维科技股份有限公司 一种点云数据处理方法及装置
CN116127586A (zh) * 2023-04-14 2023-05-16 应急管理部沈阳消防研究所 一种基于Potree结构的快速建筑物变化检测方法

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615191A (zh) * 2009-07-28 2009-12-30 武汉大学 海量点云数据的存储与实时可视化方法
US20120313944A1 (en) * 2011-06-08 2012-12-13 Pacific Data Images Llc Coherent out-of-core point-based global illumination
CN104392480A (zh) * 2014-11-12 2015-03-04 山东地纬数码科技有限公司 以内外存交换方式实现基于点的全局光照效果的渲染方法
CN104834544A (zh) * 2015-05-04 2015-08-12 广州杰赛科技股份有限公司 数据加载方法及装置
CN105808672A (zh) * 2016-03-01 2016-07-27 重庆市勘测院 基于浏览器的海量三维点云数据的发布方法
US20160275719A1 (en) * 2015-03-19 2016-09-22 Intergraph Corporation System and method for fast optimization of point cloud data
CN106096016A (zh) * 2016-06-24 2016-11-09 北京建筑大学 一种基于网络的三维点云可视化方法以及装置
CN106296779A (zh) * 2015-05-19 2017-01-04 深圳市腾讯计算机系统有限公司 一种三维模型渲染显示方法及系统
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置
CN109117203A (zh) * 2018-07-13 2019-01-01 广州小鹏汽车科技有限公司 一种Android APP启动速度优化方法及系统
CN110297924A (zh) * 2019-06-26 2019-10-01 深圳飞马机器人科技有限公司 点云数据的处理及渲染方法、装置、设备及存储介质
CN110992469A (zh) * 2019-11-29 2020-04-10 四川航天神坤科技有限公司 海量三维模型数据的可视化方法及系统
CN111026541A (zh) * 2019-05-22 2020-04-17 珠海随变科技有限公司 渲染资源调度方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268096A (zh) * 2014-09-26 2015-01-07 西南科技大学 基于内存预分配和多点并写技术的大规模点云数据快速读取方法
CN108133044B (zh) * 2018-01-12 2020-10-02 适普远景遥感信息技术(北京)有限公司 基于属性分离的空间大数据三维可视化方法及平台

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615191A (zh) * 2009-07-28 2009-12-30 武汉大学 海量点云数据的存储与实时可视化方法
US20120313944A1 (en) * 2011-06-08 2012-12-13 Pacific Data Images Llc Coherent out-of-core point-based global illumination
CN104392480A (zh) * 2014-11-12 2015-03-04 山东地纬数码科技有限公司 以内外存交换方式实现基于点的全局光照效果的渲染方法
US20160275719A1 (en) * 2015-03-19 2016-09-22 Intergraph Corporation System and method for fast optimization of point cloud data
CN104834544A (zh) * 2015-05-04 2015-08-12 广州杰赛科技股份有限公司 数据加载方法及装置
CN106296779A (zh) * 2015-05-19 2017-01-04 深圳市腾讯计算机系统有限公司 一种三维模型渲染显示方法及系统
CN105808672A (zh) * 2016-03-01 2016-07-27 重庆市勘测院 基于浏览器的海量三维点云数据的发布方法
CN106096016A (zh) * 2016-06-24 2016-11-09 北京建筑大学 一种基于网络的三维点云可视化方法以及装置
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置
CN109117203A (zh) * 2018-07-13 2019-01-01 广州小鹏汽车科技有限公司 一种Android APP启动速度优化方法及系统
CN111026541A (zh) * 2019-05-22 2020-04-17 珠海随变科技有限公司 渲染资源调度方法、装置、设备及存储介质
CN110297924A (zh) * 2019-06-26 2019-10-01 深圳飞马机器人科技有限公司 点云数据的处理及渲染方法、装置、设备及存储介质
CN110992469A (zh) * 2019-11-29 2020-04-10 四川航天神坤科技有限公司 海量三维模型数据的可视化方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢洪等: "一种联合瓦片索引的车载海量点云数据管理方法", 《测绘通报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112489177A (zh) * 2020-11-30 2021-03-12 深圳供电局有限公司 一种点云数据渲染展示方法及系统
CN112489177B (zh) * 2020-11-30 2024-04-09 深圳供电局有限公司 一种点云数据渲染展示方法及系统
CN112802179A (zh) * 2021-01-18 2021-05-14 南京航空航天大学 一种基于法向的大规模点云可视化方法
CN112802179B (zh) * 2021-01-18 2021-12-07 南京航空航天大学 一种基于法向的大规模点云可视化方法
US11532123B2 (en) 2021-01-18 2022-12-20 Nanjing University Of Aeronautics And Astronautics Method for visualizing large-scale point cloud based on normal

Also Published As

Publication number Publication date
WO2021232469A1 (zh) 2021-11-25
CN111552555B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
CN111552555A (zh) 一种点云的可视化方法和设备
Schütz et al. Fast Out‐of‐Core Octree Generation for Massive Point Clouds
US10585948B2 (en) Method and device for constructing spatial index of massive point cloud data
CN105718480B (zh) 一种基于地理信息的海量三维数据调度的方法
CN103995861B (zh) 一种基于空间关联的分布式数据装置、方法及系统
CN103324533B (zh) 分布式数据处理方法、装置及系统
CN102682103A (zh) 一种面向海量激光雷达点云模型的三维空间索引方法
GB2503801A (en) Power grid visualisation based on a three dimensional geographic information system (GIS)
CN114387375B (zh) 一种海量点云数据多视图渲染方法
CN112509118B (zh) 一种可预加载节点和自适应填充的大规模点云可视化方法
CN111367649B (zh) 高精地图数据并行处理方法和装置
CN112765513A (zh) 大规模建筑场景的细粒度化Web3D在线可视化方法
CN113934686B (zh) 面向海量机载激光点云的分布式多级空间索引方法
CN112559165A (zh) 内存管理方法、装置、电子设备及计算机可读存储介质
CN116152039B (zh) 图像渲染的方法
CN114119939A (zh) 数据轻量化处理方法、装置、存储介质及电子设备
CN113722415B (zh) 点云数据的处理方法、装置、电子设备及存储介质
CN115578536A (zh) 一种分层分块三维模型节点合并方法、装置和电子装置
CN113496543A (zh) 一种点云数据筛选方法、装置、电子设备和存储介质
KR101769020B1 (ko) 시설물에 대한 병렬처리 기반의 모델링 단계별 lod 서비스 데이터 생성 방법
CN114494623A (zh) 基于lod的地形渲染方法及装置
CN114328795B (zh) 一种实景三维数据处理方法、装置、服务器和存储介质
CN107104829B (zh) 一种基于网络拓扑数据的物理设备匹配分配方法及装置
CN116010518A (zh) 一种基于容器部署的电力线点云数据云端自动处理系统
CN113626547B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 2301-2308, third floor, building 2, incubator, Zhongguancun Software Park, Dongbeiwang, Haidian District, Beijing 100094

Applicant after: Beijing Digital Green Earth Technology Co.,Ltd.

Address before: Room 2301-2308, third floor, building 2, incubator, Zhongguancun Software Park, Dongbeiwang, Haidian District, Beijing 100094

Applicant before: BEIJING GREENVALLEY TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant