一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种点云生成方法、装置、设备及存储介质与流程

2022-11-19 10:54:27 来源:中国专利 TAG:


1.本发明涉及计算机视觉技术领域,尤其涉及一种点云生成方法、装置、设备及存储介质。


背景技术:

2.仿真验证在机器人的开发流程中扮演着重要的角色,通过仿真验证可加快产品迭代,降低测试成本,为开发人员提供便利。机器人仿真软件为机器人仿真中的常用工具,其可对传感器、机器人运动学以及周边环境等进行模拟。
3.现有针对三维激光点云的仿真模拟,常通过机器人仿真软件中的三维激光传感器插件实现,通过将三维激光传感器插件生成的多个三维点云进行依据需求进行拼接,最终得到与实际仿真需求相匹配的点云。
4.然而,由于目前市场流通的多种激光雷达所生成的点云有时是变间距的,如有些激光雷达在中间位置点云更为密集等情况。而机器人仿真软件中的三维激光传感器插件所生成的点云在水平和竖直方向上是等角度均匀分布的,针对同一视场内的三维点云,需要将三维激光传感器插件生成的多个点云进行拼接,才可实现所需仿真点云的生成。使用起来较为不便,且会造成大量计算资源的浪费,提升了仿真验证的成本。


技术实现要素:

