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

一种基于视觉的交通场景线性结构重建方法与流程

2022-03-09 02:19:08 来源:中国专利 TAG:


1.本发明属于三维重建技术领域,特别涉及一种针对交通场景的结构重建方法。


背景技术:

2.三维重建一直是计算机视觉领域中一个重要的研究方向,它在虚拟现实、物体识别和可视化等方面有着广泛的应用。如何在计算机中对场景进行快速、有效地重建,向来都是计算机视觉的研究领域的热点与难点。
3.具体到智慧交通领域,对交通场景进行三维重建一方面有利于更好地分析交通情况,另一方面也可将重构的场景模型作为参考,为后续的城市交通建设提供分析基础。
4.为实现交通场景的三维重建,现有技术中往往采用以下方法进行:首先,采用前端图像传感器,获取到场景中的物体的多视角图像,从图像中检测包括点特征与线特征在内的特征信息,对检测到的特征信息做出匹配后,根据完成匹配的特征信息完成位姿估计与深度估计等,最终处理得到其三维场景模型。
5.近年来,为更好实现智慧交通领域内的三维场景重建,现有技术中往往采用sfm和mvs方式实现。sfm(structure from motion)实质是根据特征信息计算得到相机输入视角的位姿、内参、共视关系与稀疏点云等信息。而mvs(multi view stereo)则通过这些信息进行深度估计以及点云的过滤和优化等,输出点云最终得到场景三维模型。当然,也可以利用场景中线特征代替点特征,输出三维线段,以线段来表达场景。
6.应该指出,上述方法应用到实际的交通场景三维重建工作中时将存在一定缺陷:对于输出点云用以表达三维场景的方法而言,从一个方面来看,点云中的点通常独立存储,并不存在结构关系,无法有效表示场景几何结构信息;而从另一方面来看,点云往往需要很大的存储空间,这将导致重建效率较低,并且严重限制了后期处理和分析的效率。而对于输出3d线段用以表达三维场景的方法而言,受限于交通场景的复杂性,线特征不足以表征整个场景,输出3d线段作为最后的重建结果的方法对场景表达不完整,特别是无法还原微小的细节,且针对场景中的曲面部分,线特征也可能无法表示或者表现力较差。


技术实现要素:

7.为解决上述问题,本发明的目的在于提供一种场景线性重建方法,该方法应用于交通场景中,将从图像中获取的二维线段与点云数据结合起来,方便获取空间三维线段进而实现场景重建,其重建过程更加高效便捷,表达场景信息更加完整,对细节与曲面将表现出更好的还原性。
8.本发明的另一个目的在于提供一种基于视觉的交通场景线性结构重建方法,该方法计算过程更加轻量化,且采用该方法后直接输出三维线段,减轻了算法对设备运算能力与存储能力的依赖。
9.为实现上述目的,本发明的技术方案如下:
10.一种基于视觉的交通场景线性结构重建方法,该方法包括有:
11.s1:获取图像:基于指定交通场景,获取该交通场景的图像信息;
12.s2:获取点云及深度分布:基于指定交通场景的图像信息,获取点云数据及深度分布数据;
13.s3:获取二维线段:基于指定交通场景的图像信息,获取图像中的二维线段;
14.s 4:数据匹配:对于每一条二维线段,寻找与其对应的部分点云数据以及部分深度数据;
15.s5:三维线段拟合:对每一条二维线段,结合其对应的部分深度数据,为其对应的部分点云数据拟合出与其匹配的三维线段;
16.s6:三维场景重构:完成所有三维线段拟合后,根据不同三维线段之间的结构关系,处理得到交通场景的线性结构模型。
17.交通场景存在明显的线性特征:道路是线性的,建筑结构是线性的,树木和路标也是线性的等等。这就意味着采用视觉分析技术对交通场景进行场景重建时,应注意场景中线性特征,采用对线性结构具有良好的表达的方法应用到实际中。
18.本技术中提供的方法,对同一交通场景中摄录得到的图像信息,分别获取其二维线段以及点云数据,将二维线段与点云进行联系后,利用二维线段与点云之间的对应关系,反推二维线段在空间中的投影,拟合出三维线段,最终完成交通场景中线性结构重建。
19.采用这样的方式,将三维线段的获取过程与点云进行了联系,在系统前端不依赖于点特征或线特征的提取,而是针对点云进行深入的处理,通过分析常见的点云模型外在表现形式,选择利用线段表达模型中出现的线性结构,最终以输出三维线段,实现结构重建,此过程极大程度减少了计算量,降低了整个重建过程对设备计算能力的依赖,结合点云的三维线段生成过程也充分利用点云中各个点的信息,其表达场景信息更加完整,对场景中细节部分表现出更好的还原性。
20.进一步的,s1具体为:
21.s11:对指定交通场景摄录其连续图像,集合该交通场景的所有图像得到图像全集i:i={i1,
…in
},令ic表示图像全集i中的任一图像,则有
22.s12:从图像全集i中筛选出关键帧子集i

