一种二维点云法线计算方法
未命名
10-08
阅读:186
评论:0
1.本发明属于点云数据处理技术领域,具体涉及一种二维点云法线计算方法。
背景技术:
2.法线是点云的重要特征信息,通常情况下点云法向信息和拓扑结构缺失,法线需要使用点云坐标数据估算。三维点云的法线估计方法大体可以分为三类:基于delaunay/voronoi的方法、基于局部表面拟合的方法和基于鲁棒统计的方法。
3.基于delaunay/voronoi的方法为点云模型构建voronoi图,并对其进行delaunay三角剖分,根据点在整个点云凸壳中的位置,确定点的法线;该方法不适用于有噪声和具有尖锐特征的点云,无法很好地应用于现场采集的点云模型。基于局部表面拟合的方法假设点云的每一个采样平面都是光滑的,对所有的采样点的局部邻域通过平面进行拟合,使用平面的法向量估计作为采样点的法向量;该方法无法处理具有尖锐特征的点云。基于鲁棒统计的方法将点云数据中每个点的邻域点划分为多个光滑的区域,通过移动最小二乘法(mls)对各个区域进行mls投影表面重建,重建的同时获取到点的法向量;该方法可以很好地处理点云中的噪声点和尖锐特征,但表面重建需要巨大的计算开销,不适用于大规模的点云中。
4.而这些方法主要是针对三维点云进行法线估计,对于在三维点云中截取得到的二维点云,其三维法线无法准确地描述二维点云在平面中的法线信息。并且在仅需二维点云法线的场景下,若计算三维点云的所有法线,再截取所需二维点云法线,当中绝大多数的法线计算量是浪费的。
技术实现要素:
5.为解决上述问题,本发明采取的技术方案是:一种二维点云法线计算方法,其中,包括以下步骤:
6.s1.初始化数据,选取二维点云中的某一点b,并以b为自身点,搜索得到点b最邻近的n个点,组成邻近点云;
7.s2.选取邻近点云中的点a和点c作为法线计算的端点;
8.s3.计算向量ab的垂向量n
ab
,计算向量bc的垂向量n
bc
;
9.s4.求取b点的法向量nb。
10.进一步的,s2中,先计算邻近点云中点的x方向的最大值x
max
与最小值x
min
,以及y方向的最大值y
max
与最小值y
min
,计算x方向的最值之差
△
x
max
=x
max-x
min
,y方向的最值之差
△ymax
=y
max-y
min
。
11.进一步的,s2中,对比
△
x
max
与
△ymax
两者的大小,若
△
x
max
比
△ymax
大,则选取x
max
与x
min
对应的点作为法线计算的端点a点和c点;
12.若
△ymax
比
△
x
max
大,则选取y
max
与y
min
对应的点作为法线计算的端点a点和c点。
13.进一步的,s3中,向量ab=(x
b-xa,y
b-ya),将向量ab单位化其中则
14.可选的,向量bc=(x
c-xb,y
c-yb),将向量bc单位化其中则
15.进一步的,s4中,nb是向量n
ab
和向量n
bc
的和向量,即nb=n
ab
+n
bc
,将向量nb单位化
16.可选的,还包括s5,调整法线方向,设置法向视点pv(x
pv
,y
pv
),计算向量bpv与向量nb之间的夹角余弦值cos《bpv,nb》;
17.若cos《bpv,nb》小于0,则将nb的x值、y值均取相反数,作为b点的法向量nb;
18.若cos《bpv,nb》大于0,则保持nb不变。
19.同时,本发明还提供了一种二维点云法线计算的设备,包括:
20.处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行一种二维点云法线计算方法。
21.再则,本发明还提供了一种二维点云法线计算的存储介质,包括:用于存储计算机程序,所述计算机程序使得计算机执行一种二维点云法线计算方法。
22.综上所述,由于采用了上述技术方案,本发明的有益效果至少包括以下之一:
23.1、提供了一种二维点云法线的计算方法,该方法将点云中非所需二维截面的点排除在计算之外,避免该部分点对法线计算造成影响;
24.2、避免了大部分不必要点的法线计算,不存在计算上的浪费,故而较之常规的点云估算方法,计算速度更快,效率更高;
25.3、解决了现有法线估算方法主要是针对三维点云进行法线估计,对于在三维点云中截取得到的二维点云,其三维法线无法准确地描述二维点云在平面中的法线信息。并且在仅需二维点云法线的场景下,若计算三维点云的所有法线,再截取所需二维点云法线,当中绝大多数的法线计算量是浪费的的问题。
附图说明
26.图1为一种二维点云法线计算方法流程图;
27.图2为另一种二维点云法线计算方法流程图;
28.图3为自制水杯原始点云示意图;
29.图4为自制水杯三维点云技术的法线示意图;
30.图5为自制水杯二维截面计算的法线示意图;
31.图6为三点计算法线原理图;
具体实施方式
32.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。通常在此处附图中描述和示出的本发明实施方式的组件可以以各种不同的配置来布置和设计。
33.因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
34.需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。
35.如图1所示,本发明公开了一种二维点云法线计算方法,包括以下步骤:
36.s1.初始化数据,选取二维点云中的某一点b,并以b为自身点,搜索得到点b最邻近的n个点,组成邻近点云;
37.s2.选取邻近点云中的点a和点c作为法线计算的端点;
38.s3.计算向量ab的垂向量n
ab
,计算向量bc的垂向量n
bc
;
39.s4.求取b点的法向量nb。
40.这样设计的目的在于,提供了一种二维点云法线的计算方法,该方法将点云中非所需二维截面的点排除在计算之外,避免该部分点对法线计算造成影响;避免了大部分不必要点的法线计算,不存在计算上的浪费,故而较之常规的点云估算方法,计算速度更快,效率更高;解决了现有法线估算方法主要是针对三维点云进行法线估计,对于在三维点云中截取得到的二维点云,其三维法线无法准确地描述二维点云在平面中的法线信息。并且在仅需二维点云法线的场景下,若计算三维点云的所有法线,再截取所需二维点云法线,当中绝大多数的法线计算量是浪费的的问题。
41.需要指出的是,本技术中用邻近点搜索,获取截面点云中每个点最邻近的20个点(包含自身点,自身点为得到的索引数组中的第一个元素),组成邻近点云;计算邻近点云的最值,计算在x、y方向上的最值之差,选择最值的差值大的方向作为法线的垂直方向;获取法线的垂直方向的端点,作为法线计算的a点和c点,自身点为b点。同时利用二维平面中的三点进行法线计算的方法。欲求b点法线,且已知邻近点a点和c点,采取以下方法计算b点法线:取向量ab的垂直向量n
ab
,向量bc的垂直向量n
bc
,求得n
ab
与n
bc
的和向量为nb,即为b点的法向量。
42.如图6所示,在具体实施时,s2中,先计算邻近点云中点的x方向的最大值x
max
与最小值x
min
,以及y方向的最大值y
max
与最小值y
min
,计算x方向的最值之差
△
x
max
=x
max-x
min
,y方向的最值之差
△ymax
=y
max-y
min
。
43.同时,s2中,对比
△
x
max
与
△ymax
两者的大小,若
△
x
max
比
△ymax
大,则选取x
max
与x
min
对应的点作为法线计算的端点a点和c点;
44.若
△ymax
比
△
x
max
大,则选取y
max
与y
min
对应的点作为法线计算的端点a点和c点。
45.在s3中,向量ab=(x
b-xa,y
b-ya),将向量ab单位化其中
则
46.同时,s3中,向量bc=(x
c-xb,y
c-yb),将向量bc单位化其中则
47.在s4中,nb是向量n
ab
和向量n
bc
的和向量,即nb=n
ab
+n
bc
,将向量nb单位化
48.如图2所示,在一部分使用场景中,还可以对法线方向进行调整,设置法向视点pv(x
pv
,y
pv
),计算向量bpv与向量nb之间的夹角余弦值cos《bpv,nb》;
49.若cos《bpv,nb》小于0,则将nb的x值、y值均取相反数,作为b点的法向量nb;
50.若cos《bpv,nb》大于0,则保持nb不变。
51.如图3至图5所示,为了验证本方法的可靠性,自制水杯原始点云,点云点数为785322,使用三维点云计算法线,法线计算时间为0.313s,使用二维截面计算的法线计算时间为0.012s,因此可根据需要,先截取二维截面,再进行法线计算,可大大减少计算时间。可见,三维点云的法线一部分朝向杯子内部,一部分朝向杯子外部,法线方向不便于控制;而二维法线可全部指向杯子外部,但法线取反后,也可全部指向杯子内部,可很方便地控制法线方向。并且三维点云的杯口边缘法线会受到周围点的影响,无法正确指向杯子正上方,此处法线计算存在较大误差;而二维点云可避免第三方向的点对法线计算造成影响,从而更加准确地计算出杯口边缘的法线。
52.最后应说明的是:以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种二维点云法线计算方法,其特征在于,包括以下步骤:s1.初始化数据,选取二维点云中的某一点b,并以b为自身点,搜索得到点b最邻近的n个点,组成邻近点云;s2.选取邻近点云中的点a和点c作为法线计算的端点;s3.计算向量ab的垂向量n
ab
,计算向量bc的垂向量n
bc
;s4.求取b点的法向量n
b
。2.根据权利要求1所述的一种二维点云法线计算方法,其特征在于:s2中,先计算邻近点云中点的x方向的最大值x
max
与最小值x
min
,以及y方向的最大值y
max
与最小值y
min
,计算x方向的最值之差
△
x
max
=x
max-x
min
,y方向的最值之差
△
y
max
=y
max-y
min
。3.根据权利要求2所述的一种二维点云法线计算方法,其特征在于:s2中,对比
△
x
max
与
△
y
max
两者的大小,若
△
x
max
比
△
y
max
大,则选取x
max
与x
min
对应的点作为法线计算的端点a点和c点;若
△
y
max
比
△
x
max
大,则选取y
max
与y
min
对应的点作为法线计算的端点a点和c点。4.根据权利要求3所述的一种二维点云法线计算方法,其特征在于:s3中,向量ab=(x
b-x
a
,y
b-y
a
),将向量ab单位化其中则则5.根据权利要求4所述的一种二维点云法线计算方法,其特征在于:s3中,向量bc=(x
c-x
b
,y
c-y
b
),将向量bc单位化其中则则6.根据权利要求5所述的一种二维点云法线计算方法,其特征在于:s4中,n
b
是向量n
ab
和向量n
bc
的和向量,即n
b
=n
ab
+n
bc
,将向量n
b
单位化7.根据权利要求6所述的一种二维点云法线计算方法,其特征在于:还包括s5,调整法线方向,设置法向视点pv(x
pv
,y
pv
),计算向量bpv与向量n
b
之间的夹角余弦值cos<bpv,n
b
>;若cos<bpv,n
b
>小于0,则将n
b
的x值、y值均取相反数,作为b点的法向量n
b
;若cos<bpv,n
b
>大于0,则保持n
b
不变。
技术总结
本发明涉及点云数据处理技术领域,具体涉及是一种二维点云法线计算方法,先初始化数据,然后选取二维点云中的某一点B,并以B为自身点,搜索得到点B最邻近的n个点,组成邻近点云,然后选取邻近点云中的点A和点C作为法线计算的端点,接着计算向量AB的垂向量N
技术研发人员:李艳
受保护的技术使用者:成都航空职业技术学院
技术研发日:2023.07.24
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种双层伸缩升降台的制作方法 下一篇:循环上料装置的制作方法
