CN116109470A - 实时点云数据渲染方法、装置、终端及存储介质 - Google Patents

实时点云数据渲染方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN116109470A
CN116109470A CN202310392747.5A CN202310392747A CN116109470A CN 116109470 A CN116109470 A CN 116109470A CN 202310392747 A CN202310392747 A CN 202310392747A CN 116109470 A CN116109470 A CN 116109470A
Authority
CN
China
Prior art keywords
point cloud
real
cloud data
time point
queue
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
CN202310392747.5A
Other languages
English (en)
Other versions
CN116109470B (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.)
Shenzhen Qiyu Innovation Technology Co ltd
Original Assignee
Shenzhen Qiyu Innovation 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 Shenzhen Qiyu Innovation Technology Co ltd filed Critical Shenzhen Qiyu Innovation Technology Co ltd
Priority to CN202310392747.5A priority Critical patent/CN116109470B/zh
Publication of CN116109470A publication Critical patent/CN116109470A/zh
Application granted granted Critical
Publication of CN116109470B publication Critical patent/CN116109470B/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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请公开了一种实时点云数据渲染方法、装置、终端及存储介质,该方法包括:按时序接收各帧实时点云数据,并存入构建的多层级队列中;对多层级队列中的实时点云数据的数量进行监控;当某个层级队列存储的实时点云数据的数量大于或等于对应的数量阈值时,将该层级队列中数量阈值的实时点云数据进行合并;将合并后的实时点云数据存储至下一个层级队列;在渲染处理前,确定出层级队列中不进行渲染处理的目标实时点云数据;将目标实时点云数据转存至外存中,并基于剩下的实时点云数据进行渲染处理,实现将需要渲染的实时点云数据的数量维持在可控范围内,降低了内存资源消耗,进而确保实时点云数据渲染的稳定可靠性。

Description