:i

={i
r-a
,

,i
r b
},令ir表示关键帧子集i

中的任一图像,则有
23.由于关键帧子集i

是从图像全集i中筛选出来的,则可知关键帧子集i

是图像全集i的一个子集,有
24.进一步的,s2具体为:
25.s21:对关键帧子集i

中所有图像进行处理,得到关键帧子集i

对应的点云p:p={p1,

,pi};
26.s22:对关键帧子集i

中所有图像进行处理,得到点云p对应的深度分布h:h={h1,

,hi}。
27.应用到具体实践中时,可采用视觉slam系统完成上述步骤,对指定交通场景摄录得到图像全集i后,将图像全集i输入到视觉slam系统中,由视觉slam系统进行半稠密点云建图,在半稠密点云建图的过程中,视觉slam系统将在图像全集i中的众多图像中筛选出关键帧子集i

,并进一步在该关键帧子集i

的基础上以局部建图的形式建立半稠密点云模
型,获得关键帧子集i

对应的点云p以及点云p对应的深度分布h。
28.应该强调,现有技术中还存在多种可以对图像进行处理得到点云数据和深度数据的方法,关于如何对指定交通场景摄录得到的图像全集i作出处理,得到关键帧子集i

、点云p以及深度分布h的具体方式,本领域技术人员可视具体情况采用特定算法完成,本技术中提供的技术方案并不对此要求保护。
29.进一步的,s3具体为:
30.s31:对于ic,采用边缘检测器对其进行边缘检测,检出ic中的二维线段,集合ic中所有二维线段,得到ic中二维线段组令表示ic的二维线段组中任一线段,则有
31.s32:重复s31直至图像全集i中所有图像均完成边缘检测,集合所有图像中的二维线段组,得到图像全集i对应的二维线段总集l
2d
:则有
32.进一步的,s31具体为:采用edlines算法对图像进行线段检测:
33.s311:求灰度图:对ic进行灰度处理后得到灰度图像;
34.s312:滤波:采用高斯滤波器用于抑制灰度图像中的噪声,高斯滤波器对该灰度图像进行滤波处理后,将得到平滑的灰度图像;
35.s313:求梯度图:计算该平滑的灰度图像中相邻像素点的梯度幅值以及梯度方向;
36.s314:求边缘像素链:检出梯度幅值为峰值的单个像素点作为锚,连接相邻的锚并绘制锚的边,得到边缘像素链e:e={e1,

,en};
37.s315:拟合直线:以最小二乘法对边缘像素链e中各个像素点作出直线拟合,拟合一条或多条直线段;边缘像素链e中包括有连续的多个像素点,具有一个像素的宽度,能够直观反映对象的边界性质,对其采用最小二乘法对像素线进行拟合时,将依次跟踪边缘像素链中的像素点,在前方待拟合的像素点的偏移量不超过某个设定阈值时沿用当前像素线拟合该像素点,在前方待拟合的像素点的偏移量超过设定阈值时产生新线段,然后对边缘像素链中剩余像素点进行递归处理直至全部像素点处理完成。
38.s316:线段验证:根据亥姆霍兹原理对s315中取得的直线段进行验证,集合ic中所有通过验证的直线段,即为ic中的二维线段组采用edlines算法对图像进行线段检测的方法不仅效率高、检测速度快、误报率低,相较于其他边缘检测器仅能输出二值边缘图,采用edlines算法对图像进行线段检测的方法还能直接输出边缘像素链及描绘该边缘像素链的二维线段组,应用在对交通场景中获取到的图像进行边缘检测的场合中时,将表现出优越的线段检测性能。
39.进一步的,s4具体为:
40.s41:由关键帧子集i

