CN112005275A - 使用视频内存池进行点云渲染的系统和方法 - Google Patents
使用视频内存池进行点云渲染的系统和方法 Download PDFInfo
- Publication number
- CN112005275A CN112005275A CN201880092653.3A CN201880092653A CN112005275A CN 112005275 A CN112005275 A CN 112005275A CN 201880092653 A CN201880092653 A CN 201880092653A CN 112005275 A CN112005275 A CN 112005275A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- segment
- task
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Navigation (AREA)
Abstract
本申请的实施例提供用于渲染点云的系统和方法。该系统包括被配置为存储点云数据的主内存、视频内存以及连接到所述主内存和视频内存的至少一个处理器。所述至少一个内存被配置为在视频内存中为点云数据分配内存池,并基于所述点云数据的第一段生成任务。所述至少一个内存进一步被配置用于执行所述任务以将所述点云数据的第一段编译到所述内存池的第一块。所述至少一个处理器还被配置用于渲染视频内存中所述点云数据已编译的第一段。
Description
技术领域
申请涉及用于点云渲染的系统和方法,更具体地,涉及用于使用视频内存池渲染点云的系统和方法。
背景技术
自动驾驶技术在很大程度上依赖于精确的地图。例如,导航地图的准确性对于自动驾驶车辆的功能是至关重要的,诸如定位、环境识别、决策和控制。高清地图可以通过聚合各种传感器和探测器在车辆行驶时获取的数据来获得。例如,高清地图的典型数据采集系统通常是配备有多个集成传感器的车辆,例如雷达、全球定位系统(GPS)接收器、惯性测量单元(IMU)传感器以及一个或以上相机,捕获车辆行驶的道路和周围物体的特征。捕获的数据可以包括例如车道的中心线或边界线坐标,物体的坐标和图像,所述物体为诸如建筑物、另一车辆、地标、行人或交通标志。
雷达以快速获得周围物体的三维(3-D)信息和来自周围物体的反射信号的强度信息而闻名。雷达可以获得称为“点云数据”的数据。雷达获取的点云数据的大小随着扫描频率从每秒几个激光脉冲增加到每秒超过15万个激光脉冲而增加。点云数据的可视化对于在各种应用中实施雷达非常重要,所述应用为例如构建高清地图和三维建筑以及城市建模。
然而,点云数据的可视化,尤其是数据量大的数据,受到计算设备的硬件能力的限制,例如处理器和内存速度。例如,现有的点云数据软件解决方案使用主内存来使用文件操作来加载点云数据文件,并且这样的操作花费大量时间来编译点云数据。此外,现有点云数据软件解决方案对点云数据的编译依赖于为每条新加载或更新的数据渲染线程,从而消耗了计算资源的主要部分,特别是在场景改变时。
本申请的实施例通过改进的用于点云渲染的系统和方法解决了上述问题。
发明内容
本申请的实施例还提供了用于渲染点云的系统。该系统包括被配置为存储点云数据的主内存、视频内存以及连接到所述主内存和视频内存的至少一个处理器。所述至少一个内存被配置为在视频内存中为点云数据分配内存池,并基于点云数据的第一段生成任务。至少一个内存进一步被配置用于执行将点云数据的第一段编译到内存池的第一块的任务。至少一个处理器还被配置用于在视频内存中渲染的点云数据的所述已编译的第一段。
本申请的实施例提供了一种用于渲染点云的方法。该方法包括通过至少一个处理器在视频存储器中为存储在主存储器中的点云数据分配内存池,并且通过所述至少一个处理器基于所述点云数据的第一段生成任务。该方法还包括通过所述至少一个处理器执行将所述点云数据的第一段编译到内存池的第一块的任务。该方法还包括通过所述至少一个处理器渲染所述视频内存中所述点云数据的所述已编译的第一段。
本申请的实施例还提供了一种非暂时性计算机可读介质,其上存储有指令,当通过一个或以上处理器执行所述指令时,使得一个或以上处理器执行操作。该操作包括在视频内存中为存储在主内存中的点云数据分配内存池,并基于所述点云数据的第一段生成任务。该操作还包括执行将所述点云数据的第一段编译到所述内存池的第一块的任务。该操作还包括渲染所述视频内存中所述点云数据的所述已编译的第一段。
应当理解,前面的一般性描述和下面的详细描述都只是示例性和说明性的,并不是对要求保护的本发明的限制。
附图说明
图1是根据本申请的实施例所示的具有传感器的示例性车辆的示意图。
图2是根据本申请的实施例所示的用于点云渲染的示例性计算设备的框图。
图3是根据本申请的实施例所示的具有多个块和相关联的点云数据段的示例性视频内存池。
图4是根据本申请的实施例所示的点云渲染的示例性过程。
图5是根据本申请的实施例所示的用于渲染点云的示例性方法的流程图。
图6是根据本申请的实施例所示的用于生成和执行用于编译点云数据段的任务的示例性方法的流程图。
具体实施方式
现在将详细参考示例性实施例,其示例在附图中示出。只要有可能,在整个附图中将使用相同的附图标记来表示相同或相似的部分。
图1是根据本申请的实施例所示的具有至少两个传感器140和150的示例性车辆100的示意图。与一些实施例一致,车辆100可以是测量车辆,其被配置用于获取用于构建高清地图或3-D建筑物和城市建模的数据。预期车辆100可以是电动车辆、燃料电池车辆、混合动力车辆或传统的内燃机车辆。车辆100可具有车身110和至少一个车轮120。车身110可以是任何车身类型,例如运动车辆、轿跑车、轿车、皮卡车、旅行车、运动型多功能车(SUV)、小型货车或转换车。在一些实施例中,车辆100可包括一对前轮和一对后轮,如图1所示。然而,预期车辆100可具有较少的车轮或等同结构,使车辆100能够四处移动。车辆100可以被配置为全轮驱动(AWD),前轮驱动(FWR)或后轮驱动(RWD)。在一些实施例中,车辆100可以被配置为由占用车辆的操作员操作、被远程控制和/或自动运行。
如图1所示,车辆100可以配备有通过安装结构130安装到车身110的传感器140。安装结构130可以是安装或以其他方式附接到车辆100的车身110的机电装置。在一些实施例中,安装结构130可以使用螺钉,粘合剂或其他安装机构。车辆100可以使用任何合适的安装机构另外在车身110内部或外部配备传感器150。可以设想,车辆100上可以配备每个传感器140或150的方式不受图1所示的示例的限制,并且可以根据传感器140和150和/或车辆100的类型进行修改以实现理想的传感性能。
与一些实施例一致,当车辆100沿轨迹移动时,传感器140和150可以被配置用于捕获数据。例如,传感器140可以是雷达扫描器,被配置用于扫描周围环境并获取点云。雷达通过用脉冲激光照射目标并用传感器测量反射脉冲来测量到目标的距离。然后可以使用激光返回时间和波长的差异来制作目标的数字3-D表示。用于雷达扫描的光可以是紫外线,可见光或近红外线。由于窄激光束可以以非常高的分辨率绘制物理特征,因此雷达扫描仪特别适用于高清地图测量。在一些实施例中,雷达扫描仪可以捕获点云。当车辆100沿轨道移动时,传感器140可以连续地捕获数据。在特定时间范围捕获的每组场景数据被称为数据帧。
如图1所示,车辆100可以另外配备有传感器150,传感器150可以包括导航单元中使用的传感器,例如GPS接收器和一个或以上IMU传感器。GPS是一种全球导航卫星系统,为GPS接收器提供地理定位和时间信息。IMU是一种电子设备,使用各种惯性传感器(如加速度计和陀螺仪,有时还有磁力计)测量并提供车辆的特定力,角速率,有时还包括车辆周围的磁场。通过组合GPS接收器和IMU传感器,传感器150可以在车辆100行进时提供车辆100的实时姿势信息,包括车辆100在每个时间戳处的位置和方向(例如,欧拉角)。在一些实施例中,姿势信息可以用于由传感器140捕获的点云数据的校准和/或预处理。
与本申请一致,车辆100可以包括车辆100的车身110内的本地计算设备160,或者与远程计算设备(例如服务器)(图1中未示出)通信以便使用视频内存池以高效和有效的方式渲染点云。在一些实施例中,本地计算设备160(或远程计算设备)可以为点云数据预先请求视频内存池,并重复使用所述视频内存池以减少为点云数据分配视频内存的时间。例如,在通电时,本地计算设备160(或远程计算设备)可以分配视频内存池并基于点云数据的每个段的大小将其划分为多个块(单元)。在一些实施例中,本地计算设备160(或远程计算设备)可以使用任务线程来优化点云数据的编译,从而减少渲染线程的工作量。通过引入这种基于池的视频内存管理,可以使用任务线程编译点云数据。例如,主线程可以将与点云数据段相关联的信息打包到任务中,并将任务添加到任务队列中,使得任务线程可以编译点云数据段而不受到来自渲染线程的任何干预,从而提高点云数据加载和渲染速度。
如这里所使用的,“线程”是可以独立管理的最小程序指令序列,即,进程内的最小执行单元。“任务线程”是可以执行任务的线程,例如,编译点云段。“主线程”是一个线程,它可以初始化点云渲染过程并生成由一个或以上任务线程执行的任务。“渲染线程”是可以渲染已编译的点云段的线程。与本申请一致,“渲染”是从2-D或3-D模型生成图像的自动过程(例如,由点云数据或其片段表示)。“编译”是将点云数据段加载到视频内存的自动过程。
例如,图2是根据本申请的实施例所示的用于渲染点云的示例性计算设备200的框图。与本申请一致,计算设备200可以使用各种类型的数据来渲染场景的点云。当车辆100沿着轨迹移动时,各种类型的数据可以由相对于场景配备在车辆100上的传感器140和150捕获。数据可以包括由传感器140(例如,雷达扫描仪)捕获的点云数据和由传感器150(例如,GPS接收器和/或一个或以上IMU传感器)获取的车辆100的姿势信息。在一些实施例中,可以通过基于实时姿势信息将来自本地坐标系中的雷达扫描器的原始数据变换为全局坐标系(例如,经度/纬度坐标)来获得点云数据(例如,来自GPS接收器和IMU传感器的位置和方向。
在一些实施例中,如图2所示,计算设备200可以包括通信接口202、主处理器204、主内存206、存储器208和图形处理单元(GPU)210。在一些实施例中,计算设备200可以在单个设备中具有不同的模块,诸如集成电路(IC)芯片(实现为专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者单独的具有专用功能的设备。在一些实施例中,计算设备200的一个或以上组件可以位于车辆100内(例如,图1中的本地计算设备160),或者可以替代地在移动设备中,在云中或另一个远程位置。计算设备200的组件可以在集成设备中,或者分布在不同的位置,但是通过网络(未示出)彼此通信。例如,主处理器204可以是车载处理器100、移动设备内的处理器或云处理器,或其任何组合。
通信接口202可以经由通信电缆、无线局部区域网络(WLAN)、广域网(WAN)、诸如无线电波的无线网络、全国性蜂窝网络和/或本地无线网络(例如,BluetoothTM或WiFi)或其他通信方法向诸如传感器140和150的组件发送数据和从其接收数据。在一些实施例中,通信接口202可以是综合业务数字网(ISDN)卡,电缆调制解调器,卫星调制解调器或调制解调器,以提供数据通信连接。又例如,通信接口202可以是局部区域网络(LAN)卡,以提供与兼容LAN的数据通信连接。无线链路也可以由通信接口202实现。在这样的实现中,通信接口202可以发送和接收电信号,电磁信号或光信号,其携带经由网络表示各种类型信息的数字数据流。与一些实施例一致,通信接口202可以接收由传感器140和150捕获的数据,包括点云数据和车辆姿势信息,并将接收的数据提供给存储器208用于存储或提供给主处理器204以进行处理。
主处理器204可以包括具有一个或以上核的任何适当类型的中央处理单元(CPU),通用处理器(例如,APU,加速处理单元;GPGPU,GPU上的通用计算)或任何其他合适的处理器。主处理器204可以被配置为专用于渲染点云的单独处理器模块。或者,主处理器204可以被配置为共享处理器模块,用于执行与点云渲染无关的其他功能。
主内存206和存储器208可以包括任何适当类型的大容量存储器,其被提供用于存储主处理器204可能需要操作的任何类型的信息。主内存206和存储器208可以是易失性或非易失性、磁性、半导体、磁带,光学、可移动、不可移动或其他类型的存储设备或有形(即,非暂时性)计算机可读介质,包括但不限于ROM、闪存内存、动态RAM和静态RAM。主内存206和/或存储器208可以被配置用于存储一个或以上计算机程序,其可以由主处理器204执行本申请公开的点云渲染功能。例如,主内存206和/或存储器208可以被配置为可以由主处理器204执行的存储程序。
主内存206和/或存储器208可以进一步被配置为存储信息和主处理器204使用的数据。例如,主内存206和/或存储器208可以被配置为存储要渲染的点云数据。各种类型的数据可以永久存储,周期性地移除,或者在处理每个数据帧之后立即被忽略。
GPU 210可以包括图形处理器217和连接到图形处理器217的视频内存218。尽管图2中的图形处理器217和主处理器204被示为分立处理器,但是可以预期图形处理器217和主处理器204可以集成为单个处理器,例如移动设备中使用的应用处理器(AP)或具有集成图形的CPU。视频内存218(也称为“帧缓冲器”)是专用内存或共享或统一内存的一部分,其临时存储与图形有关的数据,例如图像数据的位图。尽管主内存206和视频内存218在图2中被示为分立存储器,但是可以预期主内存206和视频内存218可以是由主处理器204和图形处理器217共享的统一内存的一部分。
如图2所示,可以从主内存206加载多个线程并由主处理器204执行,例如主线程212、任务线程214、渲染线程216等。可以设想,主处理器204可以并行或顺序执行的每种类型的线程212-216的数量不限于一个,并且可以是任何合适的数量。
主线程212可以被配置用于初始化和管理点云渲染过程。主线程212可以预处理要渲染的点云数据并设置用于点云渲染的环境。在一些实施例中,主线程212可以将点云数据划分为多个点云数据段。在一个示例中,可以根据八叉树数据结构来划分点云数据。八叉树是一种树数据结构,其中每个内部节点恰好有八个子节点。八叉树可用于通过递归地将其细分为八个八分圆来划分三维空间。每个节点(八分圆)表示相同大小的点云数据段。计算设备200可以基于八叉树数据结构处理点云数据。为了设置工作环境,主线程212可以在视频内存218中为点云数据预分配内存池。内存池的大小可以基于各种因素来确定,例如计算设备200的硬件配置和规格(例如,主处理器204的速度、主内存206的大小、视频内存218的大小等)。在一些实施例中,主线程212可以进一步基于每个点云数据段的大小将内存池划分为多个块。
例如,图3是根据本申请的实施例所示的具有多个块302和相关联的点云数据段306的示例性视频内存池300。可以在视频内存218中为点云渲染预先分配内存池300。内存池300包括相同大小的多个块302,并且通过使用内存池进行内存管理实现动态内存分配。内存池300的块302可以在运行时由在主处理器204上运行的线程分配,访问和释放。例如,如图3所示,点云数据304可以被划分为多个点云数据段306,并且每个点云数据段306可以通过由主线程212实时地与对应的内存池块302动态地分配(关联)。每个点云数据段306可以被编译到并访问相关联的内存池块302。一旦渲染了每个点云数据段306,相关联的内存池块302就可以被动态地释放,从而可以被恢复。
返回参考图2,主线程212可以被配置用于基于点云数据段生成任务。任务是可由主处理器204的任务线程214执行的一组指令。例如,如图4所示,为了生成新任务403,主线程212可以基于来自调度器402的调度策略来识别新的点云数据段306。调度策略可以针对一个或以上目标,诸如最大化吞吐量、最小化等待时间、最小化等待时间或响应时间、最大化适应性、妥协或偏好。然后,主线程212可以将与新点云数据段306相关联的索引(和/或与新点云数据段306相关联的任何其他合适信息)打包到新任务403中。主线程212还可以将新任务403添加到任务队列404中。任务队列404中的任务403可以按顺序保持,即,添加到后终端位置(入队)并从前终端位置(出队)移除。在一些实施例中,当任务队列404为空时,主线程212可预测要渲染的下一个点云数据段306并将其预加载到内存缓冲器408中(例如,在主内存206中)。主线程212可以基于从历史数据和/或实时信息(例如,已经渲染的先前一个或以上点云数据段)获知的模型进行预测。
返回参考图2,任务线程214可以被配置用于执行任务以将点云数据段编译到与点云数据相关联(分配)的内存池块。如图3所示,当任务队列404不为空(即,具有至少一个任务403)时,任务线程214可以从任务队列404检索任务403(例如,使前一终端位置中的第一个出列)。然后,任务线程214可以基于与已经打包在任务403中的点云数据段306相关联的索引,从内存缓冲器408(例如,在主内存206中)检索对应的点云数据段306。任务线程214还可以将点云数据段306与内存池块302相关联。例如,任务线程214可以动态地请求来自内存池的空内存池块与点云数据段306相关联,并将点云数据段306编译到相关联的空内存池块中。
与本申请的公开内容一致,点云数据段的编译不一定发生在内存缓冲器408中。在一些实施例中,对于未预先加载到内存缓冲器408中的点云数据段306,它们仍然可以由任务线程214与在内存缓冲器408中编译点云数据段306的任务并行编译以增加编译的带宽和速度。在一些实施例中,任务线程214可以并行于执行任务403将另一个点云数据段编译到其关联的内存池块中。也就是说,可以并行编译多个点云数据段(不管它是否已经在内存缓冲器408中预先加载)。
返回参考图2,渲染线程216可以被配置用于渲染视频内存218中已编译的点云数据段。渲染线程216可以从点云数据表示的3-D模型生成点云的图像。主处理器204的渲染线程216可以与GPU 210中的图形处理器217一起工作,以在视频内存218中渲染已编译的点云数据段410,如图4所示。例如,任务线程214可以在编译列表中添加已编译的点云数据段410,并且渲染线程216可以开始在渲染列表中渲染已编译的点云数据段410。与本申请的公开内容一致,渲染线程216可以继续在渲染列表中渲染任何可用的已编译的点云数据段410,而无需等待任务队列404中的任务403的完成。在一些实施例中,对于已经预先加载到内存缓冲器408中的任何点云数据段306,渲染线程216可以基于其在八叉树数据结构中的父节点来渲染它。对于已经渲染的渲染列表中的任何已编译的点云数据段410,渲染线程216可以动态地释放其关联的内存池块(例如,根据调度策略),以便可以重复使用内存池块。
返回参考图2,渲染的点云可以显示在显示器220上,显示器220位于车辆100内或远离车辆100(例如,经由通信接口202与计算设备200连接)。显示器220可以包括诸如液晶显示器(LCD)、发光二极管(LED)显示器、等离子显示器或任何其他类型的显示器。通过实现本申请公开的点云渲染系统和方法,可以显着增加点云数据加载和渲染速度。结果,显示器220的点云显示可以变得更平滑,例如在场景改变期间。
图5是根据本申请的实施例所示的用于渲染点云的示例性方法500的流程图。例如,方法500可以由车辆100的点云渲染系统实现,其包括计算设备200等。然而,方法500不限于该示例性实施例。方法500可以包括如下所述的步骤S502-S516。应当理解,一些步骤可以是可选的,以执行本申请提供的公开内容。此外,一些步骤可以同时执行,或者以与图5中所示不同的顺序执行。
在步骤S502,点云数据可以被分成段。例如,在渲染点云数据304之前,主处理器204可以将其划分为多个点云数据段306。在一个示例中,每个点云数据段306具有相同的数据大小。可以基于点云数据304的总大小和计算设备200的硬件配置和规格来确定点云数据段306的数据大小和/或数量。在一些实施例中,可以根据八叉树数据结构将点云数据划分成段,并且每个划分的点云数据段可以对应于具有相同数据大小的八叉树的一个节点。
在步骤S504,可以在视频内存中为点云数据分配内存池。例如,主处理器204可以在视频内存218中为点云数据304预分配内存池300。在一些实施例中,可以基于计算设备200的硬件配置和规格来确定内存池300的大小。然后可以保留内存池300并专用于在当前点云渲染过程期间编译和渲染点云数据304。在步骤S506中,可以将内存池划分为块。例如,主处理器204可以初始化内存池300,包括基于每个点云数据段306的大小将内存池300划分为多个内存池块302。在一些实施例中,每个内存池块302可以具有基于每个点云数据段306的大小确定的相同大小。可以在点云渲染的过程期间动态地处理每个内存池块302的分配、访问和释放。
在步骤S508,可以基于第一点云数据段生成任务。例如,主处理器204可以基于预先加载在主内存206的内存缓冲器408中的相应点云数据段306来生成新任务403。例如,图6是根据本申请的实施例所示的用于生成和执行用于编译点云数据段的任务的示例性方法600的流程图。在一些实施例中,步骤S508可以包括步骤S602-S606。在步骤S602,可以基于调度策略来识别第一点云数据段。例如,主线程212可以基于要根据来自调度器402的调度策略渲染的下一个点云数据段,从剩余的点云数据段306识别新的点云数据段306。调度策略可以被设计为在识别新点云数据段306中实现至少一个目标,例如最大化吞吐量、最小化等待时间、最小化等待时间或响应时间、最大化适应性等。在步骤S604,可以将与第一点云数据段相关联的索引打包到任务中。例如,主线程212可以将新点云数据段306的索引打包到新任务403中。预期与新点云数据段306相关联的任何其他合适信息也可以被打包到下一个任务403中。在步骤S606,可以将任务添加到任务队列中。例如,主线程212可以将新任务403添加到任务队列404中。在一些实施例中,当任务队列404为空时,主线程212可预测要渲染的下一个点云数据段306并将其预加载到内存缓冲器408中。
返回参考图5,在步骤S510,可以执行任务以将第一点云数据段编译到第一内存池块。例如,主处理器204可以执行任务以将第一点云数据段编译到与第一点云数据段相关联的第一内存池块中。在一些实施例中,步骤S510可以实现为图6中的步骤S608-S612。在步骤S608,可以从任务队列中检索任务。例如,任务线程214可以从任务队列404检索新任务403,例如,通过将第一个任务从任务队列404的前端位置出列。在步骤S610,可以基于任务中的索引来检索第一点云数据段。例如,任务线程214可以基于与已经打包在新任务403中的点云数据段306相关联的索引,从内存缓冲器408中检索对应的点云数据段306。在步骤S612,第一内存池块可以与第一点云数据段相关联。例如,任务线程214可以将对应的内存池块分配给对应的点云数据段306以进行编译。
返回参考图5,在步骤S512,可以与基于第一点云数据段执行任务并行地将第二点云数据段编译到第二内存池块。例如,任务线程214可以并行于步骤S510编译未预先加载到内存缓冲器408中的另一个点云数据段306。
在步骤S514,可以渲染视频内存中已编译的点云数据段(例如,第一和第二点云数据段)。例如,渲染线程216可以渲染视频内存218中的相应内存池块中已编译的点云数据段410。渲染线程216可以继续渲染渲染列表中的任何可用的已编译点云数据段410,而无需等待任务队列404中的任务403的完成。对于已经渲染的渲染列表中的任何已编译的点云数据段410,渲染线程216可以根据调度策略动态地释放其相关联的内存池块,以便可以重用内存池块。可以重复步骤S508-S514,直到已经渲染了从点云数据划分的所有点云数据段。在步骤S516,一旦渲染了所有点云数据段,就可以显示渲染的点云数据。例如,显示器220可以通过显示渲染的点云数据来可视化点云。
本申请的另一方面涉及一种存储指令的非暂时性计算机可读介质,所述指令在被执行时使得一个或以上处理器执行如上所述的方法。所述计算机可读介质包括易失性或非易失性、磁性、半导体、磁带、光学、可移动、不可移动或其他类型的计算机可读介质或计算机可读存储设备。例如,如本申请的计算机可读介质可以是存储设备或其上存储有计算机指令的存储模块。在一些实施例中,计算机可读介质可以是其上存储有计算机指令的盘或闪存驱动器。
显而易见,本领域普通技术人员可以对本申请的系统和相关方法进行各种修改和变化。考虑到本申请的系统和相关方法的说明书和实践,其他实施例对于本领域普通技术人员是显而易见的。
本申请中的说明书和示例的目的仅被认为是示例性的,真正的范围由以下权利要求及其等同物限定。
Claims (20)
1.一种用于渲染点云的系统,包括:
主内存,被配置为存储点云数据;
视频内存;
连接到所述主内存和所述视频内存的至少一个处理器,所述至少一个处理器被配置为:
在所述视频内存中为所述点云数据分配内存池;
基于所述点云数据的第一段生成任务;及
执行所述任务,将所述点云数据的所述第一段编译到所述内存池的第一块;及
渲染所述视频内存中所述点云数据的所述已编译的第一段。
2.根据权利要求1所述的系统,其特征在于,所述至少一个处理器还被配置为并行于执行所述任务,将所述点云数据的第二段编译到所述内存池的第二块。
3.根据权利要求1所述的系统,其特征在于,所述至少一个处理器还被配置为:
将所述点云数据划分为至少两个段,每个段具有相同的大小;及
基于所述点云数据的每个段的所述大小,将所述内存池划分为至少两个块。
4.根据权利要求1所述的系统,其特征在于,为了生成所述任务,所述至少一个处理器还被配置为:
基于调度策略识别所述点云数据的所述第一段;
将与所述点云数据的所述第一段相关联的索引打包到所述任务中;及
将所述任务添加到任务队列中。
5.根据权利要求4所述的系统,其特征在于,为了执行所述任务,所述至少一个处理器还被配置为:
从所述任务队列中检索所述任务;
基于所述索引从所述主内存中检索所述点云数据的所述第一段;及
将所述内存池的所述第一块与所述点云数据的所述第一段相关联。
6.根据权利要求1所述的系统,其特征在于,所述点云数据的所述第一段已被预加载到所述主内存的缓冲器中。
7.根据权利要求2所述的系统,其特征在于,所述点云数据的所述第二段未被预先加载到所述主内存的缓冲器中。
8.根据权利要求1所述的系统,其特征在于,所述主处理器还被配置为在渲染所述点云数据的所述已编译的第一段之后释放所述内存池的所述第一块。
9.一种用于渲染点云的方法,包括:
通过至少一个处理器,在视频内存中为存储在主内存中的点云数据分配内存池;
通过所述至少一个处理器,基于所述点云数据的第一段生成任务;
通过所述至少一个处理器,执行所述任务,将所述点云数据的所述第一段编译到所述内存池的第一块;及
通过所述至少一个处理器,渲染在所述视频内存中所述点云数据的所述已编译的第一段。
10.根据权利要求9所述的方法,还包括通过所述至少一个处理器并行于执行所述任务,将所述点云数据的第二段编译到所述内存池的第二块中。
11.根据权利要求9所述的方法,还包括:
通过所述至少一个处理器,将所述点云数据划分为至少两个段,每个段具有相同的大小;及
通过所述至少一个处理器,基于所述点云数据的每个段的所述大小,将所述内存池划分为至少两个块。
12.根据权利要求9所述的方法,其特征在于,生成所述任务包括:
基于调度策略识别所述点云数据的所述第一段;
将与所述点云数据的所述第一段相关联的索引打包到所述任务中;及
将所述任务添加到任务队列中。
13.根据权利要求12所述的方法,其特征在于,执行所述任务包括:
从所述任务队列中检索所述任务;
基于所述索引从所述主内存检索所述点云数据的所述第一段;及
将所述内存池的所述第一块与所述点云数据的所述第一段相关联。
14.根据权利要求9所述的方法,其特征在于,所述点云数据的所述第一段已被预加载到所述主内存的缓冲器中。
15.根据权利要求10所述的方法,其特征在于,所述点云数据的所述第二段未被预加载到所述主内存的缓冲器中。
16.根据权利要求9所述的方法,还包括通过所述至少一个处理器,在渲染所述点云数据的所述已编译的第一段之后释放所述内存池的所述第一块。
17.一种非暂时性计算机可读介质,其上存储有指令,当通过一个或以上处理器执行所述指令时,使得所述一个或以上处理器执行包括以下的操作:
在视频内存中为存储在主内存中的点云数据分配内存池;
基于所述点云数据的第一段生成任务;
执行所述任务,将所述点云数据的所述第一段编译到所述内存池的第一块;及
渲染所述视频内存中所述点云数据的所述已编译的第一段。
18.根据权利要求17所述的计算机可读介质,其特征在于,所述操作还包括并行于执行所述任务,将所述点云数据的第二段编译到所述内存池的第二块。
19.根据权利要求17所述的计算机可读介质,其特征在于,所述操作还包括:
将所述点云数据划分为至少两个段,每个段具有相同的大小;及
基于所述点云数据的每个段的所述大小将所述内存池划分为至少两个块。
20.根据权利要求17所述的计算机可读介质,其特征在于,所述操作还包括在渲染所述点云数据的所述已编译的第一段之后释放所述内存池的第一块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/117371 WO2020107137A1 (en) | 2018-11-26 | 2018-11-26 | Systems and methods for point cloud rendering using video memory pool |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112005275A true CN112005275A (zh) | 2020-11-27 |
CN112005275B CN112005275B (zh) | 2023-04-21 |
Family
ID=70854712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880092653.3A Active CN112005275B (zh) | 2018-11-26 | 2018-11-26 | 使用视频内存池进行点云渲染的系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112005275B (zh) |
WO (1) | WO2020107137A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117876556A (zh) * | 2024-03-13 | 2024-04-12 | 江西求是高等研究院 | 增量式点云渲染方法、系统、可读存储介质及计算机 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022102267A (ja) * | 2020-12-25 | 2022-07-07 | ソニーグループ株式会社 | 画像処理装置および方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090060345A1 (en) * | 2007-08-30 | 2009-03-05 | Leica Geosystems Ag | Rapid, spatial-data viewing and manipulating including data partition and indexing |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN104391906A (zh) * | 2014-11-18 | 2015-03-04 | 武汉海达数云技术有限公司 | 车载海量点云数据动态浏览方法 |
CN104750854A (zh) * | 2015-04-16 | 2015-07-01 | 武汉海达数云技术有限公司 | 一种海量三维激光点云压缩存储及快速加载显示方法 |
CN105765623A (zh) * | 2013-08-08 | 2016-07-13 | 大卫·莫洛尼 | 计算成像管线 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600570A (zh) * | 2016-12-07 | 2017-04-26 | 西南科技大学 | 一种基于云计算的海量点云滤波方法 |
-
2018
- 2018-11-26 WO PCT/CN2018/117371 patent/WO2020107137A1/en active Application Filing
- 2018-11-26 CN CN201880092653.3A patent/CN112005275B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090060345A1 (en) * | 2007-08-30 | 2009-03-05 | Leica Geosystems Ag | Rapid, spatial-data viewing and manipulating including data partition and indexing |
CN105765623A (zh) * | 2013-08-08 | 2016-07-13 | 大卫·莫洛尼 | 计算成像管线 |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN104391906A (zh) * | 2014-11-18 | 2015-03-04 | 武汉海达数云技术有限公司 | 车载海量点云数据动态浏览方法 |
CN104750854A (zh) * | 2015-04-16 | 2015-07-01 | 武汉海达数云技术有限公司 | 一种海量三维激光点云压缩存储及快速加载显示方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117876556A (zh) * | 2024-03-13 | 2024-04-12 | 江西求是高等研究院 | 增量式点云渲染方法、系统、可读存储介质及计算机 |
CN117876556B (zh) * | 2024-03-13 | 2024-05-10 | 江西求是高等研究院 | 增量式点云渲染方法、系统、可读存储介质及计算机 |
Also Published As
Publication number | Publication date |
---|---|
WO2020107137A1 (en) | 2020-06-04 |
CN112005275B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3506212B1 (en) | Method and apparatus for generating raster map | |
US11105638B2 (en) | Method, apparatus, and computer readable storage medium for updating electronic map | |
US20200011675A1 (en) | Method, device and apparatus for acquiring map, and computer readable storage medium | |
KR20210082204A (ko) | 지도 생성 방법, 운전 제어 방법, 장치, 전자 기기 및 시스템 | |
CN111436216A (zh) | 用于彩色点云生成的方法和系统 | |
US10572405B1 (en) | Writing messages in a shared memory architecture for a vehicle | |
CN111936821A (zh) | 用于定位的系统和方法 | |
US10782411B2 (en) | Vehicle pose system | |
CN110824443B (zh) | 雷达仿真方法、装置、存储介质及电子设备 | |
US11971481B2 (en) | Point cloud registration for lidar labeling | |
CN111721281B (zh) | 位置识别方法、装置和电子设备 | |
CN111353453B (zh) | 用于车辆的障碍物检测方法和装置 | |
CN109978954A (zh) | 基于箱体的雷达和相机联合标定的方法和装置 | |
CN112005275B (zh) | 使用视频内存池进行点云渲染的系统和方法 | |
CN113240813A (zh) | 三维点云信息确定方法及装置 | |
CN115147328A (zh) | 三维目标检测方法及装置 | |
CN114092660A (zh) | 高精地图生成方法、装置及用于生成地图的车辆 | |
CN109891188A (zh) | 移动平台、摄像路径生成方法、程序、以及记录介质 | |
CN113433566B (zh) | 地图建构系统以及地图建构方法 | |
CN109376653B (zh) | 用于定位车辆的方法、装置、设备和介质 | |
CN114419180A (zh) | 重构高精地图的方法、装置和电子设备 | |
CN114440899A (zh) | 对静态地图数据使用合并约束的自主车辆导航 | |
CN112074871B (zh) | 高清地图管理系统和方法 | |
CN112859109A (zh) | 无人机全景图像处理方法、装置及电子设备 | |
JP2021004936A (ja) | 地図更新データ生成装置及び地図更新データ生成方法 |
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 |