本发明涉及一种高效的星载双目视觉slam前端设计方法,属于星上信息处理和机器视觉领域。
背景技术:
1、随着空间机器人技术的不断发展,机器视觉作为当下研究热点之一,在深空探测领域的应用呈现出快速发展趋势。通过机器视觉技术,空间探测机器人能够根据星表地理特征自动规划前进路线、自主避障,进而更好的完成探测任务。然而相比于经典设计方法,适于航天器工程实现的机器视觉技术必须考虑星载处理器存储资源、计算能力和功耗等诸多方面的限制。如何能够在有限的资源条件下设计出性能良好的机器视觉系统成为当下星载机器视觉的研究难点之一。
2、基于特征点法的slam(simultaneous localization and mapping,即时定位与地图构建)前端是一种较为成熟的设计方法,其优势在于对环境光照变化、相机运动幅度等因素具有较强的鲁棒性。考虑到深空天体表面光源单一、阴影较多且纹理不明显的特点,特征点法较之于光流法或直接法更加适用于深空探测任务。
3、当前,包括sift(scale-invariant feature transform,尺度不变特征变换)特征在内的较为完备的特征描述方法计算量极大,很难做到实时处理,且在实现过程中大多依赖大规模fpga或gpu加速,其计算过程复杂、计算开销大的问题与星载设备算力紧张、存储空间受限、器件功耗要求严格等问题形成了尖锐的矛盾。相比于sift特征,orb(orientedfast and rotated brief)特征适当降低了计算精度和鲁棒性、兼顾了计算的实时性,采用带有方向的fast检测点解决了旋转不变性的问题,结合计算速度极快的brief描述子大大提高了特征提取和匹配环节的计算速度。考虑到星载计算资源和功耗的限制,orb特征较为适用于星载slam系统。然而星上slam系统往往由于光源单一,形成的图像阴影区大、纹理特征不明显,此时经典的orb特征仍需占用大量的存储和计算资源。解决星载slam系统复杂度与星上存储资源、算力资源之间的矛盾,成为当前面临的问题。
技术实现思路
1、本发明的技术解决问题是:克服现有技术的不足,提供了一种高效的星载双目视觉slam前端设计方法,解决星载slam系统复杂度与星上存储资源、算力资源之间的矛盾。
2、本发明的技术解决方案是:
3、一种高效的星载双目视觉slam前端设计方法,包括:
4、步骤1:以星载双目相机图像作为输入的原始图像,首先对原始图像建立插值金字塔模型;
5、步骤2:进行边缘处理,将第r层图像边缘像素清零;
6、步骤3:对第r层图像插值后的各层图像进行fast12预筛选,得到角点;
7、步骤4:对筛选出的角点周围的一块区域进行行列和差滤波;
8、步骤5:对滤波后的序列进行harris预响应筛选,保留响应最强烈的特征点;
9、步骤6:重复步骤1至步骤5,得到金字塔内所有层的特征点集合,至此特征点提取完成;
10、步骤7:计算每个特征点位于原点的特征矩;
11、步骤8:计算hamming255-brief描述子;
12、步骤9:通过描述子之间的相似程度完成特征匹配。
13、进一步的,建立插值金字塔模型,缩放因子为f>1,金字塔层数为n≥2,原始图像记为i,其中坐标为(u,v)的像素其值记为i(u,v);
14、对第r层金字塔,计算缩放值f(r):
15、f(r)=fr (1)
16、则第r层金字塔中的某个像素ir(j,k)与原始图像中像素i(u,v)的坐标映射关系描述为:
17、(u,v)t=f(r)· (j,k)t (2)
18、令计算得到的坐标(u,v)t其整数部分为(ui,vi)t,计算插值金字塔模型下的像素值ir(j,k):
19、ir(j,k)=(ui-u+1)(vi-v+1)i(ui,vi)+(u-ui)(vi-v+1)i(ui+1,vi)+(ui-u+1)(v-vi)i(ui,vi+1)+(u-ui)(v-vi)i(ui+1,vi+1)(3)。
20、进一步的,所述对第r层图像插值后的各层图像进行fast12预筛选,得到角点,具体为:
21、提取fast12角点,对第r层图像插值后的每个像素点ir(j,k)进行筛选,采用fast12方法,得到的角点记为:
22、pff(r,j,k)=ir(j,k)。 (4)
23、进一步的,所述对筛选出的角点周围的一块区域进行行列和差滤波,具体为:
24、设置行列和差算子,在第r层金字塔中取以角点pff(r,j,k)为中心边长为2a+1的正方形区域,a≥1,该区域的行、列作为滤波输入进行行列和差滤波;
25、按照行/列对第r层图像进行和差滤波,滤波过程记作conv(·),则第r层图像中像素行/列序列sr(j,k)经过行/列方向的滤波后的序列为:
26、srx(j,k)=conv(hx,sr(j,k))=ir(j-1,k)-ir(j+1,k)
27、sry(j,k)=conv(hy,sr(j,k))= ir(j,k-1)- ir(j,k+1) (5)
28、其中,hx为行算子和hy为列算子。
29、进一步的,进行行列和差滤波时,行算子hx和列算子hy分别为:
30、hx=[1,0,-1]
31、hy=hxt= [1,0,-1]t (6-1)
32、或者
33、hx=[1,2,0,-2,-1]
34、hy= [1,2,0,-2,-1]t (6-2)
35、即算子模长为3或模长为5。
36、进一步的,所述对滤波后的序列进行harris预响应筛选,保留响应最强烈的特征点,具体为:
37、计算像素二阶矩,经过滤波后像素二阶矩:
38、行方向二阶矩为:
39、mx(j,k)=srx(j,k)*srx(j,k) (7)
40、列方向二阶矩为:
41、my(j,k)=sry(j,k)* sry(j,k) (8)
42、协二阶矩为:
43、ms(j,k)=srx(j,k)* sry(j,k) (9)
44、计算角点pff(r,j,k)的harris响应为:
45、
46、其中mx、my、ms由公式(7)-(9)给出,w(x,y)为窗口函数;k为比例系数,det、trace分别为矩阵的行列式和迹;选取harris响应最强烈的特征点作为特征匹配输入,记为pfh(r,j,k)。
47、进一步的,所述步骤7计算每个特征点位于原点的特征矩,具体为:
48、若特征点pfh(r,j,k)为中心的边长为2a+1的正方形图像块表示为b(a)|{pfh(r,j,k)},将其平移至以原点为中心的图像块b′(a)|{pfh(r,0,0)}时,对b′(a)中的像素ir(x,y)有:
49、
50、即按照pfh(r,j,k)所在的正方形区域,归一化至原点区域,则全部像素点坐标满足约束:
51、
52、图像块b(a)与b′(a)的特征矩相同;
53、特征点方向角θr(j,k)的正切值定义为x、y方向特征矩的比值,利用原点对称性减少乘加次数,由(13)简化为(14):
54、
55、第二方面,本发明还提出一种非易失性存储介质,包括:计算机程序产品,当所述计算机程序产品被执行时执行上述所述的方法。
56、第三方面,本发明还提出一种计算机程序产品,该计算机程序产品被处理器执行时实现所述方法的步骤。
57、本发明与现有技术相比的有益效果是:
58、(1)本发明提出的设计方法能够显著降低星载slam系统在存储空间、计算时间等方面的开销,为航天机器人智能化提供一种可行的工程实现途径,同时也为深空探测机器人设计提供可行的设计思路。
59、(2)本发明提出的一种高效的星载双目视觉slam前端的设计方法,能够有效解决经典方法难以在星载处理器上实现的问题,是一种适用于航天器工程化的设计方法。
60、(3)本发明提出一种高效的星载双目视觉slam前端设计方法,对经典的实施方法中的金字塔模型、滤波过程和特征点特征矩的计算方式进行了改进,能够有效减少经典方法存储资源和算力资源的开销,满足星载处理器存储资源、算力、功耗等条件的限制,是一种适用于航天器工程化实现的设计方法。
61、(4)本发明提出的插值金字塔法,采用插值方法模拟了经典实施方法中对于图像的缩放,通过建立各层图像之间的映射关系,将同一个数据存储区域映射到不同缩放层中,降低了存储资源开支。
62、(5)本发明所涉及的行列和差滤波,对fast角点所在的正方形区域内的像素分别按行、列的方式进行计算像素序列和差,通过描述像素序列前后变化的方向和剧烈情况提取特征,代替经典实施方法中的二维卷积或高斯滤波,提高了计算的时效性。
63、(6)本发明所涉及的原点特征矩,将不同位置特征点所在的图像块归一化原点坐标进行处理,避免了复杂项加乘运算带来的消耗和精度损失,提升计算效果。
1.一种高效的星载双目视觉slam前端设计方法,其特征在于包括:
2.根据权利要求1所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:建立插值金字塔模型,缩放因子为f>1,金字塔层数为n≥2,原始图像记为i,其中坐标为(u,v)的像素其值记为i(u,v);
3.根据权利要求2所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:所述对第r层图像插值后的各层图像进行fast12预筛选,得到角点,具体为:
4.根据权利要求3所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:所述对筛选出的角点周围的一块区域进行行列和差滤波,具体为:
5.根据权利要求4所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:进行行列和差滤波时,行算子hx和列算子hy分别为:
6.根据权利要求4所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:所述对滤波后的序列进行harris预响应筛选,保留响应最强烈的特征点,具体为:
7.根据权利要求6所述的一种高效的星载双目视觉slam前端设计方法,其特征在于:所述步骤7计算每个特征点位于原点的特征矩,具体为:
8.一种非易失性存储介质,其特征在于,包括:计算机程序产品,当所述计算机程序产品被执行时执行上述权利要求1~7任一项所述的方法。
9.一种计算机程序产品,其特征在于,该计算机程序产品被处理器执行时实现权利要求1~7任一项所述方法的步骤。