:i

={i
r-a
,

,i
r b
},根据其中筛选各个关键帧图像ir的时间戳,在图像全集i对应的二维线段总集l
2d
中,筛选出与ir一一对应的二维线段组,集合所有与ir对应的二维线段组,得到关键帧二维线段总集l

2d
:令表示关键帧二维线段总集l

2d
中任一二维线段组,则有令为二维线段组中任一二维线段,则有
41.关键帧子集i

实质上是图像全集i的一个子集,关键帧子集i

中的每一个元素即代表一帧关键帧图像,以下标记录每个关键帧图像的时间戳,则对应每一个时间戳,在二维线段总集l
2d
也将存在与该时间戳对应的二维线段组,该二维线段组即表示从该时间戳处筛出的关键帧图像中检出的所有二维线段;而所有与ir对应的二维线段组得到的关键帧二维线段总集l

2d
,即可得到关键帧子集i

中所有图像对应的二维线段,关键帧子集i

与关键帧二维线段总集l

2d
之间的相互匹配、一一对应的关系将为后续的三维线段拟合提供关键支撑。
42.s42:根据s41的匹配结果,对于二维线段找到该二维线段相匹配的部分点云数据以及部分深度数据;集合与二维线段匹配的所有点云数据,得到匹配的部分点云数据集合pr:集合与二维线段匹配的部分深度数据,得到匹配的所有深度数据集合hr:
43.进一步的,s5具体为:
44.s51:为二维线段构造坐标系;使得该二维线段该二维线段匹配的部分点云数据集合pr:以及到该二维线段匹配的所有深度数据集合hr:均落入坐标系中;为计算方便,建立坐标系时,应建立二维线段位于xoy平面中的直角坐标系,这样计算起来将最为简洁方便。
45.s52:根据二维线段以及与之匹配的深度数据集合hr,在空间中为与该二维线段匹配的部分点云数据集合pr中的点拟合三维直线段,得到当前二维线段对应的三维线段
46.s53:循环s31-s32直至为每一条二维线段拟合出其对应的三维线段集合所有三维线段得到三维线段总集l
3d
:其中,
47.经过s4后,对于关键帧子集i

中的每一帧图像中检出的每一条二维线段均已为其匹配出部分点云数据集合pr:以及深度数据集合hr:为其建立坐标系,则明显可见,二维线段位于二维平面内,与线段上的点一一对应的深度数据将作为中间已知量,联系二维线段和点云数据,根据二维线段走向,为与之匹配的位于三维空间中的点云数据拟合线段,所得三维线段即为需求的三维线段
48.进一步的,s52具体为:
49.s521:取二维线段任意两点为点k和点k 1,连接线段k(k 1);找到与点k和点k 1分别匹配的深度数据和以及与点k和点k 1分别匹配的点云数据和在这里,k为0、1、2、3
···

50.s522:连接和得到线段为当前拟合线;
51.s523:设置拟合角度阈值θ;
52.s524:在二维线段上取在k(k 1)外的一点k 2,找到与点k 2相匹配的深度数据和点云数据点k 2对应的点云数据为待拟合点;
53.s525:计算点相对于初始拟合线的偏移量θ
k 2
:将θ
k 2
与θ相比较,如存在θ
k 2
<θ,则判定待拟合点满足拟合条件,跳转s526;反之跳转s528;
54.对于当前拟合线而言,过做平行于线段k(k 1)的辅助线ρ,命当前拟合线与辅助线ρ所夹角度为θ1;则容易得到:根据反三角函数方便求得:
55.对于点存在两种情况:点相较于当前拟合线所在直线偏移量较大,或:点相较于当前拟合线所在直线偏移量较小:
56.当点相较于当前拟合线所在直线偏移量较大时:连接并过点平行于线段k(k 1)的辅助线ρ1,此时点位于辅助线ρ1的下方,命线段k(k 1)所在直线与辅助线ρ1所夹角度为θ2,容易看出,θ1与θ2为同位角,命与辅助线ρ1所夹角度为θ