5.本发明提供了一种点云生成方法、装置、设备及存储介质,直接依据所需生成点云的分辨率角度,由获取的相机深度点云中确定所需仿真的点云,无需生成多个深度点云,提升了点云生成的灵活性,降低了点云生成所需的数据计算量,提高了点云生成的实用性。
6.第一方面,本发明实施例提供了一种点云生成方法,该方法包括:
7.获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云;
8.根据分辨率角度集合确定相机深度点云对应的,至少一个深度相机的相机特性参数;
9.针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数;
10.将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。
11.第二方面,本发明实施例还提供了一种点云生成装置,该点云生成装置包括:
12.点云获取模块,用于获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云;
13.特性参数确定模块,用于根据分辨率角度集合确定相机深度点云对应的,至少一个深度相机的相机特性参数;
14.行列数确定模块,用于针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数;
15.生成点云确定模块,用于将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。
16.第三方面,本发明实施例还提供了一种点云生成设备,该点云生成设备包括:
17.至少一个处理器;以及
18.与至少一个处理器通信连接的存储器;其中,
19.存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,使得至少一个处理器能够实现本发明任一实施例的点云生成方法。
20.第四方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本发明任一实施例的点云生成方法。
21.本发明实施例提供的一种点云生成方法、装置、设备及存储介质,通过获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云;根据分辨率角度集合确定相机深度点云对应的,至少一个深度相机的相机特性参数;针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数;将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。通过采用上述技术方案,根据获取到的待生成点云对应的分辨率角度,以及与其中每个待生成点对应的相机特性参数,构建分辨率角度与相机深度点云间的行列数对应关系,由获取的相机深度点云中直接确定,与待生成点云分辨率角度相对应的目标生成点云,而无需考虑待生成点云是否为均匀分布的点云。解决了现有仿真软件中的插件难以直接依据仿真需求,一次生成不等间距的点云的问题,减少了所需生成深度点云的数量,提升了点云生成的灵活性,降低了点云生成过程中的计算成本,进而提升了点云生成在仿真验证中的实用性。
22.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
23.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本发明实施例一中的一种点云生成方法的流程图;
25.图2是本发明实施例一中的一种深度相机布设位置示意图;
26.图3是本发明实施例一中的一种待生成点空间位置关系示意图;
27.图4是本发明实施例二中的一种点云生成方法的流程图;
28.图5是本发明实施例二中的一种根据水平视场、水平像素点数、最大纵向分辨率角度和最大横向分辨率角度,确定深度相机对应的相机特性参数的流程示意图;
29.图6是本发明实施例二中的一种根据待生成点对应的分辨率角度和目标相机特性参数,确定待生成点与目标深度相机的中心点间的像素距离的流程示意图;
30.图7是本发明实施例二中的一种根据目标相机特性参数和像素距离,确定待生成
点在目标相机深度点云中的目标行列数的流程示意图;
31.图8是本发明实施例二中的一种将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云的流程示意图;
32.图9是本发明实施例三中的一种点云生成装置的结构示意图;
33.图10是本发明实施例四中的一种点云生成设备的结构示意图。
具体实施方式
34.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
35.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.实施例一
37.图1为本发明实施例一提供的一种点云生成方法的流程图,本发明实施例可适用于机器人仿真验证过程中,针对三维激光传感器对应的三维激光点云进行仿真模拟的情况,该方法可以由点云生成装置来执行,该点云生成装置可以由软件和/或硬件来实现,该点云生成装置可以配置在点云生成设备上,该点云生成设备可以是笔记本、台式计算机以及智能平板等。
38.如图1所示,本发明实施例一提供的一种点云生成方法,具体包括如下步骤:
39.s101、获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云。
40.在本实施例中,待生成点云具体可理解为仿真验证过程中所需生成的点云。分辨率角度集合具体可理解为待生成点云中每个点所对应的,在探测范围内水平方向和垂直方向上的分辨率角度的集合,需要明确的是,每个点均对应探测范围内的一个横向分辨率角度和一个纵向分辨率角度,可通过其对点再探测范围内的位置进行确定,其中,横向分辨率角度为探测范围内水平方向上的分辨率角度,纵向分辨率角度为探测范围内垂直方向上的分辨率角度。相机深度点云具体可理解为通过设置的一个或多个深度相机对探测范围进行拍摄,所得到的探测范围内各像素点对应深度信息的点云。
41.具体的,在需要进行机器人仿真验证时,确定所需进行仿真验证的探测范围,以及在该探测范围内所需生成的待生成点云在水平方向及垂直方向上的分辨率角度的集合,并通过至少一个深度相机获取所需进行仿真验证的探测范围内,不同像素点的深度信息,并将包含深度信息的各像素点所组成的点云确定为,与待生成点云对应的相机深度点云。
42.需要明确的是,待生成点云对应的分辨率角度集合中的分辨率,在水平方向和垂直方向上,为依据实际所需仿真情况预先设置的,可为不均匀分布的分辨率角度数据集,本发明实施例对分辨率角度集合中的分辨率角度设置方式不进行限制。
43.可选的,相机深度点云为由至少一个水平设置的深度相机采集的,覆盖360度探测范围的深度点云。
44.具体的,由于一个深度相机对应的水平视场范围有限,因此在针对360度的全角度探测范围内,难以仅通过一个深度相机完成深度点云的采集,此时可通过在同一水平面内相邻设置多个深度相机,使得各深度相机的水平视场之和大于或等于360度,进而使得由多个深度相机采集的深度点云进行拼接后实现对全角度探测范围的覆盖。示例性的,图2为本发明实施例一提供的一种深度相机布设位置示意图,假设其中每个深度相机在水平方向上的覆盖角度,也即水平视场为120度,为实现全角度探测范围的覆盖,则需设置三个相同的深度相机,以相机1的朝向为正前方为例,将三个深度相机设置成如图2所示的布设位置,将三个深度相机获取的深度点云拼接以得到全角度探测范围内的深度点云。
45.需要明确的是,经由深度相机采集的相机深度点云是排列规整的像素点打到物体上所形成的点云,而仿真验证中所需的点云,如三维激光雷达的点云是许多和水平面以及竖直面呈一定角度的激光束形成的,因此需通过几何求解确定空间中某一位置的激光束,对应到深度相机采集的相机深度点云中的行和列。以单个深度相机为例,图3为本发明实施例一提供的一种待生成点空间位置关系示意图,假设所需仿真模拟的为三维激光雷达的点云,a点即为所需仿真模拟的其中一个待生成点,oa为激光束,设x轴为深度相机的正前方,z轴为深度相机的正上方,y轴与x轴处于同一水平面上,d为深度相机获取的深度点云的中心点,激光束oa与水平面xoy的夹角即oa与ob的夹角为α,激光束oa绕z轴旋转的角度β,激光束oa在xoz平面的投影oc和x轴的夹角为α',假设oa长度为r,则a点在该空间直角坐标系下的坐标为(r
·
cosα
·
cosβ,r
·
cosα
·
sinβ,r
·
sinα),α'的正切值为基于上述几何关系即可明确待生成点a在以d为中心点的深度点云中位置关系,明确其在相机深度点云中的行和列。
46.s102、根据分辨率角度集合确定相机深度点云对应的,至少一个深度相机的相机特性参数。
47.在本实施例中,相机特性参数具体可理解为影响深度相机成像的技术参数。示例性的,相机特性参数可包括视场角度、密度、分辨率、距离精确度、最大最小探测距离和帧率等,本发明实施例对相机特性参数的选择不进行限制。
48.具体的,由于分辨率角度集合所对应的探测范围,一个深度相机的视场角度可能难以完整覆盖,因此相机深度点云可由多个深度相机采集的多个相机深度点云拼接得到,针对每一个深度相机可进行探测的相机探测范围,根据该相机探测范围内的分辨率角度集合在水平方向和垂直方向上的分布情况,确定为完成仿真需为深度相机配置的参数,并将确定出的各参数作为与该相机探测范围对应的深度相机的相机特性参数。
49.s103、针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数。
50.在本实施例中,目标行列数具体可理解为待生成点在相机深度点云中相对应像素
点,在相机深度点云中各像素点对应坐标系下,所处的行数和列数。
51.具体的,针对待生成点云中的每个待生成点,确定对应采集其所在探测范围内相机深度点云的深度相机,并由各相机特性参数中确定与该深度相机对应的相机特性参数,同时由分辨率角度集合中,确定该待生成点在探测范围内水平方向和垂直方向上的分辨率角度,进而依据分辨率角度以及深度相机的相机特性参数,确定分辨率角度与该深度相机及对应的目标相机深度点云之间的对应关系,确定该分辨率角度情况下的待生成点位于该目标相机深度点云中的行数和列数,并将该行数和列数确定为相机深度点云中的目标行列数。
52.在本发明实施例中,通过确定待生成点云中的每个待生成点在相机深度点云中各像素点对应坐标系下,所处的行数和列数,明确了各待生成点的分辨率角度与相机深度点云间的对应关系,进而使得可直接由已获取的相机深度点云直接完成仿真验证所需目标生成点云的确定,提升了仿真效率。
53.s104、将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。
54.在本实施例中,目标生成点云具体可理解为在仿真验证过程中,最终由相机深度点云中提取出的,与期望生成的待生成点云相对应的点云。可以理解的是,待生成点云为仿真验证过程中所期望生成的点云,而目标生成点云为仿真验证中依据期望实际生成的点云,二者间存在对应关系。
55.具体的,根据目标行列数在相机深度点云中确定与其位置相对应的相机深度点,进而可根据各目标行列数,确定各待生成点在相机深度点云中位置相对应的相机深度点,所有确定出的相机深度点构成的点云即可认为是相机深度点云中,依据期望生成的待生成点云对应的实际生成的点云,将各相机深度点组成的点云确定为目标生成点云。
56.本实施例的技术方案,通过获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云;根据分辨率角度集合确定相机深度点云对应的,至少一个深度相机的相机特性参数;针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数;将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。通过采用上述技术方案,根据获取到的待生成点云对应的分辨率角度,以及与其中每个待生成点对应的相机特性参数,构建分辨率角度与相机深度点云间的行列数对应关系,由获取的相机深度点云中直接确定,与待生成点云分辨率角度相对应的目标生成点云,而无需考虑待生成点云是否为均匀分布的点云。解决了现有仿真软件中的插件难以直接依据仿真需求,一次生成不等间距的点云的问题,减少了所需生成深度点云的数量,提升了点云生成的灵活性,降低了点云生成过程中的计算成本,进而提升了点云生成在仿真验证中的实用性。
57.实施例二
58.图4为本发明实施例二提供的一种点云生成方法的流程图,本发明实施例的技术方案在上述各可选技术方案的基础上进一步优化,通过分别获取待生成点云对应的横纵向分辨率角度子集,确定分辨率角度集合;在获取了相机深度点云对应的各深度相机的水平视场和水平像素点数之后,依据该水平视场确定分辨率角度集合中位于水平视场范围内的分辨率角度子集,进而根据该分辨率角度子集中的角度阈值确定该深度相机对应的相机特
性参数;同时依据确定出的相机特性参数和待生成点云中每个待生成点对应的分辨率角度,确定待生成点与深度相机中心点之间的像素距离,进而依据像素距离与相机特性参数确定待生成点在与其对应的深度相机生成的相机深度点云中的目标行列数;根据目标行列数确定待生成点,在与其相对应的深度相机采集的相机深度点云中的点编号,进而将相机深度点云中该编号的像素点确定为与待生成点所对应的,实际生成的点,并将各实际生成点构成的点云确定为目标生成点云,通过直接构建相机深度点云中的点,与待生成点云中各待生成点对应分辨率角度间的对应关系,实现目标点云的生成,仅需进行一次相机深度点云的生成,而无需将多次生成的相机深度点云进行拼接以得到最终需要仿真的目标生成点云,提升了点云生成的灵活性,降低了点云生成过程中的计算成本,进而提升了点云生成在仿真验证中的实用性。
59.如图4所示,本发明实施例二提供的一种点云生成方法,具体包括如下步骤:
60.s201、获取待生成点云对应的纵向分辨率角度子集,和横向分辨率角度子集。
61.在本实施例中,纵向分辨率角度子集具体可理解为待生成点云在垂直方向探测范围内的,所处分辨率角度的集合。横向分辨率角度子集具体可理解为待生成点云在水平方向探测范围内的,所处分辨率角度的集合。待生成点云中各点在水平方向和垂直方向上的可呈均匀分布,也可呈不均匀分布。
62.示例性的,以深度相机的朝向为正前方,水平方向上各像素点以0.2度间隔均匀分布,在垂直方向上各像素点在-50~-20度和10~20度范围内各像素点以2度间隔均匀分布,在-20~10度的范围内各像素点以1度间隔均匀分布。此时,获取的待生成点云对应的纵向分辨率角度子集可表示为[-50,-48,

,-22,-20,-19,

,8,9,10,12,

,18,20],获取的待生成点云对应的横向分辨率角度子集可表示为[-180,-179.8,

,-0.2,0,0.2,

,179.8,180]。
[0063]
s202、将纵向分辨率角度子集中各纵向分辨率角度,分别与横向分辨率角度子集中各横向分辨率角度组合,确定待生成点云中各待生成点对应的分辨率角度。
[0064]
具体的,由于纵向分辨率角度子集和横向分辨率角度子集,分别可代表待生成点云在水平方向和垂直方向上的探测范围,此时将纵向分辨率角度子集中的一个纵向分辨率角度,分别与横向分辨率角度子集中的各横向分辨率角度依次进行组合,即可确定探测范围内与该纵向分辨率角度对应的一行待生成点的分辨率角度,依次采用上述匹配方式直到纵向分辨率角度子集中所有纵向分辨率角度均已完成横向分辨率角度的匹配,即可确定待生成点云中所有待生成点对应的分辨率角度。
[0065]
接上述示例,以纵向分辨率角度子集中的-20度为例,将其依次与横向分辨率角度子集中的所有横向分辨率角度进行匹配,即可得到探测范围内一行待生成点对应的分辨率角度,可表示为[(-180,-20),(-179.8,-20),

,(-0.2,-20),(0,-20),

,(179.8,-20),(180,-20)],依次将纵向分辨率角度子集中的所有纵向分辨率角度执行上述组合操作,即可确定探测范围内所有待生成点对应的分辨率角度。
[0066]
s203、根据各分辨率角度确定分辨率角度集合。
[0067]
具体的,将各待生成点对应的分辨率角度的集合确定为分辨率角度集合。
[0068]
s204、获取与待生成点云对应的相机深度点云。
[0069]
s205、针对相机深度点云对应的每个深度相机,获取与深度相机对应的水平视场
和水平像素点数。
[0070]
在本实施例中,水平视场具体可理解为深度相机在水平方向上的视野范围,也即可理解为深度相机在水平方向上可进行深度信息采集的范围。水平像素点数具体可理解为深度相机在水平方向上可进行深度信息采集的像素点个数。需要明确的是,深度相机的水平视场与水平像素点数可根据深度相机的型号或配置预先确定,本发明实施例对其确定方式不进行限定。
[0071]
具体的,由于相机深度点云可由多个深度相机采集的深度点云拼接得到,针对相机深度点云对应的每一个深度相机,获取与其对应的水平视场和水平像素点数,以明确该深度相机的部分参数配置,以及其所采集深度点云在相机深度点云中对应的像素点范围。
[0072]
s206、根据水平视场和水平像素点数由分辨率角度集合中,确定与深度相机对应的分辨率角度子集。
[0073]
具体的,针对用于采集相机深度点云中的一个深度相机,基于该深度相机对应的水平视场和水平像素点数,可明确其在相机深度点云中对应的像素点范围,也即可确定待生成点云中位于该像素点范围内的待生成点,在分辨率角度集合中确定与上述待生成点对应的分辨率角度,并将上述分辨率角度的集合确定为与该深度相机对应的分辨率角度子集。
[0074]
s207、确定分辨率角度子集中的最大纵向分辨率角度和最大横向分辨率角度。
[0075]
具体的,将分辨率角度子集中绝对值最大的纵向分辨率角度确定为最大纵向分辨率角度,将分辨率角度子集中绝对值最大的横向分辨率角度确定为最大横向分辨率角度。
[0076]
示例性的,假设分辨率角度子集对应的深度相机的水平视场为120度,以该深度相机的朝向为正前方,则该分辨率角度子集中所包含的横向分辨率角度范围为-60~60度,也即该分辨率角度子集对应的最大横向分辨率角度为60度;而假设该分辨率角度子集对应的纵向分辨率角度范围为-50~20度,则该分辨率角度子集对应的最大纵向分辨率角度为50度。
[0077]
s208、根据水平视场、水平像素点数、最大纵向分辨率角度和最大横向分辨率角度,确定深度相机对应的相机特性参数。
[0078]
具体的,根据深度相机所需采集像素点对应的最大纵向分辨率角度和最大横向分辨率角度,确定深度相机在垂直方向上所需具有的垂直视场,在确定出垂直视场后,根据垂直视场、水平视场和水平像素点数确定深度相机在垂直方向上需要进行深度信息采集的像素点个数,将其确定为垂直像素点数,进而将获取的水平视场、水平像素点数、确定出的垂直视场以及垂直像素点数确定为与该深度相机对应的相机特性参数。
[0079]
进一步地,图5为本发明实施例二提供的一种根据水平视场、水平像素点数、最大纵向分辨率角度和最大横向分辨率角度,确定深度相机对应的相机特性参数的流程示意图,如图5所示,具体包括如下步骤:
[0080]
s2081、将最大横向分辨率角度的正切值,与最大纵向分辨率角度的余弦值的比值确定为第一比值。
[0081]
s2082、将第一比值的反正切值的二倍确定为深度相机的垂直视场。
[0082]
在本实施例中,垂直视场具体可理解为深度相机在垂直方向上的视野范围,也即可理解为深度相机在垂直方向上可进行深度信息采集的范围。
[0083]
示例性的,假设最大横向分辨率角度表示为α
max
,最大纵向分辨率角度表示为β
max
,则深度相机的垂直视场fovy可表示为:
[0084][0085]
s2083、将二分之一垂直视场的正切值,与二分之一水平视场的正切值的比值确定为第二比值。
[0086]
s2084、将第二比值与水平像素点数的乘积确定为深度相机的垂直像素点数。
[0087]
在本实施例中,垂直像素点数具体可理解为深度相机在垂直方向上可进行深度信息采集的像素点个数。
[0088]
接上述示例,假设深度相机的水平视场表示为fov
x
,水平像素点数为pixel
x
,则深度相机的垂直像素点数pixely可表示为:
[0089][0090]
s2085、将水平视场、水平像素点数、垂直视场和垂直像素点数确定为深度相机对应的相机特性参数。
[0091]
在本发明实施例中,根据深度相机所需生成点云的分辨率角度,以及深度相机自身固有的水平视场和水平像素点数,适应性的为深度相机进行纵向上的垂直视场和垂直像素点数定义,使得通过定义得到的深度相机所获取的相机深度点云,能够更好地对待生成点云进行仿真模拟,提升了确定出的目标生成点云的准确性。
[0092]
需要明确的是,步骤s2081-s2082和步骤s2083-s2084可同时执行也可采用任意先后顺序执行,本发明实施例对此不进行限制
[0093]
s209、针对待生成点云中的每个待生成点,确定与待生成点对应的目标深度相机和目标相机深度点云,并由各相机特性参数中确定与目标深度相机对应的目标相机特性参数。
[0094]
在本实施例中,目标深度相机具体可理解为对待生成点所在区域进行深度信息获取的深度相机。目标相机深度点云具体可理解为相机深度点云中由目标深度相机获取的点云。
[0095]
具体的,由于与待生成点云对应的相机深度点云,是对待生成点云所对应探测范围全覆盖的深度点云,在一个深度相机采集的深度点云无法实现全覆盖的情况下,会通过多个深度相机对探测范围内的深度信息进行采集。因此,针对待生成点云中的一个待生成点,其在探测范围内的位置是固定的,此时可将相机深度点云中用于采集该位置的深度相机确定为目标深度相机,将由目标深度相机采集的深度点云确定为目标相机深度点云,并由多个不同深度相机对应的相机特性参数中,确定出与目标深度相机对应的相机特性参数,并将其作为目标相机特性参数。
[0096]
s210、根据待生成点对应的分辨率角度和目标相机特性参数,确定待生成点与目标深度相机的中心点间的像素距离。
[0097]
具体的,根据目标相机特性参数可确定目标深度相机所获取的深度点云中的中心点位置,且由于目标相机特性参数已知,则可明确目标深度相机可探测的探测范围,根据待
生成点对应的分辨率角度可知待生成点在上述探测范围内水平方向,以及垂直方向上的角度信息,将角度信息、目标深度相机的视场角度,以及目标深度相机在水平方向和垂直方向上可采集的像素点数相结合,即可明确在探测范围内的待生成点相对于探测范围中心点,也即相对于目标深度相机的中心点间的像素距离。以如图3所示的待生成点空间位置关系示意图为例,在目标深度相机设置于点o时,d为深度相机所获取的深度点云的中心点,a点为待生成点在目标深度相机的探测范围内的位置,则ad即为待生成点a相较于目标深度相机中心点间的像素距离。
[0098]
进一步地,图6为本发明实施例二提供的一种根据待生成点对应的分辨率角度和目标相机特性参数,确定待生成点与目标深度相机的中心点间的像素距离的流程示意图,如图6所示,具体包括如下步骤:
[0099]
s2101、根据待生成点对应的分辨率角度,确定待生成点对应的投影面夹角。
[0100]
具体的,以如图3所示的待生成点空间位置关系示意图为例,在已知激光束oa与水平面xoy的夹角即oa与ob的夹角为α,激光束oa绕z轴旋转的角度为β时,也即可明确待生成点对应的横向分辨率角度为β,纵向分辨率角度为α。此时以x轴为深度相机的正前方方向,则待生成点a在深度相机正前方向投影面中的投影点为c,c点在x轴上的投影点d可被认为是深度相机获取的深度点云的中心点,待生成点a可被认为是深度相机获取的深度点云平面dcab上的一点,此时其对应的投影面夹角即为图3中的角doc,也即激光束oa在xoz平面的投影oc和x轴的夹角α'。
[0101]
s2102、根据分辨率角度中的横向分辨率角度,以及目标相机特性参数中的目标水平视场和目标水平像素点数,确定待生成点与目标深度相机的中心点间的水平像素距离。
[0102]
在本实施例中,目标水平视场和目标水平像素点数具体可理解为目标深度相机对应的水平视场和水平像素点数。水平像素距离具体可理解为在目标深度相机的像素坐标系下,待生成点与目标深度相机获取的深度点云的中心点在水平方向上的距离,以如图3所示的待生成点a为例,其水平像素距离即为ac两点间的像素距离,或bd两点间的像素距离。其中,目标深度相机的像素坐标系具体可理解为以目标深度相机可获取的深度点云的左上角点为原点,x轴方向向下,y轴方向向右的平面直角坐标系。示例性的,如图3所示的待生成点a在目标深度相机的像素坐标系时,所对应的横向分辨率角度β,和纵向分辨率角度α均为负值。
[0103]
接上述示例,在待生成点对应分辨率角度中的横向分辨率角度为β,目标相机特性参数中的目标水平视场为fov
x
,目标水平像素点数为pixel
x
时,确定出的待生成点与目标深度相机的中心点间的水平像素距离dist
x
可表示为:
[0104][0105]
其中,round为四舍五入函数,以便于保证确定出的水平像素距离为整数值。
[0106]
s2103、根据投影面夹角,以及目标相机特性参数中的目标垂直视场和目标垂直像素点数,确定待生成点与中心点间的垂直像素距离。
[0107]
在本实施例中,目标垂直视场和目标垂直像素点数具体可理解为目标深度相机对应的垂直视场和垂直像素点数。垂直像素距离具体可理解为在目标深度相机的像素坐标系
下,待生成点与目标深度相机获取的深度点云的中心点在垂直方向上的距离,以如图3所示的待生成点a为例,其垂直像素距离即为cd两点间的像素距离。
[0108]
接上述示例,在待生成点对应的投影面夹角为α',目标相机特性参数中的目标垂直视场为fovy,目标垂直像素点数为pixely时,确定出的待生成点与目标深度相机的中心点间的垂直像素距离disty可表示为:
[0109][0110]
需要明确的是,步骤s2102和步骤s2103可同时执行也可采用任意先后顺序执行,本发明实施例对此不进行限制。
[0111]
s211、根据目标相机特性参数和像素距离,确定待生成点在目标相机深度点云中的目标行列数。
[0112]
具体的,根据目标相机特性参数可确定目标深度相机所采集的深度点云的覆盖范围,同时可明确目标相机深度点云在水平方向和垂直方向上具有的像素点个数,在已知目标相机深度点云的中心点,以及待生成点距离中心点的像素距离后,即可明确待生成点偏离中心点的点数,进而可推知待生成点相对于中心点偏离的行数和列数,确定待生成点在目标相机深度点云中的目标行列数。由于相机深度点云是由多个目标相机深度点云拼接而成的,因此目标相机深度点云中的目标行列数,也即为拼接后相机深度点云中与目标深度相机对应的目标行列数。
[0113]
进一步地,图7为本发明实施例二提供的一种根据目标相机特性参数和像素距离,确定待生成点在目标相机深度点云中的目标行列数的流程示意图,如图7所示,具体包括如下步骤:
[0114]
s2111、将目标水平像素点数的一半与水平像素距离之和,确定为待生成点在目标相机深度点云中的目标行数。
[0115]
接上述示例,在目标深度相机的目标水平像素点数为pixel
x
,水平像素距离为dist
x
时,待生成点在目标相机深度点云中对应的目标行数row可表示为:
[0116]
row=pixel
x
/2 dist
x
[0117]
s2112、将目标垂直像素点数的一半与垂直像素距离之和,确定为待生成点在目标相机深度点云中的目标列数。
[0118]
接上述示例,在目标深度相机的目标垂直像素点数为pixely,垂直像素距离为disty时,待生成点在目标相机深度点云中对应的目标列数column可表示为:
[0119]
column=pixely/2-disty[0120]
s212、将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。
[0121]
具体的,由于各目标行列数对应着相机深度点云中不同的目标深度相机,一个目标行列数对应着目标深度相机采集的目标相机深度点云中的一个相机深度点,而该相机深度点也即为相机深度点云中的一个点,因此可依据各目标行列数由对应的目标深度相机点云中确定对应的相机深度点,并将各确定出的相机深度点构成的点云,确定为目标生成点云。
[0122]
进一步地,图8为本发明实施例二提供的一种将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云的流程示意图,如图8所示,具体包括如下步骤:
[0123]
s2121、将各目标行列数中的目标行数减一后,与对应相机特性参数中的水平像素点数相乘,确定各目标行列数对应的第一乘积。
[0124]
具体的,由于不同目标行列数在相机深度点云中对应不同的深度相机,在已知目标深度相机的目标水平像素点数以及目标垂直像素点数的基础上,可知目标深度相机在相机深度点云中对应的像素点个数,而针对位于其中的一个目标行列数对应的待生成点,将其中的目标行数减一后与水平像素点数相乘,即可得到目标相机深度点云中在到达该待生成点所在行数前的像素点个数,将该乘积确定为第一乘积。
[0125]
s2122、将各第一乘积与对应目标行列数中的目标列数相加,确定各目标行列数对应的目标点编号。
[0126]
具体的,目标行列数可表示待生成点在目标相机深度点云中,第目标行数行中的像素点个数,此时将第一乘积与对应目标行列数中的目标列数相加,即可确定待生成点为目标相机深度点云中的第几个像素点,将该像素点的编号确定为目标点编号。也即假设目标行数为row,目标列数为column,目标水平像素点数为pixel
x
,目标垂直像素点数为pixely的情况下,目标相机深度点云中包含pixel
x
*pixely个像素点,将其以目标相机深度点云左上角点为第一个像素点进行编号,则待生成点为目标相机深度点云中第row行中的第column个点,其在目标相机深度点云中的目标点编号应表示为(row-1)*pixel
x
column。
[0127]
s2123、将相机深度点云中与各目标点编号对应的相机深度点,确定为目标生成点云。
[0128]
具体的,由相机深度点云中确定与各目标点编号对应的目标相机深度点云,并由各目标相机深度点云中确定与各目标点编号对应的像素点作为相机深度点,将各相机深度点构成的点云确定为仿真验证需要生成的目标生成点云。
[0129]
本实施例的技术方案,通过获取的待生成点云对应的横纵向分辨率角度子集,确定分辨率角度集合,并依据分辨率角度集合对用于获取相机深度点云的各深度相机进行特性参数定义,使得获取的相机深度点云更贴近于需要生成的点云。同时根据确定出的相机特性参数和待生成点云中每个待生成点对应的分辨率角度,明确对应目标深度相机点云与所需确定的待生成点间的几何对应关系,也即确定待生成点在与其对应的深度相机生成的相机深度点云中的目标行列数;根据目标行列数确定待生成点,在与其相对应的深度相机采集的相机深度点云中的点编号,进而将相机深度点云中该编号的像素点确定为与待生成点所对应的,实际需要生成的点,可根据获取的待生成点云的分辨率角度集合对相机深度点云进行适应性调整,并仅需进行一次相机深度点云的生成即可由其中确定最终需要仿真的目标生成点云,提升了点云生成的灵活性,降低了点云生成过程中的计算成本,进而提升了点云生成在仿真验证中的实用性。
[0130]
实施例三
[0131]
图9为本发明实施例三提供的一种点云生成装置的结构示意图,该点云生成装置包括:点云获取模块31,特性参数确定模块32,行列数确定模块33和生成点云确定模块34。
[0132]
其中,点云获取模块31,用于获取待生成点云对应的分辨率角度集合,以及与待生成点云对应的相机深度点云;特性参数确定模块32,用于根据分辨率角度集合确定相机深
度点云对应的,至少一个深度相机的相机特性参数;行列数确定模块33,用于针对待生成点云中的每个待生成点,根据待生成点对应的分辨率角度与各相机特性参数,确定待生成点在相机深度点云中的目标行列数;生成点云确定模块34,用于将相机深度点云中与各目标行列数对应的相机深度点,确定为目标生成点云。
[0133]
本实施例的技术方案,通过构建分辨率角度与相机深度点云间的行列数对应关系,由获取的相机深度点云中直接确定,与待生成点云分辨率角度相对应的目标生成点云,而无需考虑待生成点云是否为均匀分布的点云。解决了现有仿真软件中的插件难以直接依据仿真需求,一次生成不等间距的点云的问题,减少了所需生成深度点云的数量,提升了点云生成的灵活性,降低了点云生成过程中的计算成本,进而提升了点云生成在仿真验证中的实用性。
[0134]
可选的,点云获取模块31,包括:
[0135]
角度子集获取单元,用于获取待生成点云对应的纵向分辨率角度子集,和横向分辨率角度子集;
[0136]
角度确定单元,用于将纵向分辨率角度子集中各纵向分辨率角度,分别与横向分辨率角度子集中各横向分辨率角度组合,确定待生成点云中各待生成点对应的分辨率角度;
[0137]
角度集合确定单元,用于根据各分辨率角度确定分辨率角度集合。
[0138]
可选的,特性参数确定模块32,包括:
[0139]
水平特性获取单元,用于针对相机深度点云对应的每个深度相机,获取与深度相机对应的水平视场和水平像素点数;
[0140]
角度子集确定单元,用于根据水平视场和水平像素点数由分辨率角度集合中,确定与深度相机对应的分辨率角度子集;
[0141]
最大角度确定单元,用于确定分辨率角度子集中的最大纵向分辨率角度和最大横向分辨率角度;
[0142]
参数确定单元,用于根据水平视场、水平像素点数、最大纵向分辨率角度和最大横向分辨率角度,确定深度相机对应的相机特性参数。
[0143]
进一步地,参数确定单元,具体用于:
[0144]
将最大横向分辨率角度的正切值,与最大纵向分辨率角度的余弦值的比值确定为第一比值;
[0145]
将第一比值的反正切值的二倍确定为深度相机的垂直视场;
[0146]
将二分之一垂直视场的正切值,与二分之一水平视场的正切值的比值确定为第二比值;
[0147]
将第二比值与水平像素点数的乘积确定为深度相机的垂直像素点数;
[0148]
将水平视场、水平像素点数、垂直视场和垂直像素点数确定为深度相机对应的相机特性参数。
[0149]
可选的,行列数确定模块33,包括:
[0150]
目标参数确定单元,用于针对待生成点云中的每个待生成点,确定与待生成点对应的目标深度相机和目标相机深度点云,并由各相机特性参数中确定与目标深度相机对应的目标相机特性参数;
[0151]
像素距离确定单元,用于根据待生成点对应的分辨率角度和目标相机特性参数,确定待生成点与目标深度相机的中心点间的像素距离;
[0152]
行列数确定单元,用于根据目标相机特性参数和像素距离,确定待生成点在目标相机深度点云中的目标行列数。
[0153]
进一步地,像素距离确定单元,具体用于:
[0154]
根据待生成点对应的分辨率角度,确定待生成点对应的投影面夹角;
[0155]
根据分辨率角度中的横向分辨率角度,以及目标相机特性参数中的目标水平视场和目标水平像素点数,确定待生成点与目标深度相机的中心点间的水平像素距离;
[0156]
根据投影面夹角,以及目标相机特性参数中的目标垂直视场和目标垂直像素点数,确定待生成点与中心点间的垂直像素距离。
[0157]
进一步地,行列数确定单元,具体用于:
[0158]
将目标水平像素点数的一半与水平像素距离之和,确定为待生成点在目标相机深度点云中的目标行数;
[0159]
将目标垂直像素点数的一半与垂直像素距离之和,确定为待生成点在目标相机深度点云中的目标列数。
[0160]
可选的,生成点云确定模块34,包括:
[0161]
乘积确定单元,用于将各目标行列数中的目标行数减一后,与对应相机特性参数中的水平像素点数相乘,确定各目标行列数对应的第一乘积;
[0162]
目标编号确定单元,用于将各第一乘积与对应目标行列数中的目标列数相加,确定各目标行列数对应的目标点编号;
[0163]
生成点云确定单元,用于将相机深度点云中与各目标点编号对应的相机深度点,确定为目标生成点云。
[0164]
进一步地,相机深度点云为由至少一个水平设置的深度相机采集的,覆盖360度探测范围的深度点云。
[0165]
本发明实施例提供的点云生成装置可执行本发明任意实施例所提供的点云生成方法,具备执行方法相应的功能模块和有益效果。
[0166]
实施例四
[0167]
图10为本发明实施例四提供的一种点云生成设备的结构示意图。点云生成设备40可为电子设备,旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0168]
如图10所示,点云生成设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(rom)42、随机访问存储器(ram)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(rom)42中的计算机程序或者从存储单元48加载到随机访问存储器(ram)43中的计算机程序,来执行各种适当的动作和处理。在ram 43中,还可存储点云生成设备40操作所需的各种程序和数据。处理器41、rom 42以及ram 43通过总线44彼此相连。输入/输出(i/o)接口45也连接至
总线44。
[0169]
点云生成设备40中的多个部件连接至i/o接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许点云生成设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0170]
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如点云生成方法。
[0171]
在一些实施例中,点云生成方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由rom 42和/或通信单元49而被载入和/或安装到点云生成设备40上。当计算机程序加载到ram 43并由处理器41执行时,可以执行上文描述的点云生成方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行点云生成方法。
[0172]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0173]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0174]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0175]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)
监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0176]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0177]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0178]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0179]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献