实时点云数据渲染方法、装置、终端及存储介质
技术领域
本申请涉及点云数据可视化处理技术领域,尤其涉及一种实时点云数据渲染方法、装置、终端及存储介质。
背景技术
目前,通过雷达、ToF(Time of Flight,飞行时)等手段可以直接采集环境场景的点云数据,或者,通过摄像头捕获图像进行特征点三角化也可以计算获取场景的点云数据。通常而言,这类实时点云数据的数量非常大,目前行业中通常将三维的点云数据划分到不同的空间区域,通过四叉树、八叉树进行数据组织和处理,进而渲染显示,这对移动端硬件、实时采集的空间点数量、采集频率都有严苛的要求。且在移动端有限的硬件资源条件下,由于处理的实时点云数据的数量大,内存资源消耗大,还可能会导致无法实时响应,从而导致卡死、崩溃等问题出现。
因此,如何降低内存资源消耗,确保实时点云数据渲染的稳定可靠性成为亟需解决的问题。
发明内容
本申请本申请实施例提供一种实时点云数据渲染方法、装置、终端及存储介质,可以降低内存资源消耗,确保实时点云数据渲染的稳定可靠性。
第一方面,本申请实施例提供了一种实时点云数据渲染方法,所述实时点云数据渲染方法包括:
按时序接收各帧实时点云数据,并存入构建的多层级队列中;
对多层级队列中的每个所述层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值;
当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列;
将合并后的实时点云数据存储至第二层级队列,并将所述第一层级队列中的所述第一数量阈值的实时点云数据清除,所述第二层级队列为所述第一层级队列的下一个层级队列;
在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据;
将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理。
第二方面,本申请实施例还提供了一种实时点云数据渲染装置,所述实时点云数据渲染装置包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行上述的实时点云数据渲染方法。
第三方面,本申请实施例还提供了一种终端,所述终端包括如上述的实时点云数据渲染装置。
第四方面,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述的实时点云数据渲染方法。
本申请实施例提供了一种实时点云数据渲染方法、装置、终端及存储介质,通过按时序接收各帧实时点云数据,并存入构建的多层级队列中,对其中每个层级队列存储的实时点云数据的数量进行监控,每个层级队列配置有实时点云数据对应的数量阈值,当第一层级队列存储的实时点云数据的数量大于或等于第一层级队列对应的第一数量阈值时,将第一层级队列(多个层级队列中的任意一个层级队列)中的第一数量阈值的实时点云数据进行合并,将合并后的实时点云数据存储至第二层级队列(第一层级队列的下一个层级队列),在渲染处理前,确定出层级队列中不进行渲染处理的目标实时点云数据,将目标实时点云数据转移存储至外存中,并基于层级队列中剩下的实时点云数据进行渲染处理,实现通过不同的层级队列逐层降低新增加的实时点云数据的频率,并将其中一部分实时点云数据(目标实时点云数据)转移存储至外存,使得需要进行渲染的实时点云数据的数量维持在一个可控范围内,不会无限增加,因此,降低了内存资源消耗,进而确保实时点云数据渲染的稳定可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实时点云数据渲染方法的步骤示意流程图;
图2是本申请实施例提供的一种通过多个层级队列存储实时点云数据的示意图;
图3是本申请实施例提供的一种在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据的步骤示意流程图;
图4是本申请实施例提供的一种从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据的步骤示意流程图;
图5是本申请实施例提供的一种实时点云数据渲染装置的示意性框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在部分实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
目前,通过雷达、ToF(Time of Flight,飞行时)等手段可以直接采集环境场景的点云数据,或者,通过摄像头捕获图像进行特征点三角化也可以计算获取场景的点云数据。通常而言,这类点云数据的数量非常大,目前行业中通常将三维的点云数据划分到不同的空间区域,通过四叉树、八叉树进行数据组织和处理,进而渲染显示,这对移动端硬件、实时采集的空间点数量、采集频率都有严苛的要求。且在移动端有限的硬件资源条件下,由于处理的实时点云数据的数量大,内存资源消耗大,还可能会导致无法实时响应,从而导致卡死、崩溃等问题出现。
为了解决上述问题,本申请实施例提供了一种实时点云数据渲染方法、装置、终端及存储介质,其中,该方法通过按时序接收各帧实时点云数据,并存入构建的多层级队列中;对多层级队列中的每个所述层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值;当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列;将合并后的实时点云数据存储至第二层级队列,所述第二层级队列为所述第一层级队列的下一个层级队列;在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据;将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理,实现通过不同的层级队列逐层降低新增加的实时点云数据的频率,并将其中一部分实时点云数据(目标实时点云数据)转移存储至外存,使得需要渲染的实时点云数据的数量维持在一个可控范围内,不会无限增加,因此,降低了内存资源消耗,进而确保实时点云数据渲染的稳定可靠性,因此,降低了内存资源消耗,进而确保实时点云数据渲染的稳定可靠性。
请参阅图1,图1是本申请实施例提供的实时点云数据渲染方法的流程示意图,该方法可以应用于终端,还可以应用于除终端以外的其他设备,如服务器等。其中,服务器可以是独立的服务器,也可以是服务器集群,终端可以是手机、相机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、个人计算机(personal computer,PC)、上网本、个人数字助理(personal digitalassistant,PDA)中任一者,本申请实施例中不作任何限制。
如图1所示,本申请实施例提供的实时点云数据渲染方法包括步骤S101至步骤S106。
S101、按时序接收各帧实时点云数据,并存入构建的多层级队列中。
S102、对多个层级队列中的每个所述层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值。
例如,构建的多层级队列包括层级队列L0、L1、L2、……、Lx、……,其中,层级队列L0的长度为N0、层级队列L1的长度为N1、层级队列L2的长度为N2、……、层级队列Lx的长度为Nx、……。N0、N1、N2、……、Nx、……的具体数值可以相同,也可以不同,也即,每个层级队列的长度可以配置相同,也可以配置不同。
并且,每个层级队列配置有实时点云数据对应的数量阈值,例如,层级队列L0对应的实时点云数据的数量阈值为M0、层级队列L1对应的实时点云数据的数量阈值为M1、层级队列L2对应的实时点云数据的数量阈值为M2、……、层级队列Lx对应的实时点云数据的数量阈值为Mx、……。M0、M1、M2、……、Mx、……的具体数值可以相同,也可以不同,也即,每个层级队列对应的实时点云数据的数量阈值可以配置相同,也可以配置不同。
其中,每个层级队列对应的实时点云数据的数量阈值小于该层级队列的长度,也即,M0<N0、M1<N1、M2<N2、……、Mx<Nx、……。
考虑到实际应用场景中的实时点云数据,尤其是很多场景对应的高频海量的实时点云数据,按时序接收各帧实时点云数据,对于接收获得的实时点云数据,存入上述构建的多层级队列中。
示例性的,每个层级队列为循环队列,当层级队列的实时点云数据的数量要超出其对应的长度时,新到的实时点云数据会覆盖第1个节点,依此类推,从而确保层级队列中的实时点云数据的数量不会超出层级队列对应的长度。例如,以层级队列L0为例,当层级队列L0的实时点云数据的数量达到N0+1时,新到的实时点云数据会覆盖第1个节点,依此类推,从而确保层级队列L0中实时点云数据的数量不超过N0个。
示例性的,层级队列L0作为多个层级队列的第一层,将每一帧的实时点云数据作为一个对象存储到层级队列L0中,该实时点云数据会被立即显示渲染,这样可以保证所有最新到达的实时点云数据都会被显示渲染。
在实际应用场景中,对每个层级队列存储的实时点云数据的数量进行监控,确保层级队列中的实时点云数据的数量不会超出层级队列对应的长度。例如,对层级队列L0存储的实时点云数据的数量进行监控,当层级队列L0的实时点云数据的数量达到N0,在新到下一个实时点云数据时,实时点云数据的数量就会超出层级队列L0的长度N0,此时,将新到的实时点云数据覆盖第1个节点,从而确保层级队列L0中实时点云数据的数量不超过N0个。
S103、当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列。
S104、将合并后的实时点云数据存储至第二层级队列,并将所述第一层级队列中的所述第一数量阈值的实时点云数据清除,所述第二层级队列为所述第一层级队列的下一个层级队列。
例如,如图2所示,通过各个层级队列L0、L1、L2、……、Lx、……存储相应的多个实时点云数据,也即图2中的PC(Point Cloud),当层级队列L0中到达的实时点云数据的数量大于或等于层级队列L0对应的实时点云数据的数量阈值M0时,将层级队列L0中的M0个实时点云数据合并,生成一个大的实时点云数据,将合并后的大的实时点云数据存储至层级队列L1中,同时置空层级队列L0中这些被合并的M0个节点,清除相应的M0个实时点云数据,从而避免重复渲染,优化性能。
依此类推,后续层级队列L0中实时点云数据的数量每达到M0个,执行一次M0个实时点云数据的合并操作,将合并后的大的实时点云数据存储至层级队列L1中,并清除层级队列L0中这些被合并的M0个实时点云数据,置空层级队列L0中相应的M0个节点。
层级队列L1中的实时点云数据的数量不断增加后,同样地,当层级队列L1中到达的实时点云数据的数量大于或等于层级队列L1对应的实时点云数据的数量阈值M1时,将层级队列L1中的M1个实时点云数据合并,生成一个大的实时点云数据,将合并后的大的实时点云数据存储至层级队列L2中,同时置空层级队列L1中这些被合并的M1个节点,清除相应的M1个实时点云数据,从而避免重复渲染,优化性能。
层级队列L2中的实时点云数据的数量不断增加后,同样地,当层级队列L2中到达的实时点云数据的数量大于或等于层级队列L2对应的实时点云数据的数量阈值M2时,将层级队列L2中的M2个实时点云数据合并,生成一个大的实时点云数据,将合并后的大的实时点云数据存储至层级队列L3中,同时置空层级队列L2中这些被合并的M2个节点,清除相应的M2个实时点云数据,从而避免重复渲染,优化性能。
根据具体需求,可以重复步骤S102至步骤S103的过程,由于多个层级队列的实时点云数据的合并操作,实现通过不同的层级队列逐层降低新增加的实时点云数据的频率。
示例性的,多个层级队列是一个开放的队列,即多个层级队列中的实时点云数据的数量会随时间增长而增长,但由于层级队列的实时点云数据的合并操作,不同的层级队列的点云数量增长速度会逐层降低。例如,层级队列Lx的实时点云数据的数量增长速度相比于前面的层级队列L0、层级队列L1、层级队列L2等,实时点云数据的数量增长速度大幅度降低。并且,各层级队列的实时点云数据的增长速度可通过设备硬件点云采集频率F、合并节点时的M0、M1、M2……进行预测。
可以理解的是,层级队列L0、L1、L2、……、Lx、……的队列数量是开放的,可以根据具体应用场景下的实时点云数据的数量情况进行设置,本申请中不作具体限制。
S105、在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据。
在一些实施例中,所述在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据之前,包括:
对至少一个所述层级队列中的实时点云数据进行降采样处理,以降低点云密度,其中,至少一个所述层级队列不包括首个层级队列,以使新到达的实时点云数据被渲染显示。
由于首个层级队列中存储的是最新到达的实时点云数据,不对首个层级队列中存储的实时点云数据进行降采样处理,这样,可以保证所有最新到达的实时点云数据都会被渲染显示。
针对于其他的层级队列,对其中的至少一个层级队列中的实时点云数据进行降采样处理,以降低点云密度,通过降低实时点云数据的数量,从而进一步降低内存资源消耗。
示例性的,当层级队列存储的实时点云数据的数量大于或等于该层级队列对应的实时点云数据的数量阈值时,对该层级队列中的实时点云数据进行降采样处理。例如,当层级队列L1中的实时点云数据的数量大于层级队列L1对应的实时点云数据的数量阈值M1时,对层级队列L1中的实时点云数据进行降采样处理。
在一些实施例中,所述对至少一个所述层级队列中的实时点云数据进行降采样处理,包括:
根据所述实时点云数据的到达时间和/或所述实时点云数据对应的点云空间点邻近程度,进行实时点云数据降采样处理;其中,降采样处理的降采样强度由预设的内存点云数量阈值、渲染点云数量阈值确定,所述内存点云数量阈值用于调整降采样强度和内外存间数据转移强度,所述渲染点云数量阈值用于调整降采样强度和可见点云范围。
例如,以层级队列L1中的实时点云数据为例,根据层级队列L1中的实时点云数据的到达时间和/或实时点云数据对应的点云空间点邻近程度,对先到达的实时点云数据和/或相距较远的点云空间点对应的实时点云数据进行一定程度的降采样处理,也即,综合考虑实时点云数据的到达时间、点云空间点邻近程度,降采样舍弃一些实时点云数据,降低点云密度。降采样处理后保留的实时点云数据都是相对比较近期的实时点云数据,因此,确保新到达的点云完整显示,从而确保渲染显示效果。
示例性的,预先设置内存点云数量阈值、渲染点云数量阈值,其中,内存点云数量阈值用于调整点降采样强度和内外存间数据转移强度,维持内存消耗在一定范围;渲染点云数量阈值用于调整降采样强度和可见点云范围,维持渲染显示点云数量的稳定,从而确保渲染帧率。综合考虑内存点云数量阈值、渲染点云数量阈值,动态调整降采样强度,确保内存和渲染硬件性能可承受。
需要说明的是,是否对实时点云数据进行降采样操作可以根据实际场景来确定。例如,对于需要进行无损显示渲染的场景,则对实时点云数据不进行降采样操作。而对于渲染显示效果要求没有那么高的场景,就可以对实时点云数据进行降采样操作,从而实现降低进行渲染处理的开销。
示例性的,针对如图2所示的各个层级队列存储的实时点云数据,对层级队列中的实时点云数据执行LOD(Levels of Detail,细节层次)操作,生成不同粒度节点。其中,LOD是一种通过构建数字模型不同几何精细粒度,在不同的距离或者设备上显示呈现不同粒度模型的技术。
可以理解的是,LOD分级可以针对中间的层级队列进行,实时点云数据合并、降采样等操作针对LOD的同一层级进行操作。而将LOD分级提高可以细化空间区域,有利于降低显示渲染开销。
通过上述的基于时序的降采样和合并处理策略,对实时点云数据进行处理,不仅实现了确保最新到达的实时点云数据被完整显示,而且还使得场景中渲染显示的点云数量维持在一个最优化的可控范围内,从而提升点云数据渲染显示效果,降低渲染性能压力。
为了降低渲染处理的实时点云数据的数量,每一帧在渲染前,确定出不需要进行渲染的实时点云数据,作为目标实时点云数据。
在一些实施例中,如图3所示,所述步骤S105可以包括子步骤S1051和子步骤S1052。
S1051、确定多个所述层级队列存储的实时点云数据的总数量;
S1052、当所述总数量大于预设的内存点云数量阈值时,从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据,以使得除所述目标实时点云数据以外的实时点云数据的数量不超出所述内存点云数量阈值。
示例性的,预先设置场景中实时点云数据渲染对应的最大的内存点云数量阈值Max。通过对每个层级队列存储的实时点云数据的数量进行监控,确定所有的层级队列存储的实时点云数据的总数量。当所有的层级队列存储的实时点云数据的总数量大于预设的内存点云数量阈值时,从多个层级队列存储的实时点云数据中确定最不需要渲染的实时点云数据,作为目标实时点云数据,以使得除目标实时点云数据以外的实时点云数据的数量不超出内存点云数量阈值Max。
在一些实施例中,如图4所示,步骤S1052可以包括子步骤S10521和子步骤S10522。
S10521、计算多个所述层级队列中的每个实时点云数据的优先级值,以及获取多个所述层级队列中的每个实时点云数据的存储时长。
通常,时间越近到达的实时点云数据,是越需要被显示渲染的实时点云数据。同时,由于各实时点云数据对应节点半径不同、节点中心到相机等终端的距离不同,各个实时点云数据对应的优先级也会有所不同。
在一些实施例中,所述计算多个所述层级队列中的每个实时点云数据的优先级值,包括:
获取每个实时点云数据对应的节点信息,所述节点信息包括节点半径、相机到节点中心的距离;
根据所述节点信息,计算得到每个实时点云数据的所述优先级值。
获取每个层级队列中的每个实时点云数据的存储时长t,以及各个实时点云数据对应节点信息,其中,节点信息包括但不限于节点半径radius、节点中心到相机等终端的距离distance。
示例性的,预设节点半径radius、节点中心到相机等终端的距离distance与优先级值priority的对应关系,其中,节点半径radius与优先级值priority呈正相关关系,节点半径radius越大,对应的优先级值priority越大;节点中心到相机等终端的距离distance与优先级值priority呈反相关关系,节点中心到相机等终端的距离distance越大,对应的优先级值priority越小。
基于所获得的节点半径radius、节点中心到相机等终端的距离distance等节点信息,以及预设的节点半径radius、节点中心到相机等终端的距离distance与优先级值priority的对应关系,得到每个实时点云数据对应的优先级值priority。
在一些实施例中,除了获取上述的各个实时点云数据对应的节点半径radius、节点中心到相机等终端的距离distance等节点信息以外,还确定相机等终端至屏幕中心的对应线段camToScreenCenter、相机等终端至节点中心的对应线段camToNodeCenter,相机等终端的视场角fov、屏幕高度ScreenHeight等信息。
之后,根据各个实时点云数据对应的节点半径radius、节点中心到相机等终端的距离distance、相机等终端至屏幕中心的对应线段camToScreenCenter、相机等终端至节点中心的对应线段camToNodeCenter,相机等终端的视场角fov、屏幕高度ScreenHeight等信息,按预设优先级计算公式计算得到各个实时点云数据对应的优先级值priority。
示例性的,预设优先级计算公式如下:
Priority=a/b;其中,
a=(ScreenHeight/2)×radius/(tan(fov/2)×distance);
b=|arcos(camToScreenCenter·camToNodeCenter)|+1;
将各个实时点云数据对应的节点半径radius、节点中心到相机等终端的距离distance、相机等终端至屏幕中心的对应线段camToScreenCenter、相机等终端至节点中心的对应线段camToNodeCenter,相机等终端的视场角fov、屏幕高度ScreenHeight等信息,代入上述优先级计算公式中,计算得到各个实时点云数据对应的优先级值priority。
S10522、根据每个实时点云数据的所述优先级值和/或每个实时点云数据的存储时长,确定所述目标实时点云数据。
示例性的,预先设置实时点云数据对应的优先级值priority对应的预设优先级阈值h,以及实时点云数据的存储时长对应的预设时长阈值T。获得各个实时点云数据对应的优先级值priority,以及各个实时点云数据的存储时长t之后,一种实施方式中,将各个实时点云数据对应的优先级值priority与预设优先级阈值h进行比较,将优先级值priority大于预设优先级阈值h的实时点云数据,确定为目标实时点云数据。
另一种实施方式中,将各个实时点云数据对应的存储时长t与预设时长阈值T进行比较,将存储时长t大于预设时长阈值T的实时点云数据,确定为目标实时点云数据。
另一种实施方式中,将各个实时点云数据对应的优先级值priority与预设优先级阈值h进行比较,以及将各个实时点云数据对应的存储时长t与预设时长阈值T进行比较,将其中优先级值priority大于预设优先级阈值h且存储时长t大于预设时长阈值T的实时点云数据,确定为目标实时点云数据。
需要说明的是,实时点云数据对应的预设优先级阈值h,以及预设时长阈值T可以基于内存点云数量阈值Max的大小进行反馈设置,通过将预设优先级阈值h,以及预设时长阈值T设置为合理的数值大小,确保除目标实时点云数据以外多个层级队列存储的实时点云数据的数量不超出内存点云数量阈值Max。
在一些实施例中,还可以设置实时点云数据对应的优先级值priority与存储时长t对应的权重,通过对各个实时点云数据对应的优先级值priority与存储时长t进行加权计算,获得各个实时点云数据作为不需要渲染的目标实时点云数据的概率,将其中概率最高的相应数量的实时点云数据确定为目标实时点云数据,或者,将对应的概率大于预设概率阈值的实时点云数据确定为目标实时点云数据。
S106、将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理。
确定了目标实时点云数据之后,将目标实时点云数据转移存储至外存中,也即,基于各个实时点云数据对应的优先级值priority和/或存储时长t,将最不需要显示的节点交换到外存中,只对多个层级队列中剩下的实时点云数据进行渲染处理,从而维持内存消耗稳定。
通过上述的处理方式,采集的实时点云数据进行分层处理,不需要遍历实时点云数据,不进行复杂计算,减低计算开销,降低渲染压力。并通过对不同的实时点云数据采取不同的处理策略,比如对近期时间采集的实时点云数据会全部渲染显示,既不会被降采样,也不会转存到外存中,因此可确保时间序中最新的实时点云数据无损显示渲染,不影响点云渲染显示效果。同时,通过合并层级队列中的实时点云数据,减少需要处理的实时点云数据的数量,提高了渲染效率。并且,随着时间的流逝,时间线靠前的实时点云数据可能会被降采样,也可能会被转存到外存中,从而确保需要显示的点云数量维持在一个可接受的范围,也即在确保渲染显示效果的同时,维持内存消耗稳定。
需要说明的是,本方案实时点云数据渲染可以借助目前主流图像API(Application Programming Interface,应用程序接口),如DirectX(Direct eXtension,简称DX)、OpenGL(Open Graphics Library,开放式图形库)等实现,也可以借助3D引擎,如unReal(UNREAL ENGINE,虚幻引擎)、Unity等实现,不局限于某一特定渲染系统。
上述实施例通过按时序接收各帧实时点云数据,并存入构建的多层级队列中,对其中每个层级队列存储的实时点云数据的数量进行监控,每个层级队列配置有实时点云数据对应的数量阈值,当第一层级队列存储的实时点云数据的数量大于或等于第一层级队列对应的第一数量阈值时,将第一层级队列(多个层级队列中的任意一个层级队列)中的第一数量阈值的实时点云数据进行合并,将合并后的实时点云数据存储至第二层级队列(第一层级队列的下一个层级队列),在渲染处理前,确定出层级队列中不进行渲染处理的目标实时点云数据,将目标实时点云数据转移存储至外存中,并基于层级队列中剩下的实时点云数据进行渲染处理,实现通过不同的层级队列逐层降低新增加的实时点云数据的频率,并将其中一部分实时点云数据(目标实时点云数据)转移存储至外存,使得需要进行渲染的实时点云数据的数量维持在一个可控范围内,不会无限增加,因此,降低了内存资源消耗,进而确保实时点云数据渲染的稳定可靠性。
请参阅图5,图5为本申请实施例提供的一种实时点云数据渲染装置的示意性框图。
如图5所示,该实时点云数据渲染装置200可以包括处理器211和存储器212,处理器211和存储器212通过总线连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器211可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。
具体地,存储器212可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。存储器212中存储有供处理器211执行的各种计算机程序。
其中,所述处理器211用于运行存储在存储器处理器211中的计算机程序,并在执行所述计算机程序时实现如下步骤:
按时序接收各帧实时点云数据,并存入构建的多层级队列中;
对多层级队列中的每个所述层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值;
当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列;
将合并后的实时点云数据存储至第二层级队列,并将所述第一层级队列中的所述第一数量阈值的实时点云数据清除,所述第二层级队列为所述第一层级队列的下一个层级队列;
在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据;
将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理。
在一些实施例中,处理器211在实现所述所述在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据之前,用于实现:
对至少一个所述层级队列中的实时点云数据进行降采样处理,以降低点云密度,其中,至少一个所述层级队列不包括首个层级队列,以使新到达的实时点云数据被渲染显示。
在一些实施例中,处理器211在实现所述对至少一个所述层级队列中的实时点云数据进行降采样处理时,用于实现:
根据所述实时点云数据的到达时间和/或所述实时点云数据对应的点云空间点邻近程度,进行实时点云数据降采样处理;其中,降采样处理的降采样强度由预设的内存点云数量阈值、渲染点云数量阈值确定,所述内存点云数量阈值用于调整降采样强度和内外存间数据转移强度,所述渲染点云数量阈值用于调整降采样强度和可见点云范围。
在一些实施例中,处理器211在实现所述确定出所述层级队列中不进行渲染处理的目标实时点云数据时,用于实现:
确定多个所述层级队列存储的实时点云数据的总数量;
当所述总数量大于预设的内存点云数量阈值时,从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据,以使得除所述目标实时点云数据以外的实时点云数据的数量不超出所述内存点云数量阈值。
在一些实施例中,处理器211在实现所述从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据时,用于实现:
计算多个所述层级队列中的每个实时点云数据的优先级值,以及获取多个所述层级队列中的每个实时点云数据的存储时长;
根据每个实时点云数据的所述优先级值和/或每个实时点云数据的存储时长,确定所述目标实时点云数据。
在一些实施例中,处理器211在实现所述根据每个实时点云数据的所述优先级值和/或每个实时点云数据的存储时间,确定所述目标实时点云数据时,用于实现:
将优先级值大于预设优先级阈值且存储时长大于预设时长阈值的实时点云数据,确定为所述目标实时点云数据。
在一些实施例中,处理器211在实现所述计算多个所述层级队列中的每个实时点云数据的优先级值时,用于实现:
获取每个实时点云数据对应的节点信息,所述节点信息包括节点半径、相机到节点中心的距离;
根据所述节点信息,计算得到每个实时点云数据的所述优先级值。
本申请的实施例中还提供一种终端,该终端的类型包括但不限于是手机、相机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、个人计算机(personal computer,PC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例中不作任何限制。
其中,该终端包括实时点云数据渲染装置,示例性的,该实时点云数据渲染装置可以为上述实施例中所述的实时点云数据渲染装置200。终端可以执行本申请实施例所提供的任一种实时点云数据渲染方法,因此,可以实现本申请实施例所提供的任一种实时点云数据渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请的实施例中还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的实时点云数据渲染方法的步骤。例如,该计算机程序被处理器加载,可以执行如下步骤:
按时序接收各帧实时点云数据,并存入构建的多层级队列中;
对多层级队列中的每个所述层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值;
当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列;
将合并后的实时点云数据存储至第二层级队列,并将所述第一层级队列中的所述第一数量阈值的实时点云数据清除,所述第二层级队列为所述第一层级队列的下一个层级队列;
在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据;
将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,所述存储介质可以是前述实施例的实时点云数据渲染装置或终端的内部存储单元,例如实时点云数据渲染装置或终端的硬盘或内存。所述存储介质也可以是实时点云数据渲染装置或终端的外部存储设备,例如实时点云数据渲染装置或终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种实时点云数据渲染方法,因此,可以实现本申请实施例所提供的任一种实时点云数据渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种实时点云数据渲染方法,其特征在于,所述实时点云数据渲染方法包括:
按时序接收各帧实时点云数据,并存入构建的多层级队列中;
对多层级队列中的每个层级队列存储的实时点云数据的数量进行监控,其中,每个所述层级队列配置有实时点云数据对应的数量阈值;
当第一层级队列存储的实时点云数据的数量大于或等于所述第一层级队列对应的第一数量阈值时,将所述第一层级队列中的所述第一数量阈值的实时点云数据进行合并,其中,所述第一层级队列为多个所述层级队列中的任意一个层级队列;
将合并后的实时点云数据存储至第二层级队列,并将所述第一层级队列中的所述第一数量阈值的实时点云数据清除,所述第二层级队列为所述第一层级队列的下一个层级队列;
在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据;
将所述目标实时点云数据转移存储至外存中,并基于所述层级队列中剩下的实时点云数据进行渲染处理。
2.根据权利要求1所述的方法,其特征在于,所述在渲染处理前,确定出所述层级队列中不进行渲染处理的目标实时点云数据,包括:
对至少一个所述层级队列中的实时点云数据进行降采样处理,以降低点云密度,其中,至少一个所述层级队列不包括首个层级队列,以使新到达的实时点云数据被渲染显示。
3.根据权利要求2所述的方法,其特征在于,所述对至少一个所述层级队列中的点云数据进行降采样处理,包括:
根据所述实时点云数据的到达时间和/或所述实时点云数据对应的点云空间点邻近程度,进行实时点云数据降采样处理;其中,降采样处理的降采样强度由预设的内存点云数量阈值、渲染点云数量阈值确定,所述内存点云数量阈值用于调整降采样强度和内外存间数据转移强度,所述渲染点云数量阈值用于调整降采样强度和可见点云范围。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述确定出所述层级队列中不进行渲染处理的目标实时点云数据,包括:
确定多个所述层级队列存储的实时点云数据的总数量;
当所述总数量大于预设的内存点云数量阈值时,从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据,以使得除所述目标实时点云数据以外的实时点云数据的数量不超出所述内存点云数量阈值。
5.根据权利要求4所述的方法,其特征在于,所述从多个所述层级队列存储的实时点云数据中确定所述目标实时点云数据,包括:
计算多个所述层级队列中的每个实时点云数据的优先级值,以及获取多个所述层级队列中的每个实时点云数据的存储时长;
根据每个实时点云数据的所述优先级值和/或每个实时点云数据的存储时长,确定所述目标实时点云数据。
6.根据权利要求5所述的方法,其特征在于,所述根据每个实时点云数据的所述优先级值和/或每个实时点云数据的存储时长,确定所述目标实时点云数据,包括:
将优先级值大于预设优先级阈值且存储时长大于预设时长阈值的实时点云数据,确定为所述目标实时点云数据。
7.根据权利要求5所述的方法,其特征在于,所述计算多个所述层级队列中的每个实时点云数据的优先级值,包括:
获取每个实时点云数据对应的节点信息,所述节点信息包括节点半径、相机到节点中心的距离;
根据所述节点信息,计算得到每个实时点云数据的所述优先级值。
8.一种实时点云数据渲染装置,其特征在于,所述实时点云数据渲染装置包括处理器、存储器,所述存储器存储有可被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的实时点云数据渲染方法。
9.一种终端,其特征在于,所述终端包括如权利要求8所述的实时点云数据渲染装置。
10.一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至7中任一项所述的实时点云数据渲染方法的步骤。
CN202310392747.5A 2023-04-13 2023-04-13 实时点云数据渲染方法、装置、终端及存储介质 Active CN116109470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310392747.5A CN116109470B (zh) 2023-04-13 2023-04-13 实时点云数据渲染方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310392747.5A CN116109470B (zh) 2023-04-13 2023-04-13 实时点云数据渲染方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN116109470A true CN116109470A (zh) 2023-05-12
CN116109470B CN116109470B (zh) 2023-06-20

Family

ID=86254717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310392747.5A Active CN116109470B (zh) 2023-04-13 2023-04-13 实时点云数据渲染方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN116109470B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080238919A1 (en) * 2007-03-27 2008-10-02 Utah State University System and method for rendering of texel imagery
CN101615191A (zh) * 2009-07-28 2009-12-30 武汉大学 海量点云数据的存储与实时可视化方法
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置
CN107507262A (zh) * 2017-08-31 2017-12-22 城市生活(北京)资讯有限公司 一种大场景的三维渲染方法及系统
US20200226824A1 (en) * 2017-11-10 2020-07-16 Guangdong Kang Yun Technologies Limited Systems and methods for 3d scanning of objects by providing real-time visual feedback
CN112241998A (zh) * 2020-10-16 2021-01-19 信成网络科技(阳江)有限公司 基于点云的快速剖切方法、智能终端及云平台
CN113781631A (zh) * 2021-08-13 2021-12-10 深圳市中地软件工程有限公司 一种海量点云数据处理与可视化方法及系统
CN113870402A (zh) * 2021-09-13 2021-12-31 中铁第一勘察设计院集团有限公司 一种基于八叉树索引的海量点云分层实时渲染方法
CN114387375A (zh) * 2022-01-17 2022-04-22 重庆市勘测院((重庆市地图编制中心)) 一种海量点云数据多视图渲染方法
CN114693875A (zh) * 2022-03-31 2022-07-01 广州极飞科技股份有限公司 点云可视化优化方法、系统、电子设备及存储介质
CN115063497A (zh) * 2022-08-19 2022-09-16 北京山维科技股份有限公司 一种点云数据处理方法及装置
US20220351332A1 (en) * 2020-05-19 2022-11-03 South China University Of Technology Method for point cloud up-sampling based on deep learning
CN115393677A (zh) * 2021-05-05 2022-11-25 动态Ad有限责任公司 使用融合图像的端到端系统训练
CN115438081A (zh) * 2022-07-28 2022-12-06 中国电子科技集团公司第二十八研究所 一种海量船舶位置点云多级聚合与实时更新方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080238919A1 (en) * 2007-03-27 2008-10-02 Utah State University System and method for rendering of texel imagery
CN101615191A (zh) * 2009-07-28 2009-12-30 武汉大学 海量点云数据的存储与实时可视化方法
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置
CN107507262A (zh) * 2017-08-31 2017-12-22 城市生活(北京)资讯有限公司 一种大场景的三维渲染方法及系统
US20200226824A1 (en) * 2017-11-10 2020-07-16 Guangdong Kang Yun Technologies Limited Systems and methods for 3d scanning of objects by providing real-time visual feedback
US20220351332A1 (en) * 2020-05-19 2022-11-03 South China University Of Technology Method for point cloud up-sampling based on deep learning
CN112241998A (zh) * 2020-10-16 2021-01-19 信成网络科技(阳江)有限公司 基于点云的快速剖切方法、智能终端及云平台
CN115393677A (zh) * 2021-05-05 2022-11-25 动态Ad有限责任公司 使用融合图像的端到端系统训练
CN113781631A (zh) * 2021-08-13 2021-12-10 深圳市中地软件工程有限公司 一种海量点云数据处理与可视化方法及系统
CN113870402A (zh) * 2021-09-13 2021-12-31 中铁第一勘察设计院集团有限公司 一种基于八叉树索引的海量点云分层实时渲染方法
CN114387375A (zh) * 2022-01-17 2022-04-22 重庆市勘测院((重庆市地图编制中心)) 一种海量点云数据多视图渲染方法
CN114693875A (zh) * 2022-03-31 2022-07-01 广州极飞科技股份有限公司 点云可视化优化方法、系统、电子设备及存储介质
CN115438081A (zh) * 2022-07-28 2022-12-06 中国电子科技集团公司第二十八研究所 一种海量船舶位置点云多级聚合与实时更新方法
CN115063497A (zh) * 2022-08-19 2022-09-16 北京山维科技股份有限公司 一种点云数据处理方法及装置

Also Published As

Publication number Publication date
CN116109470B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN110874853A (zh) 目标运动的确定方法、装置、设备及存储介质
CN112597895B (zh) 基于偏移量检测的置信度确定方法、路侧设备及云控平台
CN113496138A (zh) 稠密点云数据的生成方法、装置、计算机设备及存储介质
CN116109470B (zh) 实时点云数据渲染方法、装置、终端及存储介质
CN114037087A (zh) 模型训练方法及装置、深度预测方法及装置、设备和介质
CN117557781A (zh) 目标对象识别的方法及装置、电子设备和存储介质
CN115409856B (zh) 一种肺部医学图像处理方法、装置、设备及存储介质
CN116596750A (zh) 一种点云处理方法、装置、电子设备及存储介质
CN114463409B (zh) 图像深度信息的确定方法、装置、电子设备和介质
CN113436247B (zh) 一种图像处理方法、装置、电子设备及存储介质
CN113274735B (zh) 模型处理方法、装置、电子设备及计算机可读存储介质
CN115272618A (zh) 三维网格优化方法、设备及存储介质
CN115086541B (zh) 一种拍摄位置确定方法、装置、设备及介质
CN114723796A (zh) 一种三维点云生成方法、装置及电子设备
CN113642510A (zh) 目标检测方法、装置、设备和计算机可读介质
CN113706543A (zh) 一种三维位姿的构建方法、设备及存储介质
CN112037280A (zh) 物体距离测量方法及装置
CN111179310B (zh) 视频数据处理方法、装置、电子设备及计算机可读介质
CN112699747B (zh) 用于确定车辆状态的方法、装置、路侧设备和云控平台
CN113570620B (zh) 一种光场数据获取方法、装置、电子设备及存储介质
CN115860077B (zh) 状态数据的处理方法、装置、设备以及存储介质
CN113312979B (zh) 图像处理方法、装置、电子设备、路侧设备及云控平台
CN117636404B (zh) 基于非穿戴式设备的跌倒检测方法及系统
CN112614151B (zh) 运动事件检测方法、电子设备及计算机可读存储介质
CN115908723B (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