,则有因此可以求得:与线段k(k 1)所在直线的夹角θ
k 2
可以由θ2和θ

共同求得:
57.当点相较于当前拟合线所在直线的偏移量较小时,连接并过点做平行于线段k(k 1)的辅助线ρ2,此时点位于辅助线ρ2的上方,命线段k(k 1)所在直线与辅助线ρ2所夹角度为θ2′
,容易看出,θ1与θ2′
为同位角,
命与辅助线ρ2所夹角度为θ

,则有因此可以求得:与线段k(k 1)所在直线的夹角θ
k 2
可以由θ2′
和θ

共同求得:
58.s526:连接点k 2与点做线段取线段所在直线与初始拟合线所在直线的交点延长初始拟合线至点得到线段为当前拟合线;
59.s527:循环s524-s526直至拟合完所有二维线段匹配的部分点云数据集合pr中所有的点;
60.s528:输出当前拟合线为二维线段对应的三维线段
61.本发明的优势在于:相比于现有技术,在本技术提供的基于视觉的交通场景线性结构重建方法应用到实际中时,其计算过程更加轻量化,能更好地还原交通场景中的线性特征,具有更好的场景表达能力。
附图说明
62.图1是具体实施方式中提供的基于视觉的交通场景线性结构重建方法的工作流程图。
63.图2是具体实施方式中提供的基于视觉的交通场景线性结构重建方法中为二维线段构造坐标系、拟合出与之对应的三维线段的示意图。
64.图3是采用具体实施方式中提供的基于视觉的交通场景线性结构重建方法对分布于空间中的部分点云数据拟合出三维线段的示意图。
65.图4是关键帧子集i

、关键帧二维线段总集l

2d
、二维线段总集l
2d
、点云数据p和深度数据h之间的对应关系示意图。
66.图5是当点相较于当前拟合线所在直线偏移量较大时,三维线段的具体拟合示意图。
67.图6是当点相较于当前拟合线所在直线偏移量较小时,三维线段的具体拟合示意图。
具体实施方式
68.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
69.为实现上述目的,本发明的技术方案如下:
70.请参阅图1-3。
71.在本具体实施方式中提供一种基于视觉的交通场景线性结构重建方法,该方法包括有:
72.一种基于视觉的交通场景线性结构重建方法,该方法包括有:
73.s1:获取图像:基于指定交通场景,获取该交通场景的图像信息;
74.s2:获取点云及深度分布:基于指定交通场景的图像信息,获取点云数据及深度分布数据;
75.s3:获取二维线段:基于指定交通场景的图像信息,获取图像中的二维线段;
76.s4:数据匹配:对于每一条二维线段,寻找与其对应的部分点云数据以及部分深度数据;
77.s5:三维线段拟合:对每一条二维线段,结合其对应的部分深度数据,为其对应的部分点云数据拟合出与其匹配的三维线段;
78.s6:三维场景重构:完成所有三维线段拟合后,根据不同三维线段之间的结构关系,处理得到交通场景的线性结构模型。
79.进一步的,在本具体实施方式中,s1具体为:
80.s11:对指定交通场景摄录其连续图像,集合该交通场景的所有图像得到图像全集i:i={i1,
…in
},令ic表示图像全集i中的任一图像,则有
81.s12:从图像全集i中筛选出关键帧子集i

:i

={i
r-a
,

,i
r b
},令ir表示关键帧子集i

中的任一图像,则有
82.由于关键帧子集i

是从图像全集i中筛选出来的,则可知关键帧子集i

是图像全集i的一个子集,有
83.进一步的,s2具体为:
84.s21:对关键帧子集i

中所有图像进行处理,得到关键帧子集i

对应的点云p:p={p1,

,pi};
85.s22:对关键帧子集i

