
1.本技术涉及视觉定位技术领域,特别涉及一种视觉定位方法、装置及智能车辆。
背景技术:2.视觉定位是一种新型的定位技术,通过图像采集设备采集环境图像,提取视觉特征点并进行追踪,从而计算当前设备的运动轨迹,进一步推算出当前设备的位姿,具有低成本、高精度、易使用等优点,越来越多的应用于无人驾驶领域。
3.在进行视觉定位时,通常需要对图像进行特征提取与特征匹配,以计算位姿。然而,多数视觉定位方法在移动数公里后,会出现定位漂移现象,影响定位的精确度,对估计当前设备的位置造成较大误差。
技术实现要素:4.本技术实施方式主要解决的技术问题是提供一种视觉定位方法、装置及智能车辆,以解决智能车辆在视觉定位时,出现的定位漂移现象对车辆定位造成的不良影响,通过减小定位偏差,提高车辆定位精度。
5.第一方面,本技术实施例提供了一种视觉定位方法,所述方法包括:
6.获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图;
7.提取所述二值图中的真实地面路标的角点;
8.获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点;
9.将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。
10.在一些实施例中,所述将所述完整地面路标进行分割,包括:
11.将所述包括完整地面路标的图像中的完整地面路标通过识别框完整框出,获得包含完整地面路标的最小矩形图像;
12.对所述最小矩形图像进行图像二值化处理得到二值图。
13.在一些实施例中,所述提取所述二值图中的真实地面路标的角点,包括:
14.掩膜所述二值图中所述地面路标的若干条边,根据所述若干条边分别构建像素点集;
15.根据所述像素点集构建直线方程;
16.根据所述直线方程得到所述直线方程所在的直线;
17.通过所述直线将识别到的掩膜区域进行包围;
18.根据包围区域求解所述直线的交点,所述交点的坐标记为真实地面路标的角点。
19.在一些实施例中,所述根据所述像素点集构建直线方程,包括:
20.以所述像素点集中的每个点为圆心,选取可调半径,构建直线方程。
21.在一些实施例中,所述像素点集中各像素点距离所述直线的距离之和小于可调参数。
22.在一些实施例中,所述通过所述直线将识别到的掩膜区域进行包围,包括:
23.识别距离所述直线最近的所述像素点作为掩膜边缘,所述掩膜边缘用于包围所述掩膜区域。
24.在一些实施例中,所述方法还包括:
25.获取所述相机采集的初始图像;
26.判断所述初始图像中地面路标是否完整;
27.若否,则调用imu和轮式里程计的数据,并根据所述数据输出局部定位结果。
28.在一些实施例中,所述将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,包括:
29.获得估算地面路标的几何中心和真实地面路标的几何中心;
30.将所述估算路标的几何中心和所述真实地面路标的几何中心对齐;
31.基于所述几何中心通过kd树搜索最近点对;
32.将所述估算地面路标的角点与所述真实地面路标的角点进行点对点匹配。
33.第二方面,本技术实施例中提供了一种视觉定位装置,包括:
34.获取模块,用于获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图;
35.提取模块,用于提取所述二值图中的真实地面路标的角点;
36.估算模块,用于获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点;
37.匹配模块,用于将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。
38.第三方面,本技术实施例中提供了一种智能车辆,包括:
39.相机;
40.至少一个处理器,所述相机与所述至少一个处理器通信连接;
41.以及与所述至少一个处理器通信连接的存储器;
42.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述方法。
43.本技术实施例的有益效果:区别于相关技术的情况,本技术实施例提供的视觉定位方法、装置及智能车辆,通过获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图,提取所述二值图中的真实地面路标的角点,获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点,将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。本技术以解决智能车辆在行驶时,视觉定位系统出现的定位漂移现象,影响视觉定位精度,通过对估算的地面路标角点与真实的地面路标角点进行匹配,利用迭代方法对相机的位姿进行优化,不断的矫正真实的相机和估算的相机的位姿偏差,使得获得的当前时刻的相机的位姿更准确,智能车辆的定位精度更高。
附图说明
44.一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
45.图1是本技术实施例提供的视觉定位方法的应用环境示意图;
46.图2是本技术实施例提供的一种视觉定位方法的流程示意图;
47.图3是本技术实施例提供的一种完整地面路标分割得到的二值图的示意图;
48.图4是本技术实施例提供的一种提取地面路标角点示意图;
49.图5是本技术实施例提供的一种角点匹配的示意图;
50.图6是本技术实施例提供的一种视觉定位装置结构示意图;
51.图7是本技术实施例提供的一种智能车辆的结构示意图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
53.需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互组合,均在本技术的保护范围之内。另外,虽然在装置示意图中进行了功能模块的划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
54.除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。在本技术的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本技术。
55.此外,下面所描述的本技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
56.请参阅图1,图1是本技术实施例提供的视觉定位方法的应用环境示意图,如图1所示,应用环境包括:有限区域行驶的道路10、道路中的地面路标图像11及智能车辆20。
57.智能车辆20上安装有相机,用于采集智能车辆在行驶过程中的环境图像,例如,周围的建筑、地面路标图像11等,通过采集的环境图像,提取视觉特点并进行追踪,从而得到智能车辆的运动轨迹以及位姿信息。但是,由于光照或者季节性的外观改变在一定程度上影响图像的感知,估计出来的智能车辆的位姿信息和实际行驶的位姿会存在较大的误差,出现定位漂移现象,影响定位精确度。
58.本技术实施例中,有限区域行驶的道路10为一定封闭区域范围内的道路,例如,港口、码头、停车场、景区等。
59.本技术实施例中,智能车辆包括不限于搬运车辆、监控车辆或者清扫车辆。
60.智能车辆在正常行驶中,由于外界环境或者相机自身的原因,造成的定位漂移现象,影响定位的精确度。针对以上问题,本技术实施例提供一种视觉定位方法,用以提高智能车辆的定位精度。
61.具体地,请参阅图2,图2是本技术实施例提供的一种视觉定位方法的流程示意图,
该方法包括以下步骤:
62.步骤s1:获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图。
63.地面路标是指在路面上预先喷涂的特定形状的路标。例如,菱形、长方形、三角形和正方形,地面路标的形状多为规则的有可用于匹配的角点,喷涂的路标颜色为与地面区分度大的颜色,例如白色、黄色等颜色。
64.地面路标设置的密度取决于智能车辆本身的配置,若智能车辆无其它传感器,例如,激光雷达等,则地面路标的密度会更大,地面路标的数量设置的会更多一些,例如每10米或15米喷涂一个地面路标,而且需要保证智能车辆在运动的过程中,相机始终能够观测到完整的地面路标;若智能车辆有其它传感器,例如,激光雷达,能提供无地面路标时的运动状态的估计数据,则地面路标设置的密度可以适当放宽,例如,每20米或30米喷涂一个地面路标。
65.当相机采集到完整的地面路标地图时,通过深度神经网络算法mask-rcnn对完整的地面路标进行分割,输出结果为一张二值图片。
66.二值图是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,也就是说,图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。
67.在一些实施例中,将所述完整地面路标进行分割,包括:将所述包括完整地面路标的图像中的完整地面路标通过识别框完整框出,获得包含完整地面路标的最小矩形图像;对所述最小矩形图像进行图像二值化处理得到二值图。
68.请参阅图3,图3是本技术实施例提供的一种完整地面路标分割得到的二值图的示意图,如图3(a)所示,将相机获取的完整地面路标32通过识别框31完整的框出,获得包含完整地面路标的最小矩形图像,结合图3(b),将最小矩形图像进行图像二值化处理,具体地,提取出像素级的完整地面路标,地面路标部分的像素值为1,其它部分的像素值为0,可以输出一张二值图片,其中,像素值为1的白色识别区域为地面路标识别到的被掩膜区域。
69.需要说明的是,在进行视觉定位之前,为了达到厘米级别的定位精度,需要先建立地面路标地图,地面路标地图中保存有地面路标的位置信息,并且以地面路标的规定的角点的坐标值形式进行存储。例如,当地面路标图形为菱形时,规定的角点可为菱形的四个顶点,当地面路标图形为三角形时,规定的角点可以为三角形的三个顶点。
70.创建地面路标地图的方式是在有限行驶区域的全局坐标系中,使用全站仪对地面路标中规定的角点进行测量,将有限行驶区域内所有地面路标的规定角点的坐标值以定义好的格式进行存储即可。
71.当智能车辆系统启动后,通过其它传感器,例如,全球定位系统,或者本地历史记录获得的智能车辆起始位置的坐标,启动地面路标的识别程序,当检测到地面路标被完整的识别出来时,地面路标的分割程序启动。
72.在一些实施例中,所述方法还包括:获取所述相机采集的初始图像,判断所述初始图像中地面路标是否完整,若否,则调用imu和轮式里程计的数据,并根据所述数据输出局部定位结果。
73.当智能车辆距离地面路标的距离较远时,或者外界环境的干扰,相机在一段时间内没有采集到完整的地面路标,系统调用imu和轮式里程计的数据,根据智能车辆的起始位
置,行驶时间等参数,进行局部定位结果输出。
74.通过对智能车辆进行局部定位结果输出,可以及时矫正智能车辆的行车位置,防止智能车辆在行驶的过程中与指定的行车路径有较大的偏移。通过及时对智能车辆进行调整,以更好的采集完整的地面路标。
75.步骤s2:提取所述二值图中的真实地面路标的角点。
76.真实地面路标的角点是指相机实时采集的完整路标的角点,需要说明的是,从二值图中提取的该角点为像素点。
77.在一些实施例中,提取所述二值图中的真实地面路标的角点,包括:掩膜所述二值图中所述地面路标的若干条边,根据所述若干条边分别构建像素点集,根据所述像素点集构建直线方程,根据所述直线方程得到所述直线方程所在的直线,通过所述直线将识别到的掩膜区域进行包围,根据包围区域求解所述直线的交点,所述交点的坐标记为真实地面路标的角点。
78.在一些实施例中,所述根据所述像素点集构建直线方程,包括:以所述像素点集中的每个点为圆心,选取可调半径,构建直线方程。
79.在一些实施例中,所述像素点集中各像素点距离所述直线的距离之和小于可调参数。
80.在一些实施例中,所述通过所述直线将识别到的掩膜区域进行包围,包括:识别距离所述直线最近的所述像素点作为掩膜边缘,所述掩膜边缘用于包围所述掩膜区域。
81.由于图像分辨率、网络识别精度、训练数据集的质量等各种原因,识别到的二值图中地面路标边缘不完全光滑,无法提供准确的真实地面路标的角点像素坐标,因此本技术设计了一种线性拟合的方法,具体地,请参阅图4,图4是本技术实施例提供的一种提取地面路标角点示意图,其中,地面路标为菱形,如图4(a),掩膜二值图中地面路标的四条边,根据掩膜的四条边分别构建一个像素点集k(点集中点的总数为n),该像素点集包含相邻像素同时存在0和1的像素点。以像素点集中的每个点k为圆心,选取可调半径l,构建直线方程,使得像素点集中各像素点距离直线的距离之和小于可调参数d,直线方程为:
[0082][0083][0084]
其中,s.t.是一种数学符号,表示受限制于,具体地,是的约束条件,可以理解为像素点集中各像素点与直线的距离之和小于可调参数d时,求解各像素点与直线的距离之和的平均值的最小值。
[0085]
其中,a、b、c是构成直线的方程参数,k是像素点集,n是像素点集的个数,k为圆心,
l是半径,d是可调参数。
[0086]
如果该菱形一条边的参数a、b、c满足上述公式,则根据直线方程得到直线方程所在的直线,基于同样的方法,可以得出菱形的四条边的直线方程所在直线,结合图4(b),通过以上直线将识别到的掩膜区域进行包围,即为p
2 p
1 p
4 p3所在区域,其中,边缘掩膜上的像素点到这四条对应直线的距离最短,根据包围区域求解直线的交点,也即为p2点、p1点、p4点、p2点,以上交点为所要提取的角点,交点的坐标记为真实地面路标的角点的坐标。
[0087]
步骤s3:获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点。
[0088]
其中,历史位姿为相对于当前智能车辆的位姿,通过智能车辆的前一个历史位置和地面路标地图,当前位置和前一个历史位置的时间间隔和朝向,根据imu和轮式里程计,可以估算出当前地面路标的角点。
[0089]
步骤s4:将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。
[0090]
在一些实施例中,所述将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,包括:
[0091]
获得估算地面路标的几何中心和真实地面路标的几何中心;
[0092]
将所述估算路标的几何中心和所述真实地面路标的几何中心对齐;
[0093]
基于所述几何中心通过kd树搜索最近点对;
[0094]
将所述估算地面路标的角点与所述真实地面路标的角点进行点对点匹配。
[0095]
将估算地面路标的角点与真实地面路标的角点进行匹配,是利用地面路标的角点与真实地面路标的角点进行像素点之间的两两匹配,通过迭代的方法对每一次相机的位姿进行优化,不断的矫正真实的相机和估算的相机的位姿偏差,可计算出当前相机的位姿。
[0096]
具体的计算方法为:构建的最大似然估计方程,求解系统状态向量x,系统状态向量包含系统当前的运动信息,如位置、速度、相机外参等,使得构建的误差方程最小,即为当前状态下的最优解,该最大似然估计方程为:
[0097][0098]
其中,x是系统的状态向量,f(x)
α
是连续关键帧之间极线约束的误差方程,f(x)
θ
是连续关键帧之间重投影误差与地面路标的误差方程,f(x)
φ
是轮式里程计预积分的误差方程。
[0099]
其中,f(x)
θ
部分可以被如下方程描述,该方程表示为:
[0100][0101][0102]
其中,i是检测到的地面路标的个数,j为地面路标角点的个数,k是相机内参,e是
真实地面路标的几何中心到相机的距离,是重投影方程,p是相机平面上追踪的像素点,p是世界坐标系下地面路标的角点,m是相机的数量,m是相机的序号,r是旋转变换,t是位移变换。
[0103]
请参阅图5,图5是本技术实施例提供的一种角点匹配的示意图,如图5所示,相机42为真实世界中的相机的位姿,相机41为根据历史位姿和地面路标地图估算出来的相机的位姿,菱形52为真实的地面路标,菱形51为根据估算的相机的位姿估算出的地面路标,将估算地面路标51的几何中心m和真实地面路标52的几何中心m对齐,基于对齐后的几何中心,通过kd树搜索最近的点对,将估算地面路标的角点与真实地面路标的角点进行点对点匹配,即为r1和r1匹配,r2和r2匹配,r3和r3匹配,r4和r4匹配,利用迭代的方法对每一次相机的位姿进行优化,不断的矫正真实的相机和估算的相机的位姿偏差,可准确计算出当前相机的位姿。
[0104]
综上,本技术实施例提供的视觉定位方法,通过获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图,提取所述二值图中的真实地面路标的角点,获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点,将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。本技术以解决智能车辆在行驶时,视觉定位系统出现的定位漂移现象,影响视觉定位精度,通过对估算的地面路标角点与真实的地面路标角点进行匹配,利用迭代方法对相机的位姿进行优化,不断的矫正真实的相机和估算的相机的位姿偏差,使得获得的当前时刻的相机的位姿更准确,智能车辆的定位精度更高。
[0105]
请参阅图6,图6是本技术实施例提供的一种视觉定位装置结构示意图,该装置100包括:获取模块101、提取模块102、估算模块103和匹配模块104。
[0106]
其中,获取模块101,用于获取相机采集的包括完整地面路标的图像,将所述包括完整地面路标的图像进行分割,获得二值图。提取模块102,用于提取所述二值图中的真实地面路标的角点。估算模块103,用于获取所述相机的历史位姿和地面路标地图,根据所述历史位姿和所述地面路标地图,获得估算地面路标的角点。匹配模块104,用于将所述估算地面路标的角点与所述真实地面路标的角点进行匹配,获得当前所述相机的位姿。
[0107]
具体地,获取模块101包括第一识别单元和处理单元,所述第一识别单元用于将所述包括完整地面路标的图像中的完整地面路标通过识别框完整框出,获得包含完整地面路标的最小矩形图像,所述处理单元用于对所述最小矩形图像进行图像二值化处理得到二值图。
[0108]
提取模块102包括掩膜单元、构建单元、第二识别单元和求解单元,所述掩膜单元用于掩膜所述二值图中所述地面路标的若干条边,根据所述若干条边分别构建像素点集,所述构建单元用于根据所述像素点集构建直线方程,根据所述直线方程得到所述直线方程所在的直线,所述第二识别单元用于通过所述直线将识别到的掩膜区域进行包围,所述求解单元用于根据包围区域求解所述直线的交点,所述交点的坐标记为真实地面路标的角点。
[0109]
其中,根据所述像素点集构建直线方程,包括:以所述像素点集中的每个点为圆心,选取可调半径,构建直线方程。所述像素点集中各像素点距离所述直线的距离之和小于
可调参数。
[0110]
通过所述直线将识别到的掩膜区域进行包围,包括:识别距离所述直线最近的所述像素点作为掩膜边缘,所述掩膜边缘用于包围所述掩膜区域。
[0111]
在一些实施例中,视觉定位装置100还包括处理模块和判断模块,所述处理模块用于获取所述相机采集的初始图像,所述判断模块用于判断所述初始图像中地面路标是否完整;若否,则调用imu和轮式里程计的数据,并根据所述数据输出局部定位结果。
[0112]
匹配模块104包括获得单元、对齐单元、搜索单元和匹配单元,所述获取单元用于获得估算地面路标的几何中心和真实地面路标的几何中心,所述对齐单元用于将所述估算路标的几何中心和所述真实地面路标的几何中心对齐,所述搜索单元用于基于所述几何中心通过kd树搜索最近点对,所述匹配单元用于将所述估算地面路标的角点与所述真实地面路标的角点进行点对点匹配。
[0113]
在本技术实施例中,视觉定位装置亦可以由硬件器件搭建成的,例如,视觉定位可以由一个或两个以上的芯片搭建而成,各个芯片可以互相协调工作,以完成上述各个实施例所阐述的应用于视觉定位方法。再例如,视觉定位装置还可以由各类逻辑器件搭建而成,诸如由通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acorn risc machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合而搭建成。
[0114]
本技术实施例中的视觉定位装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
[0115]
需要说明的是,本技术实施例中的一种视觉定位装置中的各个模块、单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,具体内容同样适用于视觉定位的装置。本技术实施例中的各个模块能作为单独的硬件或软件来实现,并且可以根据需要使用单独的硬件或软件来实现各个单元的功能的组合。
[0116]
本技术还提供了一种智能车辆,请参阅图7,图7是本技术实施例提供的一种智能车辆的结构示意图。该智能车辆200包括相机203,至少一个处理器201,所述相机203与所述至少一个处理器201通信连接,以及与所述至少一个处理器201通信连接的存储器202,其中,所述存储器202存储有可被所述至少一个处理器201执行的指令,所述指令被所述至少一个处理器201执行,以使所述至少一个处理器201能够执行上述任意方法实施例中的视觉定位方法。所述处理器201和所述存储器202可以通过总线或者其他方式连接,图7中以通过总线连接为例。
[0117]
处理器201可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、硬件芯片或者其任意组合;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
[0118]
存储器202作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非
暂态性计算机可执行程序以及模块,如本技术实施例中的视觉定位方法对应的程序指令/模块。处理器201通过运行存储在存储器202中的非暂态软件程序、指令以及模块,可以实现上述任一方法实施例中的视觉定位方法,即能够实现图2的整个过程。
[0119]
本技术实施例提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的视觉定位方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cdrom)、磁带、软盘和光数据存储设备等。
[0120]
本技术实施例提供了一种计算机程序产品,该计算机程序产品包括一条或多条程序代码,该程序代码存储在计算机可读存储介质中。智能车辆的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,以完成上述实施例中提供的视觉定位方法步骤。
[0121]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。