CN115239784A - 点云生成方法、装置、计算机设备和存储介质 - Google Patents
点云生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115239784A CN115239784A CN202210911130.5A CN202210911130A CN115239784A CN 115239784 A CN115239784 A CN 115239784A CN 202210911130 A CN202210911130 A CN 202210911130A CN 115239784 A CN115239784 A CN 115239784A
- Authority
- CN
- China
- Prior art keywords
- target
- point
- data
- depth
- point cloud
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种点云生成方法、装置、计算机设备和存储介质。所述方法包括:将目标场景的原始点云按照目标球面投影参数投影为第一深度图;基于目标模型相对于目标场景的放置空间信息,按照目标球面投影参数,将目标模型投影为第二深度图;第二深度图包括投影得到的与目标模型对应的目标深度区域;确定第一深度图中投影得到的第一目标像素点,使得第二深度图中与第一目标像素点位置相同的第二目标像素点属于目标深度区域;对第一目标像素点按相应的第二目标像素点的深度值做深度值更新;基于对经过深度值更新的第一目标像素点进行投影逆处理得到的差异点云,更新原始点云,获得新点云。采用本方法能够以较高的效率进行点云仿真。
Description
技术领域
本申请涉及点云仿真技术领域,特别是涉及一种点云生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,目前可以通过测量仪器从环境测得点云,该点云反映了环境中的空间信息,基于计算机技术可以利用点云进行处理和分析,在自动驾驶、地理测绘、建筑等各种领域都有广泛应用。由于通过测量获得点云的方式,需要人工到现场进行操作,限制较大,因此出现了点云仿真的技术。点云仿真可通过在原始点云中插入新模型的方式获得。
由于点云反映的是测量仪器对三维环境各方向首次采集到的物体表面信息,插入的新模型可能会遮挡原始点云,需要将原始点云中被遮挡的点替换为新模型的点,该替换过程可以通过获取原始点云和新模型的深度图实现。深度图中的每一个像素点反映了距离信息,现有技术中获取深度图是利用照相机模型来实现的。
然而,通过照相机模型获取点云深度图的过程只能处理一定视野区域对应的点云,为了获取完整点云深度图,需要设置多个照相机模型,并将多个照相机模型获取到的点云深度图拼接成完整点云深度图,获取深度图的效率较低,导致点云仿真效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决点云仿真效率低的点云生成方法、装置、计算机设备和计算机可读存储介质。
第一方面,本申请提供了一种点云生成方法。所述方法包括:
将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;
对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
在一个实施例中,所述将目标场景的原始点云按照目标球面投影参数投影为第一深度图包括:
获取目标场景的原始点云中各数据点的球坐标数据,所述球坐标数据包括角度数据和径向距离;
按照目标球面投影参数,将所述各数据点的角度数据映射为第一图像坐标数据;
确定各所述第一图像坐标数据相应的径向距离,基于各所述第一图像坐标数据和相应的表征深度值的所述径向距离生成第一深度图。
在一个实施例中,所述获取目标场景的原始点云中各数据点的球坐标数据包括:
获取目标场景的原始点云中各数据点的笛卡尔坐标数据;
按照笛卡尔坐标系与球坐标系的映射关系,将所述笛卡尔坐标数据进行坐标系转换,获得所述原始点云中各数据点的球坐标数据。
在一个实施例中,所述目标球面投影参数包括深度图边长数据和角度范围数据;所述按照目标球面投影参数,将所述角度数据映射为第一图像坐标数据,包括:
针对所述原始点云中每个数据点的角度数据,依照相应角度数据占所述角度范围数据所表征角度范围的角度比例以及所述深度图边长数据,进行线性映射,获得所述每个数据点对应的第一图像坐标数据。
在一个实施例中,所述基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图,包括:
基于目标模型相对于所述目标场景的放置空间信息,确定所述目标模型的点的点球坐标角度数据;
按照所述目标球面投影参数,将所述点球坐标角度数据映射为第二图像坐标数据;
获取每个第二图像坐标数据所对应的深度值,依照所述第二图像坐标数据及对应的深度值生成第二深度图。
在一个实施例中,所述获取每个第二图像坐标数据所对应的深度值,依照所述第二图像坐标数据及对应的深度值生成第二深度图,包括:
确定对经过投影的目标模型进行着色处理时使用的深度缓冲区;
从所述深度缓冲区读取与每个第二图像坐标数据所对应的深度值;
基于每个第二图像坐标数据及对应的深度值生成第二深度图。
在一个实施例中,所述对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新,包括:
将第一目标像素点的深度值和相应的第二目标像素点的深度值进行比较;
在所述第一目标像素点的深度值比相应的第二目标像素点的深度值大的情况下,将所述第一目标像素点的深度值更新为相应的第二目标像素点的深度值。
第二方面,本申请还提供了一种点云生成装置。所述装置包括:
点云球面投影模块,用于将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
目标模型球面投影模块,用于基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
深度值更新模块,用于确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
点云更新模块,用于基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;
对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;
对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;
对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
上述点云生成方法、装置、计算机设备和存储介质,将目标场景的原始点云和目标模型的点分别进行球面投影,投影过程使用已获得的原始点云球面投影参数,无需额外获得传感器的参数,同时球面投影构成的投影面具有更广的视野范围;而且根据目标模型的目标深度区域的第二目标像素点对相应的第一目标像素点进行深度值更新,并对经过深度值更新的第一目标像素点进行投影逆处理得到差异点云,基于差异点云更新原始点云生成新点云,生成的新点云相对于原始点云只做了必要的深度值更新,保留了未进行深度值更新的原始点云;最终获得的新点云视野范围更广,而且过程中需要额外获得的参数少,更新的数据量相对小,相比使用照相机模型的方法,获取深度图的效率更高,相应地点云仿真的效率也更高。
附图说明
图1为一个实施例中点云生成方法的应用环境图;
图2为一个实施例中点云生成方法的流程示意图;
图3为一个实施例中将目标场景的原始点云按照目标球面投影参数投影为第一深度图步骤的流程示意图;
图4为一个实施例中基于目标模型相对于目标场景的放置空间信息,按照目标球面投影参数,将目标模型投影为第二深度图步骤的流程示意图;
图5为一个实施例中获取每个第二图像坐标数据所对应的深度值,依照第二图像坐标数据及对应的深度值生成第二深度图步骤的流程示意图;
图6为自动驾驶场景中原始点云分布图;
图7为原始点云各数据点经过球面投影得到的第一深度图;
图8为汽车模型的点经过球面投影得到第二深度图;
图9为自动驾驶场景中加入汽车模型得到新点云的图;
图10为一个实施例中点云生成装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的点云生成方法,可以应用于如图1所示的应用环境中。其中,点云生成方法主要在计算机设备102上执行,具体计算机设备102可获取目标场景的原始点云和目标模型,基于该原始点云和目标模型进行一系列处理,获得新点云。原始点云和目标模型可存储在数据存储系统104中,该数据存储系统104可以设置在计算机设备102上,也可以设置在计算机设备102可访问的其它位置,其它位置比如服务器或者其它与计算机设备102连接的设备。原始点云可从目标场景106处由点云传感器108采集,目标场景可以是自动驾驶场景、地理测绘场景或建筑施工场景等各种可利用点云技术的场景。目标模型可以是物体模型或地图模型,物体模型可以是任意实体或虚拟的物体构成的三维模型,地图模型可以是任意的虚拟或实测地图构成的三维模型。计算机设备102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑或智能车载设备等。
在一个实施例中,如图2所示,提供了一种点云生成方法,以该方法应用于图1中的计算机设备102为例进行说明,包括以下步骤:
步骤202,将目标场景的原始点云按照目标球面投影参数投影为第一深度图。
其中,目标场景是可采集点云的现实场景,具体可以是自动驾驶场景、地理测绘场景或建筑施工场景等。原始点云是在目标场景处通过点云传感器采集的点云,包括多个数据点,每个数据点可标识目标场景中的特定位置。
本实施例中投影是指将三维的点云投影到平面。目标球面投影参数,是指将点云在球坐标系下投影到平面所需的参数,具体可以包括表示数据投影前后映射关系的投影参数以及表示深度图尺寸的尺度参数。
深度图可以是图像格式,也可以是非图像格式。其中,图像格式的深度图,记载了三维数据投影到二维平面后的位置及深度值,其中深度图中像素点的像素值表征该像素点的深度值。非图像格式的深度图可以是矩阵,记载了三维数据投影到二维平面后的数据,以及投影前后三维数据与二维平面的数据的对应关系;其中,二维平面表征深度图,二维平面可视为矩阵,矩阵中的一个数表征深度图的像素点。第一深度图是将原始点云投影获得的深度图,与下述的第二深度图相区分。
具体地,在一个实施例中,计算机设备可读取从目标场景采集的原始点云,并获取目标球面投影参数,在球坐标系下,对原始点云中的每个数据点按照目标球面投影参数投影到平面,计算机设备确定每个数据点投影到平面后的位置及深度值,从而基于位置和深度值生成第一深度图。
在一个实施例中,目标球面投影参数可以包括表示数据投影前后映射关系的投影参数以及表示深度图尺寸的尺度参数。计算机设备对原始点云中的每个数据点按照目标球面投影参数投影到平面,具体包括:计算机设备对原始点云中的每个数据点按照目标球面投影参数投影到第一深度图,使得投影前的数据点和投影后的像素点位置符合目标球面投影参数中投影参数所表示的映射关系,第一深度图的尺寸符合目标球面投影参数中尺度参数所表示的深度图尺寸。
步骤204,基于目标模型相对于目标场景的放置空间信息,按照目标球面投影参数,将目标模型投影为第二深度图;第二深度图包括投影得到的与目标模型对应的目标深度区域。
其中,目标模型是三维模型,可以是通过采集现实世界中物体的点云而生成的仿真模型,也可以是用三维仿真技术直接生成的仿真模型,还可以是虚拟形象的三维模型。目标模型可以是物体模型,还可以是地图模型。物体模型所仿真的物体可以是活体也可以是非活体,可以是自然存在的物体也可以是人造物体。目标模型包括若干平面单元,平面单元间通过边和顶点拼接,顶点由多个平面单元共有。平面单元可以是三角形或者四边形。
放置空间信息,表示假设将目标模型放置在目标场景的情况下目标模型在目标场景中的空间信息,放置空间信息具体可以包括但不限于目标模型相对于目标场景的空间位置和朝向。
第二深度图中的目标深度区域,是记载了目标模型的点经过投影后的点所对应深度值的区域。具体地,目标模型的点投影为第二深度图时,目标模型任意参与投影的点都会投影到第二深度图中对应的一个像素点,该像素点的深度值大于零,第二深度图中其它未从目标模型的点投影的像素点则为零值,此种情况下,第二深度图中深度值非零的像素点构成的区域就是目标深度区域。其中,目标模型的点可以是目标模型的顶点,也可以是在目标模型平面单元中按采样间隔均匀采样获得的点。
具体地,在一个实施例中,计算机设备可获取针对目标模型设置的放置空间信息,从而基于该放置空间信息,按照投影得到第一深度图时相同的目标球面投影参数,将目标模型的点投影到平面,得到第二深度图。第二深度图与第一深度图具有相同尺寸。
进一步地,在一个实施例中,目标球面投影参数可以包括表示数据投影前后映射关系的投影参数以及表示深度图尺寸的尺度参数。计算机设备具体可对目标模型每个参与投影的点按照目标球面投影参数投影到平面,使得投影前的点和投影后的像素点位置符合目标球面投影参数中投影参数所表示的映射关系,第二深度图的尺寸符合目标球面投影参数中尺度参数所表示的深度图尺寸。
步骤206,确定第一深度图中投影得到的第一目标像素点,使得第二深度图中与第一目标像素点位置相同的第二目标像素点属于目标深度区域。
其中,第一深度图和第二深度图尺寸相同,第一深度图中的每个像素点在第二深度图中都有对应的像素点。第一目标像素点和第二目标像素点都是投影得到的像素点;第一深度图中的每个第一目标像素点,在第二深度图中的相同位置处存在一一对应的第二目标像素点;每个第一目标像素点对应的第二目标像素点落在目标深度区域中。
具体地,计算机设备可遍历原始点云中的每个数据点,判断遍历的数据点投影到第一深度图中的像素点对应到第二深度图中相同位置的像素点是否存在于目标深度区域中;如果存在,则遍历的数据点投影得到的像素点为第一目标像素点;如果不存在,则遍历的数据点投影得到的像素点不是第一目标像素点。
在一个实施例中,计算机设备可遍历第一深度图中的像素点,判断遍历的像素点是否是投影得到的像素点,如果是投影得到的像素点,则进一步判断遍历的像素点对应到第二深度图中相同位置的像素点是否在目标深度区域中;如果存在,则遍历的像素点为第一目标像素点;如果不存在,或者遍历的像素点不是投影得到的像素点,则遍历的像素点不是第一目标像素点。
在一个实施例中,计算机设备可遍历第二深度图中的像素点,判断遍历的像素点是否在目标深度区域中;如果在目标深度区域中,则判断遍历的像素点对应到第一深度图中相同位置的像素点是否是投影得到的像素点;如果是投影得到,则遍历的像素点是第二目标像素点,遍历的像素点在第一深度图中对应的像素点是第一目标像素点;如果不是投影得到,或者遍历的像素点不在目标深度区域中,则遍历的像素点不是第二目标像素点,遍历的像素点在第一深度图中对应的像素点也不是第一目标像素点。
步骤208,对第一目标像素点按相应的第二目标像素点的深度值做深度值更新。
目标场景的原始点云通过点云传感器采集,预计在目标场景中加入目标模型,此时相对点云传感器,目标模型与原始点云可能会形成遮挡关系,在形成新的点云时原始点云中被遮挡的数据点需要被替换成目标模型的点。
其中,对于每一个第一目标像素点,在原始点云中存在对应的数据点,相应地,第一目标像素点对应的第二目标像素点,在目标模型上存在对应的点。计算机设备可针对步骤206中确定的第一目标像素点,判断相应的数据点和相应第二目标像素点对应的点是否存在遮挡关系。如果不存在遮挡关系,则无需更新第一目标像素点的深度值;如果存在遮挡关系,且点被数据点遮挡,也无需更新第一目标像素点的深度值;如果存在遮挡关系,且数据点被点遮挡,则获取第二深度图中与该第一目标像素点位置相同的第二目标像素点的深度值,并在第一深度图中按照获取的深度值更新该第一目标像素点的深度值。
在一个实施例中,计算机设备可遍历原始点云中的每个数据点,判断遍历的数据点投影到第一深度图中的像素点是否为第一目标像素点。如果不是第一目标像素点,则继续遍历下一个数据点。如果是第一目标像素点,则在该第一目标像素点对应的数据点被该第一目标像素点对应的第二目标像素点所对应的点遮挡的情况下,在第一深度图中对该第一目标像素点按相应的第二目标像素点的深度值做深度值更新。
在一个实施例中,计算机设备可遍历第一深度图中的像素点,判断遍历的像素点是否为第一目标像素点。如果不是第一目标像素点,则继续遍历下一个像素点。如果是第一目标像素点,则在该第一目标像素点对应的数据点被该第一目标像素点对应的第二目标像素点所对应的点遮挡的情况下,在第一深度图中对该第一目标像素点按相应的第二目标像素点的深度值做深度值更新。
在一个实施例中,计算机设备可遍历第二深度图中的像素点,判断遍历的像素点是否为第二目标像素点。如果不是第二目标像素点,则继续遍历下一个像素点。如果是第二目标像素点,则在该第二目标像素点对应的第一目标像素点所对应的数据点被该第二目标像素点所对应的点遮挡的情况下,在第一深度图中对该第一目标像素点按相应的第二目标像素点的深度值做深度值更新。
步骤210,基于对经过深度值更新的第一目标像素点进行投影逆处理得到的差异点云,更新原始点云,获得新点云。
投影逆处理是步骤202中投影的逆过程。通过投影,可以将原始点云中的数据点映射为第一深度图中的像素点;通过投影逆处理,则可以将第一深度图中的像素点映射为原始点云中的数据点。投影时,一个或多个的数据点可以映射为一个像素点;投影逆处理时,既可以通过映射关系直接将一个像素点映射为一个数据点,又可以参考投影时记录的数据点的信息将一个像素点映射为多个数据点。差异点云是指对经过深度值更新的第一目标像素点进行投影逆处理得到的数据点所构成的点云。
在一个实施例中,计算机设备可对经过深度值更新的第一目标像素点进行投影逆处理,得到差异点云。进一步地,计算机设备可基于差异点云更新原始点云,获得新点云。
在一个实施例中,计算机设备可基于目标球面投影以及投影公式,将第一目标像素点的像素点位置和深度值映射为数据点的坐标数据,从而获得差异点云。在其它实施例中,计算机设备也可以参考投影到第一目标像素点时记录的数据点的信息,并基于第一目标像素点的像素点位置和深度值,对投影到第一目标像素点之前原始点云中的对应数据点进行更新,得到差异点云。
在一个实施例中,计算机设备在对每个第一目标像素点进行投影逆处理获得差异点云中的数据点后,利用该数据点替换原始点云中投影到该第一目标像素点的数据点,从而实现基于差异点云更新原始点云,获得新点云。在其它实施例中,计算机设备也可以在对全部第一目标像素点进行投影逆处理获得完整的差异点云后,基于完整的差异点云更新完整的原始点云,获得新点云。更新过程中,利用对每个第一目标像素点进行投影逆处理获得的数据点替换原始点云中投影到该第一目标像素点的数据点。
上述点云生成方法中,将目标场景的原始点云和目标模型的点分别进行球面投影,投影过程使用已获得的原始点云球面投影参数,无需额外获得传感器的参数,同时球面投影构成的投影面具有更广的视野范围;而且根据目标模型的目标深度区域的第二目标像素点对相应的第一目标像素点进行深度值更新,并对经过深度值更新的第一目标像素点进行投影逆处理得到差异点云,基于差异点云更新原始点云生成新点云,生成的新点云相对于原始点云只做了必要的深度值更新,保留了未进行深度值更新的原始点云;最终获得的新点云视野范围更广,而且过程中需要额外获得的参数少,更新的数据量相对小,相比使用照相机模型的方法,获取深度图的效率更高,相应地点云仿真的效率也更高。
在一个实施例中,如图3所示,步骤202包括下述步骤302~306:
步骤302,获取目标场景的原始点云中各数据点的球坐标数据,球坐标数据包括角度数据和径向距离。
其中,原始点云中数据点的球坐标数据,是该数据点在球坐标系下的坐标数据,包括角度数据和径向距离。角度数据包括方位角和俯仰角,方位角是球坐标系下原点指向该数据点的射线在水平方向上与水平参考线的夹角,俯仰角是球坐标系下原点指向该数据点的射线在垂直方向上相对于垂直参考线的夹角。径向距离是球坐标系下原点到该数据点的直线距离。当垂直参考线采用从原点起朝垂直方向向上的射线时,俯仰角为天顶角。
步骤304,按照目标球面投影参数,将各数据点的角度数据映射为第一图像坐标数据。
其中,目标球面投影参数,包括表示数据投影前后映射关系的投影参数以及表示深度图尺寸的尺度参数。在球坐标系下,将原点作为观察点,球坐标系下的每个数据点的角度数据就决定了观察点处看到的数据点位置,而径向距离则决定了观察点与数据点的直线距离。
目标球面投影参数中的尺度参数,决定了投影后深度图的尺寸,也就决定了投影后图像坐标数据的范围。而目标球面投影参数中的投影参数表征了数据投影前后的映射关系。于是,基于目标球面投影参数中的投影参数和尺度参数,就可以将各数据点的角度数据映射为第一图像坐标数据。
步骤306,确定各第一图像坐标数据相应的径向距离,基于各第一图像坐标数据和相应的表征深度的径向距离生成第一深度图。
具体地,一个数据点的球坐标数据包括角度数据和径向距离,通过步骤304将该数据点的球坐标数据映射为第一图像坐标数据,那么可将该数据点的径向距离作为该第一图像坐标数据相应的径向距离。在球坐标系下,径向距离表征数据点与观察点的直线距离,这与目标场景中点云传感器与数据点的位置关系一致,因此可使用该径向距离表征数据点的深度值。
在一个实施例中,计算机设备可按照第一图像坐标数据确定数据点投影到第一深度图中的像素点,从而利用第一图像坐标数据相应的径向距离确定该像素点的像素值,该像素值表征深度值。第一深度图中其它未投影到的像素点,则采用默认像素值,该默认像素值可以取零,表征该像素点不是数据点投影得到的。
本实施例中,巧妙地利用了球坐标系和点云的特性,在球坐标系下原点作为观察点时,数据点的角度数据可以表征从观察点看到的数据点的位置,投影到平面时就可以直接用角度数据确定图像坐标;数据点的径向距离则可以视为数据点到观察点的距离,对应了点云中深度值的含义,可直接用来表征深度值。这样原始点云中的数据点的位置就可以通过二维的第一深度图准确表示,为高效、准确地进行点云仿真提供了条件。
在一个实施例中,步骤302包括:获取目标场景的原始点云中各数据点的笛卡尔坐标数据;按照笛卡尔坐标系与球坐标系的映射关系,将笛卡尔坐标数据进行坐标系转换,获得原始点云中各数据点的球坐标数据。
其中,笛卡尔坐标数据是笛卡尔坐标系下的坐标数据,笛卡尔坐标系是三维直角坐标系,由相交于原点的三条互相垂直的数轴构成,这三条数轴分别为横轴(X轴)、纵轴(Y轴)和竖轴(Z轴),对应地,笛卡尔坐标数据由横轴坐标值(x)、纵轴坐标值(y)和竖轴坐标值(z)构成。球坐标系是三维空间坐标系,以坐标原点为参考点,数据点在球坐标系下的坐标数据以方位角天顶角(θ)和径向距离(r)来表示。
通过笛卡尔坐标系与球坐标系的映射关系,可将数据点在笛卡尔坐标系下的坐标数据映射为球坐标系下的坐标数据。具体地,可采用如下公式(1)、公式(2)和公式(3)分别计算数据点在球坐标系下的坐标数据:
θ表示数据点在球坐标系下的天顶角,等于该数据点在笛卡尔坐标系下的横轴坐标值(x)与纵轴坐标值(y)之间运算值与竖轴坐标值(z)的比值的反正切值,该运算值为该数据点在笛卡尔坐标系下的横轴坐标值(x)与纵轴坐标值(y)的平方和的平方根。
r表示数据点在球坐标系下的径向距离,等于该数据点在笛卡尔坐标系下的横轴坐标值(x)、纵轴坐标值(y)和竖轴坐标值(z)的平方和的平方根。
具体地,在一个实施例中,计算机读取目标场景的原始点云中各数据点的笛卡尔坐标数据,将各数据点的笛卡尔坐标数据按照笛卡尔坐标系与球坐标系的映射关系,即上述公式(1)~(3)所表示的映射关系,将各数据点的笛卡尔坐标数据映射为各数据点的球坐标数据,获得原始点云中各数据点在球坐标下的方位角、天顶角和径向距离。
本实施例中,原始点云中的数据点采用笛卡尔坐标系下的坐标数据表示,跟现实空间对应,便于理解和计算处理。利用笛卡尔坐标系和球坐标系的固定映射关系,直接进行转换就得到球坐标数据,进而就可以利用球坐标数据直接进行投影,获得第一深度图。整个处理过程简单高效,为高效、准确地进行点云仿真提供了条件。
在一个实施例中,目标球面投影参数包括深度图边长数据和角度范围数据。步骤304包括:针对原始点云中每个数据点的角度数据,依照相应角度数据占角度范围数据所表征角度范围的角度比例以及深度图边长数据,进行线性映射,获得每个数据点对应的第一图像坐标数据。
其中,目标球面投影参数包括尺度参数,尺度参数包括深度图边长数据,深度图边长数据包括第一边长和第二边长,第一边长和第二边长分别取深度图宽度(W)和深度图高度(H)中的一种,第一边长和第二边长一起决定了深度图尺寸。目标球面投影参数包括投影参数,投影参数包括角度范围数据,角度范围数据至少包括天顶角范围数据,还可以包括方位角范围数据。角度范围数据表征数据点的角度数据所属的范围,可以采用相应角度范围的边界角度表示,也可以采用相应角度范围的边界角度之差的绝对值表示。
具体地,计算机设备可获取每个数据点的角度数据以及该角度数据所属的角度范围数据,基于该角度范围数据确定该角度数据所属的角度范围,进而计算该角度数据占该角度范围的比例,进而利用该比例和深度图边长数据做线性映射,以确定每个数据点对应的第一图像坐标数据。该第一图像坐标数据占相应深度图边长数据的比例,与数据点的角度数据占该角度范围的比例保持线性相关。
进一步地,在一个实施例中,计算机设备可获取每个数据点的方位角和方位角范围,计算该方位角占该方位角范围的比例,再基于该比例和第一边长做线性映射,获得该数据点的方位角映射到第一深度图中相对于第一边长的第一图像坐标值。在一个实施例中,计算机设备可获取每个数据点的天顶角和天顶角范围,计算该天顶角占该天顶角范围的比例,再基于该比例和第二边长做线性映射,获得该数据点的天顶角映射到第一深度图中相对于第二边长的第二图像坐标值。第一图像坐标值和第二图像坐标值构成每个数据点对应的第一图像坐标数据。
在一个实施例中,方位角范围数据可以采用方位角定义域的边界角度,相应的方位角范围可以是该方位角定义域的边界角度差值的绝对值,如2π。在一个实施例中,方位角范围数据可以采用原始点云的最大方位角和最小方位角,相应的方位角范围是最大方位角和最小方位角间差值的绝对值。
在一个实施例中,天顶角范围数据可以采用天顶角定义域的边界角度,相应的天顶角范围可以是该天顶角定义域的边界角度的绝对值,如π。在一个实施例中,顶角范围数据可以采用原始点云的最大天顶角和最小天顶角,相应的天顶角范围是最大天顶角和最小天顶角间差值的绝对值。
在一个实施例中,第一边长取深度图宽度,第二边长取深度图高度,可以采用如下公式(4)和公式(5)分别计算第一图像坐标值和第二图像坐标值:
其中,u表示数据点的方位角投影到第一深度图对应的第一图像坐标值,等于该数据点的方位角运算与方位角范围的比值与第一边长的乘积,方位角运算为方位角与最小方位角之差。
v表示数据点的天顶角投影到第二深度图对应的第二图像坐标值,等于该数据点的天顶角运算与天顶角范围的比值与第二边长的乘积的负值,天顶角运算为天顶角与最小天顶角之差。
具体地,在一个实施例中,计算机设备可获取每个数据点的方位角、最小方位角、方位角范围、天顶角、最小天顶角以及天顶角范围,将每个数据点的方位角和天顶角分别按照公式(4)、(5)所表示的映射关系,将每个数据点的方位角和天顶角分别映射为第一图像坐标值和第二图像坐标值,第一图像坐标值和第二图像坐标值构成第一图像坐标数据。
上述公式(4)、(5)中,球坐标系的坐标原点映射到第一深度图中的像素点位于第一深度图的左上角。当坐标原点映射到第一深度图中的像素点在第一深度图中其它位置时,可以采用其它的线性公式。
在一个实施例中,可以采用如下公式(6)、(7)计算第一图像坐标值:
v表示数据点的θfov投影到第一深度图对应的第一图像坐标值。θfov是球坐标系下原点指向该数据点的射线在垂直方向上与经过原点的水平面的夹角,是以水平面为参照物的俯仰角。fovdown为最大下视场角,是球坐标系下原点指向分布在球坐标系下半球的各数据点的射线在垂直方向上与经过原点的水平面的最大夹角;fovup为最大上视场角,是球坐标系下原点指向分布在球坐标系上半球的各数据点的射线在垂直方向上与经过原点的水平面的最大夹角。θfov的取值范围为fovdown到fovup。H为第一深度图高度。
本实施例中,角度数据占角度范围数据所表征角度范围的角度比例,并基于角度比例以及深度图边长数据进行线性映射来生成第一深度图,计算简单高效,为高效、准确地进行点云仿真提供了条件。
在一个实施例中,如图4所示,步骤204包括下述步骤402~406:
步骤402,基于目标模型相对于目标场景的放置空间信息,确定目标模型的点的点球坐标角度数据。
其中,点的点球坐标角度数据,是该点在球坐标系下的角度数据,该球坐标系与原始点云中各数据点从球坐标系投影到第一深度图时各数据点所在的球坐标系相同,点球坐标角度数据也包括方位角和俯仰角,俯仰角包括天顶角。
具体地,在一个实施例中,计算机设备读取目标模型,确定目标模型相对于目标场景的放置空间信息,基于放置空间信息,确定目标模型的点在球坐标系下的点球坐标角度数据。
在一个实施例中,计算机设备可获取目标模型的点在笛卡尔坐标系下的点笛卡尔坐标数据,该笛卡尔坐标系与原始点云中各数据点从笛卡尔坐标系投影到第一深度图时各数据点所在的笛卡尔坐标系相同。
具体地,在一个实施例中,计算机设备读取目标模型,确定目标模型相对目标场景的放置空间信息,基于放置空间信息,确定目标模型的点在笛卡尔坐标系下的点笛卡尔坐标数据(x',y',z'),可将目标模型的点在笛卡尔坐标系下的点笛卡尔坐标数据映射为球坐标系下的点球坐标数据。具体地,可采用如下公式(8)和公式(9)分别计算目标模型的点在球坐标系下的点球坐标数据:
θ'表示目标模型的点在球坐标系下的点球坐标天顶角,等于该点在笛卡尔坐标系下的横轴坐标值(x')与纵轴坐标值(y')之间运算值与竖轴坐标值(z')的比值的反正切值,该运算值为该点在笛卡尔坐标系下的横轴坐标值(x')与纵轴坐标值(y')的平方和的平方根。
步骤404,按照目标球面投影参数,将点球坐标角度数据映射为第二图像坐标数据。
具体地,在一个实施例中,计算机设备获取参与投影的目标模型的点的点球坐标角度数据,按照目标球面投影参数中的投影参数和尺度参数,将点球坐标角度数据映射为第二图像坐标数据。
在一个实施例中,计算机设备获取参与投影的目标模型的点的点球坐标方位角,计算该点球坐标方位角占原始点云中各数据点的方位角范围的比例,再基于该比例与第一边长做线性映射,获得该点的点球坐标方位角映射到第二深度图中相对于第一边长的第三图像坐标值。在一个实施例中,计算机设备可获取参与投影的目标模型的点的点球坐标天顶角,计算该点球坐标天顶角占原始点云中各数据点的天顶角范围的比例,再基于该比例和第二边长做线性映射,获得该点的点球坐标天顶角映射到第二深度图中相对于第二边长的第四图像坐标值。第三图像坐标值和第四图像坐标值构成参与投影的点对应的第二图像坐标数据。
其中,u'表示参与投影的目标模型的点的点球坐标方位角投影到第二深度图对应的第三图像坐标值,等于该点球坐标方位角运算与方位角范围的比值与第一边长的乘积,该点球坐标方位角运算为点球坐标方位角与最小方位角之差。
v'表示参与投影的目标模型的点的点球坐标天顶角投影到第二深度图对应的第三图像坐标值,等于该点球坐标天顶角运算与天顶角范围的比值与第二边长的乘积的负值,该点球坐标天顶角运算为点球坐标天顶角与最小天顶角之差。
上述公式(10)、(11)中,球坐标系的坐标原点映射到第二深度图中的像素点位于第二深度图的左上角。
步骤406,获取每个第二图像坐标数据所对应的深度值,依照第二图像坐标数据及对应的深度值生成第二深度图。
其中,参与投影的目标模型的点从三维坐标系投影到第二深度图时,各点之间相对三维坐标系的原点可能存在遮挡关系,在获取第二图像坐标数据对应的深度值时,需要对第二图像坐标数据对应的投影前的点进行遮挡判断,再获取第二图像坐标数据对应的深度值。在一个实施例中,也可以对参与投影的目标模型的点经过投影获得的平面使用深度缓冲技术,可直接获得第二图像坐标数据所对应的深度值。
具体地,在一个实施例中,计算机设备获取参与投影的目标模型的点投影后的第二图像坐标数据,并获取第二图像坐标数据对应的深度值,根据各第二图像坐标数据和对应的深度值生成第二深度图。
本实施例中,利用了原始点云各数据点投影到第一深度图时的球面投影参数,对目标模型的点进行球面投影生成第二深度图,保证了第一深度图和第二深度图的尺寸相同,且在第一深度图和第二深度图上的像素点一一对应,为后续的第一深度图的深度值更新提供了基础,进而为高效、准确地进行点云仿真创造了条件。
在一个实施例中,如图5所示,步骤406包括下述步骤502~506:
步骤502,确定对经过投影的目标模型进行着色处理时使用的深度缓冲区。
其中,着色处理是通过计算三维模型的光照效果并用相应颜色填充三维模型的平面单元的处理过程。着色处理过程中,首先要确定三维模型的观察平面,基于观察平面绘制三维模型。相对观察平面,计算机设备决定是否对三维模型着色时,需要对三维模型中的像素点进行深度测试。在观察平面上设置有深度缓冲区,将深度缓冲区中的像素点位置与三维模型中的像素点位置一一对应关联,深度缓冲区中的像素点像素初始值设置为最深的可能的深度值。深度测试的过程是将三维模型中的各像素点深度值与对应的深度缓冲区中的像素点深度值进行比较,遍历三维模型上的像素点,将遍历的像素点深度值与对应的深度缓冲区中的像素点深度值比较。
如果遍历的像素点深度值小于对应的深度缓冲区中的像素点深度值,则将对应深度缓冲区中像素点深度值替换为遍历的像素点深度值;如果遍历的像素点深度值大于或者等于对应的深度缓冲区中的像素点深度值,则对应深度缓冲区中像素点深度值不变。基于深度缓冲区中像素点深度值,对三维模型着色。相应地,调取三维模型着色处理时的深度缓冲区,可以确定三维模型像素点的深度值。
具体地,在一个实施例中,计算机设备确定第二图像坐标数据所在的平面图像,平面图像上各像素点的像素值为默认值,对该平面图像进行着色处理,确定着色处理时使用的深度缓冲区。
步骤504,从深度缓冲区读取与每个第二图像坐标数据所对应的深度值。
其中,深度缓冲区通过步骤502确定,深度缓冲区中有与平面图像的像素点一一对应的像素点。
具体地,在一个实施例中,计算机对每个第二图像坐标数据,从深度缓冲区中读取对应的深度值。
步骤506,基于每个第二图像坐标数据及对应的深度值生成第二深度图。
具体地,计算机设备获取目标模型经过投影得到的第二图像坐标数据,对每个第二图像坐标数据确定对应的深度值,该深度值为第二图像坐标数据对应的像素点的像素值。第二深度图中其它未投影到的像素点,则采用默认像素值,该默认像素值可以取零,表征该像素点不是目标模型的点投影得到的。
本实施例中,巧妙地利用着色处理时产生的深度缓冲区,对参与投影的目标模型的点投影后的二维平面进行着色处理,可高效地获取第二图像坐标数据对应的深度值,从而获取第二深度图,为高效、准确地进行点云仿真提供了条件。
在一个实施例中,对第一目标像素点按相应的第二目标像素点的深度值进行深度值更新包括:
将第一目标像素点的深度值和相应的第二目标像素点的深度值进行比较;在第一目标像素点的深度值比相应的第二目标像素点的深度值大的情况下,将第一目标像素点的深度值更新为相应的第二目标像素点的深度值。
具体地,在一个实施例中,计算机设备确定第一目标像素点与第二目标像素点,遍历第一目标像素点,判断遍历的第一目标像素点的深度值是否大于对应的第二目标像素点的深度值;如果遍历的第一目标像素点的深度值大于对应的第二目标像素点深度值,遍历的第一目标像素点的深度值变更为对应的第二目标像素点的深度值;如果遍历的第一目标像素点的深度值不是大于对应的第二目标像素点深度值,遍历的第一目标像素点的深度值不变。
在一个实施例中,计算机设备确定第一目标像素点与第二目标像素点,遍历第二目标像素点,判断遍历的第二目标像素点的深度值是否小于对应的第一目标像素点的深度值;如果遍历的第二目标像素点的深度值小于对应的第一目标像素点深度值,该对应的第一目标像素点的深度值变更为遍历的第二目标像素点的深度值;如果遍历的第二目标像素点的深度值不是小于对应的第一目标像素点深度值,该对应的第一目标像素点的深度值不变。
本实施例中,通过同一像素点位置的第一目标像素点和第二目标像素点的深度值大小对比,实现了原始点云与目标模型的点的遮挡关系的判断,对被遮挡的原始点云各数据点对应的像素点进行深度更新,数据处理过程简单、高效,为高效、准确地进行点云仿真提供了条件。
在一个实施例中,该点云生成方法具体包括:
计算机设备获取自动驾驶场景的原始点云中各数据点的笛卡尔坐标数据(x,y,z),示例性地,自动驾驶场景中原始点云分布如图6所示。
按照公式(1)~(3)所表示的映射关系,将各数据点在笛卡尔坐标系下的坐标数据映射为球坐标系下的球坐标数据,获得原始点云中各数据点在球坐标系下的方位角天顶角(θ)和径向距离(r)。保留每一个数据点的笛卡尔坐标数据(x,y,z)与球坐标数据的对应关系。
获取球面投影参数深度图宽度(W)、深度图高度(H)、最大方位角最小方位角最大天顶角(θmax)和最小天顶角(θmin),根据将原始点云中各数据点在球坐标系下的方位角天顶角(θ)和径向距离(r),采用公式(4)和公式(5)分别计算第一图像坐标值(u)和第二图像坐标值(v),得到第一图像坐标数据(u,v)。保留每一个数据点的球坐标数据的对应关系与投影后的第一图像坐标数据(u,v)的对应关系。
按照第一图像坐标数据确定数据点投影到第一深度图的像素点,将第一图像坐标数据相应的径向距离作为该像素点的像素值。第一深度图中其它未投影到的像素点,则取零。示例性地,图6对应的原始点云各数据点经过球面投影得到的第一深度图如图7所示。
获取汽车模型以及汽车模型相对于自动驾驶场景的放置空间信息,确定汽车模型的点在原始点云各数据点所在的笛卡尔坐标系下的点笛卡尔坐标数据(x',y',z')。
按第二图像坐标数据确定汽车模型的点经过球面投影获得的平面图像,对该平面进行着色处理,确定着色处理时的深度缓冲区,从深度缓冲区中读取第二图像坐标数据对应的深度值。
按照第二图像坐标数据确定数据点投影到第二深度图的像素点,将第二图像坐标数据相应的深度缓冲区对应的深度值作为该像素点的像素值。第二深度图中其它未投影到的像素点,则取零。示例性地,汽车模型的点经过球面投影得到第二深度图如图8所示。
在第一深度图中,与第二图像坐标数据(u',v')相同的第一图像坐标数据(u,v)对应的像素点为第一目标像素点;在第二深度图中,与第一图像坐标数据(u,v)相同的第二图像坐标数据(u',v')对应的像素点为第二目标像素点。遍历第一目标像素点,判断遍历的第一目标像素点的深度值是否大于对应的第二目标像素点的深度值;如果遍历的第一目标像素点的深度值大于对应的第二目标像素点深度值,遍历的第一目标像素点的深度值变更为对应的第二目标像素点的深度值;如果遍历的第一目标像素点的深度值不是大于对应的第二目标像素点深度值,遍历的第一目标像素点的深度值不变。
对每个更新了深度值的第一目标像素点,通过公式(1)~(5)的逆运算计算第一图像坐标数据及更新的深度值在笛卡尔坐标系下的坐标数据,同时对该第一目标像素点通过第一图像坐标数据找到对应的球坐标数据,进而找到对应的笛卡尔坐标数据,以及确定该笛卡尔坐标数据对应的数据点;对对应的数据点的笛卡尔坐标数据,用经过逆运算得到的坐标数据替换,从而实现原始点云的更新,最终得到新点云。示例性地,在自动驾驶场景中加入汽车模型得到新点云如图9所示,在自动驾驶场景中加入汽车模型,其中,901为原始点云被替换的部分,其余为新点云。
本实施例中,将自动驾驶场景的原始点云和汽车模型的点分别进行球面投影,投影过程使用已获得的原始点云球面投影参数,无需额外获得传感器的参数,同时球面投影构成的投影面具有更广的视野范围;而且根据汽车模型的的第二目标像素点对相应的第一目标像素点进行深度值更新,并对经过深度值更新的第一目标像素点进行投影逆处理得到的数据点对原始点云中的数据点进行替换,生成的新点云。相对于原始点云只做了必要的深度值更新,保留了未进行深度值更新的原始点云;最终获得的新点云视野范围更广,而且过程中需要额外获得的参数少,更新的数据量相对小,相比使用照相机模型的方法,获取深度图的效率更高,相应地点云仿真的效率也更高。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的点云生成方法的点云生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多点云生成装置实施例中的具体限定可以参见上文中对于点云生成方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种点云生成装置1000,包括:点云球面投影模块1010、目标模型球面投影模块1020、深度值更新模块1030和点云更新模块1040,其中:
点云球面投影模块1010,用于将目标场景的原始点云按照目标球面投影参数投影为第一深度图。
目标模型球面投影模块1020,用于基于目标模型相对于目标场景的放置空间信息,按照目标球面投影参数,将目标模型投影为第二深度图;第二深度图包括投影得到的与目标模型对应的目标深度区域。
深度值更新模块1030,用于确定第一深度图中投影得到的第一目标像素点,使得第二深度图中与第一目标像素点位置相同的第二目标像素点属于目标深度区域;对第一目标像素点按相应的第二目标像素点的深度值进行深度值更新。
点云更新模块1040,用于基于对经过深度值更新的第一目标像素点进行投影逆处理得到的差异点云,更新原始点云,获得新点云。
在一个实施例中,点云球面投影模块1010包括点云获取模块和角度数据映射模块和第一深度图生成模块。点云获取模块,用于获取目标场景的原始点云中各数据点的球坐标数据,球坐标数据包括角度数据和径向距离。角度数据映射模块,用于按照目标球面投影参数,将各数据点的角度数据映射为第一图像坐标数据。第一深度图生成模块,用于确定各第一图像坐标数据相应的径向距离,基于各第一图像坐标数据和相应的表征深度值的径向距离生成第一深度图。
在一个实施例中,点云获取模块还用于获取目标场景的原始点云中各数据点的笛卡尔坐标数据;按照笛卡尔坐标系与球坐标系的映射关系,将笛卡尔坐标数据进行坐标系转换,获得原始点云中各数据点的球坐标数据。
在一个实施例中,目标球面投影参数包括深度图边长数据和角度范围数据,角度数据映射模块还用于针对原始点云中每个数据点的角度数据,依照相应角度数据占角度范围数据所表征角度范围的角度比例以及深度图边长数据,进行线性映射,获得每个数据点对应的第一图像坐标数据。
在一个实施例中,目标模型球面投影模块1020包括目标模型点确定模块、点角度数据映射模块和第二深度图生成模块。目标模型点确定模块,用于基于目标模型相对于目标场景的放置空间信息,确定目标模型的点的点球坐标角度数据。点角度数据映射模块,用于按照目标球面投影参数,将点球坐标角度数据映射为第二图像坐标数据。第二深度图生成模块,用于获取每个第二图像坐标数据所对应的深度值,依照第二图像坐标数据及对应的深度值生成第二深度图。
在一个实施例中,第二深度图生成模块还用于确定对经过投影的目标模型进行着色处理时使用的深度缓冲区;从所述深度缓冲区读取与每个第二图像坐标数据所对应的深度值;基于每个第二图像坐标数据及对应的深度值生成第二深度图。
在一个实施例中,深度值更新模块1030还用于将第一目标像素点的深度值和相应的第二目标像素点的深度值进行比较;在所述第一目标像素点的深度值比相应的第二目标像素点的深度值大的情况下,将所述第一目标像素点的深度值更新为相应的第二目标像素点的深度值。
上述点云生成装置,将目标场景的原始点云和目标模型的点分别进行球面投影,投影过程使用已获得的原始点云球面投影参数,无需额外获得传感器的参数,同时球面投影构成的投影面具有更广的视野范围;而且根据目标模型的目标深度区域的第二目标像素点对相应的第一目标像素点进行深度值更新,并对经过深度值更新的第一目标像素点进行投影逆处理得到差异点云,基于差异点云更新原始点云生成新点云,生成的新点云相对于原始点云只做了必要的深度值更新,保留了未进行深度值更新的原始点云;最终获得的新点云视野范围更广,而且过程中需要额外获得的参数少,更新的数据量相对小,相比使用照相机模型的方法,获取深度图的效率更高,相应地点云仿真的效率也更高。
上述点云生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种点云生成方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种点云生成方法,其特征在于,所述方法包括:
将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;
对所述第一目标像素点按相应的第二目标像素点的深度值做深度值更新;
基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
2.根据权利要求1所述的方法,其特征在于,所述将目标场景的原始点云按照目标球面投影参数投影为第一深度图,包括:
获取目标场景的原始点云中各数据点的球坐标数据,所述球坐标数据包括角度数据和径向距离;
按照目标球面投影参数,将所述各数据点的角度数据映射为第一图像坐标数据;
确定各所述第一图像坐标数据相应的径向距离,基于各所述第一图像坐标数据和相应的表征深度值的所述径向距离生成第一深度图。
3.根据权利要求2所述的方法,其特征在于,所述获取目标场景的原始点云中各数据点的球坐标数据,包括:
获取目标场景的原始点云中各数据点的笛卡尔坐标数据;
按照笛卡尔坐标系与球坐标系的映射关系,将所述笛卡尔坐标数据进行坐标系转换,获得所述原始点云中各数据点的球坐标数据。
4.根据权利要求2或3所述的方法,其特征在于,所述目标球面投影参数包括深度图边长数据和角度范围数据;所述按照目标球面投影参数,将所述角度数据映射为第一图像坐标数据,包括:
针对所述原始点云中每个数据点的角度数据,依照相应角度数据占所述角度范围数据所表征角度范围的角度比例以及所述深度图边长数据,进行线性映射,获得所述每个数据点对应的第一图像坐标数据。
5.根据权利要求1所述的方法,其特征在于,所述基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图,包括:
基于目标模型相对于所述目标场景的放置空间信息,确定所述目标模型的点的点球坐标角度数据;
按照所述目标球面投影参数,将所述点球坐标角度数据映射为第二图像坐标数据;
获取每个第二图像坐标数据所对应的深度值,依照所述第二图像坐标数据及对应的深度值生成第二深度图。
6.根据权利要求5所述的方法,其特征在于,所述获取每个第二图像坐标数据所对应的深度值,依照所述第二图像坐标数据及对应的深度值生成第二深度图,包括:
确定对经过投影的目标模型进行着色处理时使用的深度缓冲区;
从所述深度缓冲区读取与每个第二图像坐标数据所对应的深度值;
基于每个第二图像坐标数据及对应的深度值生成第二深度图。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新,包括:
将第一目标像素点的深度值和相应的第二目标像素点的深度值进行比较;
在所述第一目标像素点的深度值比相应的第二目标像素点的深度值大的情况下,将所述第一目标像素点的深度值更新为相应的第二目标像素点的深度值。
8.一种点云生成装置,其特征在于,所述装置包括:
点云球面投影模块,用于将目标场景的原始点云按照目标球面投影参数投影为第一深度图;
目标模型球面投影模块,用于基于目标模型相对于所述目标场景的放置空间信息,按照所述目标球面投影参数,将所述目标模型投影为第二深度图;所述第二深度图包括投影得到的与所述目标模型对应的目标深度区域;
深度值更新模块,用于确定所述第一深度图中投影得到的第一目标像素点,使得所述第二深度图中与所述第一目标像素点位置相同的第二目标像素点属于所述目标深度区域;对所述第一目标像素点按相应的第二目标像素点的深度值进行深度值更新;
点云更新模块,用于基于对经过深度值更新的所述第一目标像素点进行投影逆处理得到的差异点云,更新所述原始点云,获得新点云。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911130.5A CN115239784A (zh) | 2022-07-29 | 2022-07-29 | 点云生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911130.5A CN115239784A (zh) | 2022-07-29 | 2022-07-29 | 点云生成方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115239784A true CN115239784A (zh) | 2022-10-25 |
Family
ID=83677235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210911130.5A Pending CN115239784A (zh) | 2022-07-29 | 2022-07-29 | 点云生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115239784A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690359A (zh) * | 2022-10-27 | 2023-02-03 | 科大讯飞股份有限公司 | 一种点云处理方法、装置、电子设备及存储介质 |
CN117197211A (zh) * | 2023-09-04 | 2023-12-08 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
-
2022
- 2022-07-29 CN CN202210911130.5A patent/CN115239784A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690359A (zh) * | 2022-10-27 | 2023-02-03 | 科大讯飞股份有限公司 | 一种点云处理方法、装置、电子设备及存储介质 |
CN115690359B (zh) * | 2022-10-27 | 2023-12-15 | 科大讯飞股份有限公司 | 一种点云处理方法、装置、电子设备及存储介质 |
CN117197211A (zh) * | 2023-09-04 | 2023-12-08 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
CN117197211B (zh) * | 2023-09-04 | 2024-04-26 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
EP2343659B1 (en) | Techniques for density mapping | |
CN115239784A (zh) | 点云生成方法、装置、计算机设备和存储介质 | |
Liang et al. | A visualization-oriented 3D method for efficient computation of urban solar radiation based on 3D–2D surface mapping | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN115937439B (zh) | 城市建筑三维模型的构建方法、装置及电子设备 | |
CN112419460B (zh) | 烘焙模型贴图的方法、装置、计算机设备和存储介质 | |
CN116030180A (zh) | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 | |
CN113157988B (zh) | 由ofd格式文件表示地理信息的方法和装置 | |
CN114897965B (zh) | 一种三维场景开敞度分析的方法及系统 | |
CN116758206A (zh) | 矢量数据的融合渲染方法、装置、计算机设备、存储介质 | |
CN115409962A (zh) | 虚幻引擎内构建坐标系统的方法、电子设备和存储介质 | |
CN116385575A (zh) | 图像重构方法、装置、计算机设备和存储介质 | |
Lieberwirth et al. | Applying low budget equipment and open source software for high resolution documentation of archaeological stratigraphy and features | |
CN115962760A (zh) | 投影参数确定方法、装置、计算机设备、存储介质 | |
CN112419459A (zh) | 烘焙模型ao贴图的方法、装置、计算机设备和存储介质 | |
US20240193864A1 (en) | Method for 3d visualization of sensor data | |
CN117576645B (zh) | 基于bev视角的车位检测方法、装置和计算机设备 | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
CN116295031B (zh) | 弧垂的测量方法、装置、计算机设备和存储介质 | |
CN116824082B (zh) | 虚拟地形的绘制方法、装置、设备、存储介质及程序产品 | |
CN116863137A (zh) | 输电铁塔三维模型的优化方法、装置和计算机设备 | |
CN115409961A (zh) | 基于虚幻引擎的热力图构建方法、电子设备和存储介质 | |
CN117649481A (zh) | 一种体积云地面阴影渲染方法、装置和存储介质 | |
CN115409959A (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 |