中所有图像进行处理,得到点云p对应的深度分布h:h={h1,

,hi}。
86.进一步的,在本具体实施方式中,s3具体为:
87.s31:对于ic,采用边缘检测器对其进行边缘检测,检出ic中的二维线段,集合ic中所有二维线段,得到ic中二维线段组令表示ic的二维线段组中任一线段,则有
88.s32:重复s31直至图像全集i中所有图像均完成边缘检测,集合所有图像中的二维线段组,得到图像全集i对应的二维线段总集l
2d
:则有
89.进一步的,在本具体实施方式中,s31具体为:采用edlines算法对图像进行线段检测:
90.s311:求灰度图:对ic进行灰度处理后得到灰度图像;
91.s312:滤波:采用高斯滤波器用于抑制灰度图像中的噪声,高斯滤波器对该灰度图像进行滤波处理后,将得到平滑的灰度图像;
92.s313:求梯度图:计算该平滑的灰度图像中相邻像素点的梯度幅值以及梯度方向;
93.s314:求边缘像素链:检出梯度幅值为峰值的单个像素点作为锚,连接相邻的锚并绘制锚的边,得到边缘像素链e:e={e1,

,en};
94.s315:拟合直线:以最小二乘法对边缘像素链e中各个像素点作出直线拟合,拟合一条或多条直线段;
95.s316:线段验证:根据亥姆霍兹原理对s315中取得的直线段进行验证,集合ic中所有通过验证的直线段,即为ic中的二维线段组
96.进一步的,在本具体实施方式中,s4具体为:
97.s41:由关键帧子集i

:i

={i
r-a
,

,i
r b
},根据其中筛选各个关键帧图像ir的时间戳,在图像全集i对应的二维线段总集l
2d
中,筛选出与ir一一对应的二维线段组,集合所有与ir对应的二维线段组,得到关键帧二维线段总集l

2d
:令表示关键帧二维线段总集l

2d
中任一二维线段组,则有令为二维线段组中任一二维线段,则有
98.关键帧子集i

实质上是图像全集i的一个子集,关键帧子集i

中的每一个元素即代表一帧关键帧图像,以下标记录每个关键帧图像的时间戳,则对应每一个时间戳,在二维线段总集l
2d
也将存在与该时间戳对应的二维线段组,该二维线段组即表示从该时间戳处筛出的关键帧图像中检出的所有二维线段;而所有与ir对应的二维线段组得到的关键帧二维线段总集l

2d
,即可得到关键帧子集i

中所有图像对应的二维线段,关键帧子集i

与关键帧二维线段总集l

2d
之间的相互匹配、一一对应的关系将为后续的三维线段拟合提供关键支撑。
99.s42:根据s41的匹配结果,对于二维线段找到该二维线段相匹配的部分点云数据以及部分深度数据;集合与二维线段匹配的所有点云数据,得到匹配的部分点云数据集合pr:集合与二维线段匹配的部分深度数据,得到匹配的所有深度数据集合hr:
100.进一步的,在本具体实施方式中,s5具体为:
101.s51:为二维线段构造坐标系;使得该二维线段该二维线段匹配的部分点云数据集合pr:以及到该二维线段匹配的所有深度数据集合hr:均落入坐标系中;为计算方便,建立坐标系时,应建立二维线段位于xoy平面中的直角坐标系,这样计算起来将最为简洁方便。
102.s52:根据二维线段以及与之匹配的深度数据集合hr,在空间中为与该二维线段匹配的部分点云数据集合pr中的点拟合三维直线段,得到当前二维线段对应的三维线段
103.s53:循环s31-s32直至为每一条二维线段拟合出其对应的三维线段集合所有三维线段得到三维线段总集l
3d
:其中,
104.请参阅图4:经过s4后,对于关键帧子集i

中的每一帧图像中检出的每一条二维线段均已为其匹配出部分点云数据集合pr:以及深度数据集合hr:为其建立坐标系,则明显可见,二维线段位于二维平面内,与线段上的点一一对应的深度数据将作为中间已知量,联系二维线段和点云数据,根据二维线段走向,为与之匹配的位于三维空间中的点云数据拟合线段,所得三维线段即为需求的三维线段
105.由于关键帧子集i

