一种基于视锥体的点云语义分割方法及装置制造方法及图纸

技术编号:39430647 阅读:16 留言:0更新日期:2023-11-19 16:15
本发明专利技术涉及一种基于视锥体的点云语义分割方法及装置,利用

【技术实现步骤摘要】
一种基于视锥体的点云语义分割方法及装置


[0001]本专利技术涉及点云标注
,具体涉及一种基于视锥体的点云语义分割方法及装置


技术介绍

[0002]随着自动驾驶技术的不断发展,自动驾驶系统对高性能
AI
的需求愈发凸显

从最开始的处理视觉图像,到处理视频

点云等多种传感器的融合数据
。AI
的能力在不断增强,涉及的数据源及数据量也在不断增加

想要训练出这样一个
AI
,相较于以前,需要投入更大量的带有真值的数据供
AI
学习,而这些带有真值的数据都需要通过人工数据标注来产生

[0003]在常见的图像

视频以及点云数据的标注过程中,点云语义分割标注是信息最丰富的标注方式,但也是最复杂

最耗时的标注方式

它需要将点云中的每个点根据其所属的对象赋予不同的类别信息,其标注数据同时包含了三维坐标信息与类别信息,相较于普通的视觉图像与视频,信息量要丰富很多,许多高性能
AI
也逐渐选择点云语义分割数据作为训练和学习的目标

因此如何能够提高点云语义分割的标注效率也成为了高性能
AI
训练过程中一个关键的问题

[0004]在人工语义分割在线标注平台中,三维点的拾取通常采用的是投影法
+
射线法的方式,即使用两个
canvas
,一个负责利用投影法将三维坐标点投影至显示器平面,另一个负责利用射线法检测投影后的三维坐标点是否位于拾取所用的多边形内

这种方法是将三维先降低至二维再进行计算,不仅计算量较大,计算过程较为繁琐,而且降维计算也会带来一定的精度损失问题,导致标注数据的精度降低

并且使用两个
canvas
也增加了计算与渲染压力,在点云数据较大时会出现操作卡顿的现象,导致标注效率的降低


技术实现思路

[0005]本专利技术针对现有技术中存在的技术问题,提供一种基于视锥体的点云语义分割方法及装置,仅使用一个
canvas
,在同等数据下减小了计算与渲染压力,提高了标注操作流畅性,提升标注效率,且所有计算均直接在三维中完成,无需额外的降维计算,减少了计算步骤与计算量,并保证了计算结果精度,提高了标注效率与标注精度

[0006]本专利技术解决上述技术问题的技术方案如下:
[0007]第一方面,本专利技术提供一种基于视锥体的点云语义分割方法,包括:
[0008]S100
,利用
Three.js
引擎加载并显示点云数据,同时创建相机对象

视锥体对象与轨道控制器对象;
[0009]S200
,利用轨道控制器对象监听点云数据场景变化;
[0010]S300
,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象;
[0011]S400
,利用更新后的视锥体对象筛选点云数据中所有位于视锥体内的点;
[0012]S500
,根据相机位置以及用户绘制的三维多边形构建对应的三维几何体;遍历位
于视锥体内所有的点,根据各点与所述三维几何体的坐标位置关系,提取位于所述三维几何体内的点,并赋予相应的类别信息;
[0013]S600
,重复步骤
S200
至步骤
S500
,直至点云数据中所有点均被赋予类别信息后,即完成当前点云数据的语义分割

[0014]进一步的,利用个轨道控制器对象监听每一次点云数据场景变化,包括:利用轨道控制器对象的
Controls.addEventListener()
方法添加对场景变化完成的
end
监听事件,每当场景完成一次旋转

平移或缩放时,触发所述监听事件

[0015]进一步的,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象,包括:
[0016]在监听事件中调用相机对象的
Camera.updateProjectionMatrix()
方法更新相机对象的投影矩阵;
[0017]所述视锥体对象包括6个平面,每个平面均有法向量和原点到平面的距离两个属性;利用更新后的相机对象的投影矩阵更新所述视锥体对象的6个平面的法向量
Plane.normal
以及点云坐标系原点到各平面的距离

[0018]进一步的,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象,还包括:对更新后的所述视锥体对象的6个平面法向量
Plane.normal
以及点云坐标系原点到各平面的距离进行二次更新;
[0019]所述的二次更新,包括:对每个平面分别调用
Plane.normal.applyQuaternion()
方法,并传入相机对象的旋转四元数
Camera.quaternion
作为参数,以分别更新每个平面的法向量
Plane.normal
;根据下式计算并更新每个平面的原点到平面的距离
Plane.constant

[0020][0021]其中,
c'
为二次更新后的
Plane.constant

n
为平面法向量
Plane.normal

p0为相机对象的位置
Camera.position

·
表示向量点乘;假设
n

(x,y,z)
,则
n.l

x2+y2+z2。
[0022]进一步的,根据相机位置以及用户绘制的三维多边形构建对应的三维几何体,包括:
[0023]获取用户绘制的三维多边形的各个顶点的三维坐标;
[0024]取相邻两个顶点的三维坐标,结合相机对象的位置
Camera.position
,调用平面对象的
Plane.setFromCoplanarPoints()
方法,将三个三维坐标作为参数传入,构建出一个平面;重复该步骤,直至三维多边形的所有相邻的两个顶点均完成平面构建;
[0025]利用多个所述平面构建三维几何体

[0026]进一步的,遍历位于视锥体内所有的点,根据各点与所述三维几何体的坐标位置关系,提取位于所述三维几何体内的点,包括:
[0027]针对位于视锥体内的的任一点
p
,计算:
[0028]f
i

n
i
·本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于视锥体的点云语义分割方法,其特征在于,包括:
S100
,利用
Three.js
引擎加载并显示点云数据,同时创建相机对象

视锥体对象与轨道控制器对象;
S200
,利用轨道控制器对象监听点云数据场景变化;
S300
,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象;
S400
,利用更新后的视锥体对象筛选点云数据中所有位于视锥体内的点;
S500
,根据相机位置以及用户绘制的三维多边形构建对应的三维几何体;遍历位于视锥体内所有的点,根据各点与所述三维几何体的坐标位置关系,提取位于所述三维几何体内的点,并赋予相应的类别信息;
S600
,重复步骤
S200
至步骤
S500
,直至点云数据中所有点均被赋予类别信息后,即完成当前点云数据的语义分割
。2.
根据权利要求1所述的方法,其特征在于,利用个轨道控制器对象监听每一次点云数据场景变化,包括:利用轨道控制器对象的
Controls.addEventListener()
方法添加对场景变化完成的
end
监听事件,每当场景完成一次旋转

平移或缩放时,触发所述监听事件
。3.
根据权利要求1所述的方法,其特征在于,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象,包括:在监听事件中调用相机对象的
Camera.updateProjectionMatrix()
方法更新相机对象的投影矩阵;所述视锥体对象包括6个平面,每个平面均有法向量和原点到平面的距离两个属性;利用更新后的相机对象的投影矩阵更新所述视锥体对象的6个平面的法向量
Plane.normal
以及点云坐标系原点到各平面的距离
。4.
根据权利要求3所述的方法,其特征在于,当场景变化完成时,更新相机对象参数,并利用相机对象参数更新视锥体对象,还包括:对更新后的所述视锥体对象的6个平面法向量
Plane.normal
以及点云坐标系原点到各平面的距离进行二次更新;所述的二次更新,包括:对每个平面分别调用
Plane.normal.applyQuaternion()
方法,并传入相机对象的旋转四元数
Camera.quaternion
作为参数,以分别更新每个平面的法向量
Plane.normal
;根据下式计算并更新每个平面的原点到平面的距离
Plane.constant
;其中,
c'
为二次更新后的
Plane.constant

n
为平面法向量
Plane.normal

p0为相机对象的位置
Camera.position

·
表示向量点乘;假设
n

(x,y,z)
,则
n.l

【专利技术属性】
技术研发人员:王军德付玥赵王靖龙
申请(专利权)人:武汉光庭信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1