是从图像全集i中筛选出来的,则可知关键帧子集i

是图像全集i的一个子集,有而由于关键帧二维线段总集l

2d
是在二维线段总集l
2d
中,依据关键帧图像ir的时间戳筛选得到的,因此有又因为,点云p以及深度分布h均是由关键帧子集i

中所有图像进行处理得到的,因此有:关键帧子集i

与点云p之间存在对应关系,点云p与关键帧二维线段总集l

2d
之间存在对应关系,关键帧二维线段总集l

2d
与二维线段总集l
2d
之间存在包含与被包含关系,且关键帧二维线段总集l

2d
与关键帧子集i

之间同样存在对应关系。
106.请参阅图5。
107.在其中一种情况下,s52具体为:
108.s521:取二维线段任意两点为点k和点k 1,连接线段k(k 1);找到与点k和点k 1分别匹配的深度数据和以及与点k和点k 1分别匹配的点云数据和在这里,k为0、1、2、3
···

109.s522:连接和得到线段为当前拟合线;
110.s523:设置拟合角度阈值θ;
111.s524:在二维线段上取在k(k 1)外的一点k 2,找到与点k 2相匹配的深度数据和点云数据点k 2对应的点云数据为待拟合点;
112.s525:计算点相对于初始拟合线的偏移量θ
k 2
:将θ
k 2
与θ相比较,如存在θ
k 2
<θ,则判定待拟合点满足拟合条件,跳转s526;反之跳转s528;
113.对于当前拟合线而言,过做平行于线段k(k 1)的辅助线ρ,命当前拟合线辅助线ρ所夹角度为θ1;则容易得到:根据反三角函数方便求得:
114.对于点当点相较于当前拟合线所在直线偏移量较大时:连接并过点做平行于线段k(k 1)的辅助线ρ1,此时点位于辅助线ρ1的下方,命线段k(k 1)所在直线与辅助线ρ1所夹角度为θ2,容易看出,θ1与θ2为同位角,命与辅助线ρ1所夹角度为θ

,则有因此可以求得:与线段k(k 1)所在直线的夹角θ
k 2
可以由θ2和θ

共同求得:
115.请参阅图6。
116.在另一种情况下,s52具体为:
117.s521:取二维线段任意两点为点k和点k 1,连接线段k(k 1);找到与点k和点k 1分别匹配的深度数据和以及与点k和点k 1分别匹配的点云数据和在这里,k为0、1、2、3
···

118.s522:连接和得到线段为当前拟合线;
119.s523:设置拟合角度阈值θ;
120.s524:在二维线段上取在k(k 1)外的一点k 2,找到与点k 2相匹配的深度数据和点云数据点k 2对应的点云数据为待拟合点;
121.s525:计算点相对于初始拟合线的偏移量θ
k 2
:将θ
k 2
与θ相比较,如存在θ
k 2
<θ,则判定待拟合点满足拟合条件,跳转s526;反之跳转s528;
122.对于当前拟合线而言,过做平行于线段k(k 1)的辅助线ρ,命当前拟合线与辅助线ρ所夹角度为θ1;则容易得到:根据反三角函数方便求得:
123.对于点当点相较于当前拟合线所在直线的偏移量较小时,连接并过点做平行于线段k(k 1)的辅助线ρ2,此时点位于辅助线ρ2的上方,命
线段k(k 1)所在直线与辅助线ρ2所夹角度为θ2′
,容易看出,θ1与θ2′
为同位角,命与辅助线ρ2所夹角度为θ

,则有因此可以求得:与线段k(k 1)所在直线的夹角θ
k 2
可以由θ2′
和θ

共同求得:
124.s526:连接点k 2与点做线段取线段所在直线与初始拟合线所在直线的交点延长初始拟合线至点得到线段为当前拟合线;
125.s527:循环s524-s526直至拟合完所有二维线段匹配的部分点云数据集合pr中所有的点;
126.s528:输出当前拟合线为二维线段对应的三维线段
127.以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献