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

基于RILBP算子图像FAST关键点主方向确定方法

2022-08-17 03:08:34 来源:中国专利 TAG:

基于rilbp算子图像fast关键点主方向确定方法
技术领域
1.本发明属于视觉定位技术领域,涉及同时定位与建图slam,具体是一种基于rilbp算子图像fast关键点主方向确定方法,用于视觉定位。


背景技术:

2.在以相机为数据采集传感器的视觉定位算法中,加速度分段检测特征fast关键点因其检测速度快、实时性强而受到了广泛应用。但是,为了使视觉定位算法在相机发生剧烈旋转时仍保持良好的定位状态,需要为加速度分段检测特征fast关键点添加一个主方向,使其具备旋转不变性。
3.目前,现有的关键点主方向确定方式有以下几种:第一,采用灰度质心法,但是参与计算的像素数量过多,导致视觉定位算法运行速度变慢,实时性变弱。第二,计算关键点邻域梯度,但主方向特征不显著,容易造成误匹配。第三,计算关键点邻域哈尔haar小波特征方式,但是过于依赖图像局部区域像素的梯度方向,导致主方向不准确,进而影响视觉定位算法定位精度。
4.第一种方法可以确定关键点的主方向,例如,申请公布号为cn112907580a,名称为“一种应用于弱纹理场景下的综合点线特征的图像特征提取和匹配算法”的专利申请,公开了利用灰度质心法确定特征点主方向的方法,该方法以特征点为几何中心,通过计算特征点圆形邻域内所有像素的零阶矩和一阶矩,确定该圆形邻域的质心,然后连接几何中心和质心,得到一个方向向量,以该方向向量的方向为特征点的主方向。然而,这种方法在计算时圆形邻域内所有像素均需要参与,导致运算量级大,运算速度慢。
5.第二种方法可以确定关键点的主方向,例如,申请公布号为cn114119686a,名称为“空间布局相似计算的多源遥感影像配准方法”的专利申请,公开了一种特征点主方向的确定方法,该方法通过借鉴尺度不变特征变换sift特征点的思想,通过高斯加权直方图的方法统计特征点360度角方向的像素灰度梯度极大值,以该极大值为主方向。但是,这种方法有可能导致存在多个极大值,或者极大值与次大值相差较小的情况,使主方向特征不够显著,最终影响图像配准准确率。
6.目前,在各种视觉定位算法中,包含多种为关键点确定主方向的方法,但是这些方法存在不同的缺陷,主要分为两个方面:一、在计算过程中,由于参与运算的像素过多,使其运行速度慢,进而导致视觉定位算法实时性降低;二、为特征点确定的主方向独特性不高,甚至产生歧义性,这会降低图像配准准确率,最终导致视觉定位算法的定位精度降低。


技术实现要素:

7.本发明的目的在于针对上述现有技术的不足,提出一种实时性更强、图像配准准确率更高的基于rilbp算子图像fast关键点主方向确定方法。
8.本发明是一种基于rilbp算子图像fast关键点主方向确定方法,其特征在于,具体包括如下步骤:
9.(1)获取原始图像a:原始图像a的大小为w
×
h,w为原始图像a的宽度,h为原始图像a的高度:
10.(2)对原始图像a进行边界镜像扩展:将原始图像a的上、下、左、右四个边界均作3个像素长度的边界镜像扩展,得到扩展后的图像a1,其大小为(w 6)
×
(h 6);
11.(3)对扩展后的图像a1进行高斯平滑:对扩展后的图像a1作高斯平滑处理,得到高斯平滑结果图像a2,其中原始图像a所处的区域记作b;
12.(4)定义空集合:定义一个空集合fc,用空集合fc存放对区域b提取到的所有fast关键点;
13.(5)对区域b利用fast算法提取关键点:对区域b中的任意像素p,首先以像素p为圆心,3个像素长度为半径作圆,确定圆周c,并以像素p的正上方为起始点,按顺时针方向将圆周c上的16个像素进行编号,然后设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,以分步判定像素p是否为一个fast关键点,具体包括:
14.(5a)对区域b中的任意像素p确定圆周c:对于高斯平滑结果图像a2中区域b中的一个像素p,将其灰度值表示为i
p
,以像素p为圆心,3个像素长度为半径作圆,得到关于像素p的圆周c;
15.(5b)对圆周c上的像素及其灰度值分别进行编号:在圆周c上分布有16个像素,以像素p的正上方为起始点,按顺时针方向将这16个像素分别编号为1,2,...,15,16,对应灰度值也依次编号为i1,i2,...,i
15
,i
16

16.(5c)设置一个灰度差阈值t:设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,分步判定像素p是否为一个fast关键点,且灰度差阈值t按经验取值为40;
17.(5d)初步判定像素p是否为一个fast关键点的候选点:分别计算i1、i9与i
p
的差的绝对值,记作a1、a9;若a1和a9均大于灰度差阈值t,则初步判定像素p是fast关键点的候选点,进行步骤(5e),否则判定像素p不是一个fast关键点,进行步骤(7);
18.(5e)再次判定像素p是否为一个fast关键点的候选点:分别计算i5、i
13
与i
p
的差的绝对值,记作a5、a
13
;若a5和a
13
中大于灰度差阈值t的数目m不为零,则再次判定像素p是fast关键点的候选点,进行步骤(5f),否则判定像素p不是一个fast关键点,进行步骤(7);
19.(5f)最终判定像素p是否为一个fast关键点:分别计算圆周c上除编号为1、5、9和13的剩余12个像素点的灰度值与i
p
的差的绝对值,记这12个绝对值中大于灰度差阈值t的数目为n;若m n≥10成立,则最终判定像素p是一个fast关键点,执行步骤(6),否则判定像素p不是一个fast关键点;
20.(6)将fast关键点归入集合fc:若像素p被判定是一个fast关键点,则将像素p归入集合fc,进行步骤(7);若像素p被判定不是一个fast关键点,直接进行步骤(7);
21.(7)提取区域b中的所有fast关键点:在区域b中另选一个像素p,返回执行步骤(5a),反复执行步骤(5a)到步骤(6),直到得到区域b中的所有fast关键点,均归入集合fc中;
22.(8)用rilbp算子计算集合fc中每个像素的rilbp特征值:对于集合fc中的任意像素,以该像素为坐标原点,以竖直向上为0度坐标轴,用rilbp算子计算其rilbp特征值,对集
合fc中的任意一个像素pc,首先以像素pc为圆心,1个像素长度为半径确定一个圆周s,并以像素pc右上角像素为起始点,按顺时针方向对圆周s上的8个像素进行编号,然后初始化一个8位的二进制序列,利用rilbp算子对这个二进制序列进行循环逐位右移操作,计算循环逐位右移过程中所有出现的二进制序列对应的十进制数并分别进行编号,以最小的十进制数作为像素pc的rilbp特征值;
23.(9)计算并确定像素pc的主方向:在循环逐位右移过程中,像素pc的rilbp特征值可能出现多次,记录最先出现的rilbp特征值的编号为k,记圆周s上编号为k的像素为pk,连接像素pc中心与像素pk中心,得到方向向量计算方向向量与0度坐标轴的夹角作为像素pc的主方向θ;
24.(10)计算并确定集合fc中所有像素的主方向:在集合fc中另选一个像素pc,反复执行步骤(8)到步骤(9),直到确定集合fc中所有像素的主方向。
25.本发明解决了现有技术中实时性差,图像配准准确率低的问题。
26.本发明与现有技术相比,具有以下优点:
27.关键点主方向确定的实时性更好:由于本发明在为fast关键点确定主方向的时候,以fast关键点为圆心,1个像素长度为半径,获取了关于fast关键点的圆周,在计算过程中,明确了需要参与运算的像素只包含这个圆周上的像素,而现有的方法在计算时涉及整个圆内部的所有像素,因此本发明提出的为fast关键点确定主方向的方法与现有方法相比,减少了参与运算的像素数量,在计算复杂度相当的前提下,使本发明运算速度更快,更加符合视觉定位算法实时性的要求。
28.提高了图像配准的准确率:由于本发明在为fast关键点确定主方向的时候,先通过rilbp算子计算这个fast关键点的rilbp特征值,在计算过程中记录最先出现的rilbp特征值的编号,最后利用这个编号经过简单计算为每一个fast关键点都唯一确定了各自的主方向,且该主方向与现有方法相比,不会产生歧义性,具有足够的独特性,依靠这个显著的主方向,成功地为fast关键点实现了旋转不变性,在进行图像配准时,可以提高配准准确率。
附图说明
29.图1为本发明的实现流程框图;
30.图2为本发明运行时间为3.04ms的图像配准仿真效果图;
31.图3为本发明运行时间为1.30ms的图像配准仿真效果图。
具体实施方式
32.下面结合附图和具体实施例,对本发明详细描述。
33.实施例1
34.目前在视觉定位中,为图像关键点确定主方向的时候,存在因计算量大而导致实时性弱、因主方向不够显著而导致图像配准准确率低的弊端,本发明针对现存的问题,经过研究与实验,提出了基于rilbp算子图像fast关键点主方向确定方法,参见图1,图1为本发明的实现流程图,包括有如下步骤:
35.(1)获取原始图像a:原始图像a的大小为w
×
h,w为原始图像a的宽度,h为原始图像
a的高度。在实际视觉定位应用中,需求不同,使用的相机也不同,拍摄的原始图像a大小也会有区别,比如有的实际应用中,w=640,h=480,而有的实际应用中,w=1920,h=1080,但是本发明适用于任意大小的原始图像a。在本实施例中,w=1920,h=1080。
36.(2)对原始图像a进行边界镜像扩展:将原始图像a的上、下、左、右四个边界均作3个像素长度的边界镜像扩展,得到扩展后的图像a1,其大小为(w 6)
×
(h 6),在后续提取fast关键点中,满足了在作圆时的3个像素长度的半径要求。
37.(3)对扩展后的图像a1进行高斯平滑:对扩展后的图像a1作高斯平滑处理,得到高斯平滑结果图像a2,滤除了扩展后的图像a1的随机噪声,其中原始图像a所处的区域记作b。
38.(4)定义空集合:定义一个空集合fc,用空集合fc存放对区域b提取到的所有fast关键点。由于不同图像中提取到的fast关键点数量不同,但绝大多数情况少于1500个,所以在本实施例中,空集合fc的容量为1500。
39.(5)对区域b利用fast算法提取关键点:由于在现有的关键点提取算法中,fast算法提取思路简单,提取速度快,所以本发明采用fast算法进行关键点提取。具体思路为:首先定义一个空集合存放对区域b提取到的所有fast关键点,对区域b中的任意像素p,以像素p为圆心,3个像素长度为半径作圆,确定圆周c,并以像素p的正上方为起始点,按顺时针方向将圆周c上的16个像素进行编号,然后设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,以分步判定像素p是否为一个fast关键点,具体包括:
40.(5a)对区域b中的任意像素p确定圆周c:对于预处理结果图像a2区域b中的一个像素p,将其灰度值表示为i
p
,以像素p为圆心,3个像素长度为半径作圆,得到关于像素p的圆周c。
41.(5b)对圆周c上的像素及其灰度值分别进行编号:在圆周c上分布有16个像素,以像素p的正上方为起始点,按顺时针方向将这16个像素分别编号为1,2,...,15,16,对应灰度值也依次编号为i1,i2,

,i
15
,i
16

42.(5c)设置灰度差阈值t:设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,分步判定像素p是否为一个fast关键点,且经研究证明,当灰度差阈值t取值为40时,提取到的fast关键点质量更高。在本实施例中,t=40。
43.(5d)初步判定像素p是否为一个fast关键点的候选点:分别计算圆周c上编号为1和9的像素对应的灰度值i1、i9与i
p
的差的绝对值,记作a1、a9。若a1和a9均大于灰度差阈值t,则初步判定像素p是fast关键点的候选点,进行步骤(5e),否则直接判定像素p不是一个fast关键点,进行步骤(7)。
44.(5e)再次判定像素p是否为一个fast关键点的候选点:分别计算圆周c上编号为5和13的像素对应的灰度值i5、i
13
与i
p
的差的绝对值,记作a5、a
13
。若a5和a
13
中大于灰度差阈值t的数目m不为零,则再次判定像素p是fast关键点的候选点,进行步骤(5f),否则直接判定像素p不是一个fast关键点,进行步骤(7)。
45.(5f)最终判定像素p是否为一个fast关键点:分别计算圆周c上除编号为1、5、9和13的剩余12个像素点对应的剩余12个像素点的灰度值与i
p
的差的绝对值,记这12个绝对值中大于灰度差阈值t的数目为n。若m n≥10成立,则最终判定像素p是一个fast关键点,执行步骤(6),否则直接判定像素p不是一个fast关键点,进行步骤(7)。
46.(6)将fast关键点归入集合fc:若像素p被判定是一个fast关键点,则将像素p归入集合fc,进行步骤(7);若像素p被判定不是一个fast关键点,直接进行步骤(7)。
47.(7)提取区域b中的所有fast关键点:在区域b中另选一个像素p,返回执行步骤(5a),反复执行步骤(5a)到步骤(6),直到得到区域b中的所有fast关键点,均归入集合fc中,完成了区域b中所有fast关键点的提取,进行步骤(8)。
48.(8)用rilbp算子计算集合fc中每个像素的rilbp特征值:对集合fc中的所有像素以竖直向上为0度坐标轴,用rilbp算子计算各自的rilbp特征值,在视觉定位领域中,为关键点确定主方向的目的是为了给关键点添加旋转不变性,使在图像发生旋转时仍保持较高的图像配准准确率。而rilbp算子自身具有旋转不变性,所以本发明融合rilbp算子,为fast关键点确定主方向。具体为:对集合fc中的任意一个像素pc,首先以像素pc为圆心,1个像素长度为半径确定一个圆周s,并以像素pc右上角像素为起始点,按顺时针方向对圆周s上的8个像素进行编号,然后初始化一个8位的二进制序列,利用rilbp算子对这个二进制序列进行循环逐位右移操作,计算所有出现的二进制序列对应的十进制数并分别进行编号,以最小的十进制数计算像素pc的rilbp特征值。
49.(9)计算并确定像素pc的主方向:在循环逐位右移过程中,像素pc的rilbp特征值可能出现多次,记录最先出现的rilbp特征值的编号为k,记圆周s上编号为k的像素为pk,连接像素pc中心与像素pk中心,得到方向向量计算方向向量与0度坐标轴的夹角作为像素pc的主方向θ。
50.(10)计算并确定集合fc中所有像素的主方向:在集合fc中另选一个像素pc,反复执行步骤(8)到步骤(9),直到确定集合fc中所有像素的主方向。
51.本发明给出了基于rilbp算子图像fast关键点主方向确定法的整体技术方案,本发明为了解决现有技术中的实时性弱、图像配准准确率低的问题,展开了研究与思考。本发明的思路是:首先对一幅原始图像进行3个像素长度的边界镜像扩展和高斯平滑处理,得到高斯平滑处理结果图像,将高斯平滑处理结果图像中原始图像所处的区域记为b。然后对区域b利用思路简单、速度快的fast算法提取关键点,具体为:首先定义一个空集合存放对区域b提取到的所有fast关键点,对区域b中的任意像素p,以像素p为圆心,3个像素长度为半径作圆,确定圆周c,并以像素p的正上方为起始点,按顺时针方向将圆周c上的16个像素按1-16依次进行编号。然后设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,以分步判定像素p是否为一个fast关键点。实质上,为fast关键点确定主方向的目的是为fast关键点实现旋转不变性,所以最后利用rilbp算子自身具有的旋转不变性,为集合fc中的所有像素计算各自的主方向,具体为:对集合fc中的任意一个像素pc,首先以像素pc为圆心,1个像素长度为半径确定圆周s,并以像素pc右上角像素为起始点,按顺时针方向对圆周s上的8个像素按1-8依次进行编号,然后初始化一个8位的二进制序列,利用rilbp算子对这个二进制序列进行循环逐位右移操作,计算所有出现的二进制序列对应的十进制数并分别进行编号,以最小的十进制数计算像素pc的rilbp特征值。由于像素pc的rilbp特征值可能出现多次,为了保证像素pc的主方向的唯一性,本发明记录最先出现的rilbp特征值的编号,根据这个编号,确定圆周s上编号为k的像素为pk,连接像素pc中心与像素pk中心,得到方向向量最后计算方向向量与0度坐标轴的夹角作
为像素pc的主方向θ。因此,与视觉定位领域流行的关键点主方向确定方法相比,本发明提出的基于rilbp算子图像fast关键点主方向确定方法通过结合rilbp算子,减少了参与计算的像素数量,用更短的计算时间赋予了fast关键点更显著的主方向信息,提高了图像配准准确率。将本发明的方法应用于视觉定位领域中,比如用在仓库物流机器人上,可以提高视觉定位算法的实时性和定位精度,保证机器人高效率、高准确率工作。
52.实施例2
53.基于rilbp算子图像fast关键点主方向确定方法同实施例1,本发明步骤(8)所述的用rilbp算子计算并确定集合fc中每个像素的rilbp特征值,具体包括如下步骤:
54.(8a)对集合fc中的任意一个像素pc确定圆周s:对于集合fc中的任意一个像素pc,将其灰度值表示为i
pc
,并以像素pc为圆心,以1个像素长度为半径,获取像素pc在预处理图像结果图像a2中的圆周s。
55.(8b)对圆周s中的8个像素进行编号:在圆周s上分布有8个像素,以像素pc为坐标原点,以竖直向上为0度坐标轴,以右上角像素为起始点,按顺时针方向将圆周s上的8个像素分别编号为p1,p2,...,p7,p8,对应灰度值也依次表示为
56.(8c)初始化一个8位的二进制序列seq1:seq1表达了与的相对大小,用于计算像素pc的rilbp特征值。令seq1的初始状态为seq1=00000000。
57.(8d)对seq1的每一位进行编码:分别比较与的大小,若则将seq1的第i位编码为1,否则seq1的第i位保持为0。
58.(8e)将seq1进行循环逐位右移操作:经循环逐位右移操作得到8个二进制序列,分别表示为seq1,seq2,...,seq7,seq8,其中seqj表示seq1经过了j-1位循环右移操作。
59.(8f)将seq1,seq2,...,seq7,seq8转换为十进制数:将seq1,seq2,...,seq7,seq8对应的十进制数分别表示为dec1,dec2,...,dec7,dec8。
60.(8g)确定像素pc的rilbp特征值:rilbp特征值代表dec1,dec2,...,dec7,dec8中的最小值,记dec1,dec2,...,dec7,dec8中的最小值为dec_min,并将dec_min作为像素pc的rilbp特征值。
61.本发明对集合fc中的任意一个像素pc确定主方向时,参与计算的像素只包括一个圆周上的像素,而不是这个圆内部的像素,在计算时,参与计算的像素数量减少,而且记录了最先出现的rilbp特征值,该特征值具有唯一性,并根据像素pc的rilbp特征值对应的编号,确定像素pc的主方向θ,使像素pc的主方向特征更显著,消除了现有技术中主方向信息存在的歧义性,计算量更小,加强了视觉定位算法的实时性,提高了图像配准准确率。将本发明的方法用于无人驾驶、无人机巡检等场合,能提高定位精度,为安全驾驶提供保障。
62.实施例3
63.基于rilbp算子图像fast关键点主方向确定法同实施例1-2,其特征在于,步骤(9)中所述的计算并确定像素pc的主方向,具体为:获取dec1,dec2,...,dec7,dec8中大小为dec_min且最先出现的值,记为deck,k表示像素pc的rilbp特征值对应的编号,k∈[1,2,3,4,5,6,7,8],像素pc的主方向θ的计算公式为:
[0064]
[0065]
本发明记录最先出现的rilbp特征值,这个特征值消除了视觉定位领域现有方法中存在的歧义性,并根据像素pc的这个rilbp特征值对应的编号,通过简单计算实现了像素pc的主方向确定,使像素pc有显著性更强的主方向,提高了图像配准准确率,在视觉定位算法中,可以提高算法的定位精度,为导航、避障等更多实际应用功能提供精确的位置信息。
[0066]
下面给出一个更加具体的例子,对本发明进一步说明。
[0067]
实施例4
[0068]
基于rilbp算子图像fast关键点主方向确定方法同实施例1-3,包括如下步骤:
[0069]
(1)获取原始图像a,其大小为w
×
h,w为原始图像a的宽度,h为原始图像a的高度。实际上,本发明适用于任意大小的原始图像a,在本实施例中,w=640,h=480。
[0070]
(2)将原始图像a的上、下、左、右四个边界均作3个像素长度的边界镜像扩展,得到扩展后的图像a1,其大小为(w 6)
×
(h 6),在后续提取fast关键点中,满足了在作圆时3个像素长度的半径要求。
[0071]
(3)对扩展后的图像a1作高斯平滑处理,得到高斯平滑处理结果图像a2,滤除了扩展后的图像a1的随机噪声,其中原始图像a所处的区域记作b。
[0072]
(4)定义空集合:定义一个空集合fc,用空集合fc存放对区域b提取到的所有fast关键点。由于不同图像中提取到的fast关键点数量不同,但一般少于2000个,所以在本实施例中,定义空集合fc的容量为2000。
[0073]
(5)对区域b利用fast算法提取关键点:在视觉定位领域,为了满足实时定位的要求,视觉定位算法不是对一幅图像的全部像素进行跟踪定位,而是会对一幅图像进行关键点提取,减少参与跟踪定位的像素数量,提高实时性。本发明不仅也提取关键点,而且采用了现有的关键点提取算法中提取思路简单,提取速度快的fast算法,但是本发明同样适用于所有关键点提取算法。fast算法具体思路为:首先定义一个空集合存放对区域b提取到的所有fast关键点,对区域b中的任意像素p,以像素p为圆心,3个像素长度为半径作圆,确定圆周c,并以像素p的正上方为起始点,按顺时针方向将圆周c上的16个像素进行编号,然后设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,以分步判定像素p是否为一个fast关键点,而且判定步骤具有不同的优先级,因此步骤顺序固定,加速了关键点提取速度。具体包括:
[0074]
(5a)对区域b中的任意像素p确定圆周c:对于预处理结果图像a2区域b中的一个像素p,将其灰度值表示为i
p
,以像素p为圆心,3个像素长度为半径作圆,得到关于像素p的圆周c。
[0075]
(5b)对圆周c上的像素及其灰度值分别进行编号:在圆周c上分布有16个像素,以像素p的正上方为起始点,按顺时针方向将这16个像素分别编号为1,2,...,15,16,对应灰度值也依次编号为i1,i2,...,i
15
,i
16

[0076]
(5c)设置灰度差阈值t:设置一个灰度差阈值t,用于和圆周c上所有像素的灰度值与像素p的灰度值的差的绝对值作比较,分步判定像素p是否为一个fast关键点,且经研究证明,当灰度差阈值t取值为40时,提取到的fast关键点质量更高。在本实施例中,t=40。
[0077]
(5d)初步判定像素p是否为一个fast关键点的候选点:分别计算圆周c上编号为1和9的像素对应的灰度值i1、i9与i
p
的差的绝对值,记作a1、a9。若a1和a9均大于灰度差阈值t,则初步判定像素p是fast关键点的候选点,进行步骤(5e),否则直接判定像素p不是一个
fast关键点,进行步骤(7)。
[0078]
(5e)再次判定像素p是否为一个fast关键点的候选点:分别计算圆周c上编号为5和13的像素对应的灰度值i5、i
13
与i
p
的差的绝对值,记作a5、a
13
。若a5和a
13
中大于灰度差阈值t的数目m不为零,则再次判定像素p是fast关键点的候选点,进行步骤(5f),否则直接判定像素p不是一个fast关键点,进行步骤(7)。
[0079]
(5f)最终判定像素p是否为一个fast关键点:分别计算圆周c上除编号为1、5、9和13的剩余12个像素点对应的剩余12个像素点的灰度值与i
p
的差的绝对值,记这12个绝对值中大于灰度差阈值t的数目为n。若m n≥10成立,则最终判定像素p是一个fast关键点,并将关键点p归入集合fc中,否则直接判定像素p不是一个fast关键点,进行步骤(7)。
[0080]
(6)将fast关键点归入集合fc:若像素p被判定是一个fast关键点,则将像素p归入集合fc,进行步骤(7),若像素p被判定不是一个fast关键点,直接进行步骤(7)。
[0081]
(7)提取区域b中的所有fast关键点:在区域b中另选一个像素p,返回执行步骤(5a),执行步骤(5a)到步骤(6),直到得到区域b中的所有fast关键点,均归入集合fc中。
[0082]
(8)用rilbp算子计算集合fc中每个像素的rilbp特征值:对集合fc中的所有像素以竖直向上为0度坐标轴,用rilbp算子计算各自的rilbp特征值,步骤(5)中提取到的所有fast关键点不具备旋转不变性,会导致图像发生旋转时的图像配准准确率降低,在视觉定位算法中,会降低视觉定位系统的精度,不利于实际应用中避障、导航等其他工作。在视觉定位领域中,为关键点添加旋转不变性一般是通过为关键点确定主方向,使在图像发生旋转时仍保持较高的图像配准准确率。而rilbp算子自身具有旋转不变性,所以本发明融合rilbp算子,为fast关键点确定主方向,并且进行了仿真验证,验证仿真结果也说明本发明将rilbp算子融入fast关键点主方向确定的可行性和有效性。具体为:对集合fc中的任意一个像素pc,首先以像素pc为圆心,1个像素长度为半径确定一个圆周s,并以像素pc右上角像素为起始点,按顺时针方向对圆周s上的8个像素进行编号,然后利用rilbp算子计算像素pc的rilbp特征值,在计算过程中,可能出现多个rilbp特征值,本发明记录最先出现的rilbp特征值的编号,记圆周s上编号为k的像素为pk,连接像素pc中心与像素pk中心,得到方向向量最后计算方向向量与0度坐标轴的夹角作为像素pc的主方向θ。具体包括:
[0083]
(8a)对集合fc中的任意一个像素pc确定圆周s:对于集合fc中的任意一个像素pc,将其灰度值表示为并以像素pc为圆心,以1个像素长度为半径,获取像素pc在预处理图像结果图像a2中的圆周s。
[0084]
(8b)对圆周s中的8个像素进行编号:在圆周s上分布有8个像素,以像素pc为原点,以竖直向上为0度坐标轴,以右上角像素为起始点,按顺时针方向将圆周s上的8个像素分别编号为p1,p2,...,p7,p8,对应灰度值也依次表示为
[0085]
(8c)初始化一个8位的二进制序列seq1:seq1表达了与的相对大小,用于计算像素pc的rilbp特征值。令seq1的初始状态为seq1=00000000。
[0086]
(8d)对seq1的每一位进行编码:分别比较与的大小,若则将seq1的第i位编码为1,否则seq1的第i位保持为0。
[0087]
(8e)将seq1进行循环逐位右移操作:经循环逐位右移操作得到8个二进制序列,分
别表示为seq1,seq2,...,seq7,seq8,其中seqj表示seq1经过了j-1位循环右移操作。
[0088]
(8f)将seq1,seq2,...,seq7,seq8转换为十进制数:将seq1,seq2,

,seq7,seq8对应的十进制数分别表示为dec1,dec2,...,dec7,dec8。
[0089]
(8g)确定像素pc的rilbp特征值:rilbp特征值代表dec1,dec2,...,dec7,dec8中的最小值,记dec1,dec2,...,dec7,dec8中的最小值为dec_min,并将dec_min作为像素pc的rilbp特征值。
[0090]
(9)计算并确定像素pc的主方向θ:dec_min在dec1,dec2,...,dec7,dec8中可能出现多次,为了保证像素pc的主方向θ的唯一性,获取dec1,dec2,...,dec7,dec8中大小为dec_min且最先出现的值,记为deck,根据像素pc的rilbp特征值对应的编号k,确定像素pc的主方向θ,计算公式为:
[0091][0092]
其中,k表示像素pc的rilbp特征值对应的编号,k∈[1,2,3,4,5,6,7,8]。
[0093]
(10)计算并确定集合fc中所有像素的主方向:在集合fc中另选一个像素pc,反复执行步骤(8)到步骤(9),直到确定集合fc中所有像素的主方向,完成基于rilbp算子的fast关键点主方向的确定。
[0094]
本发明基于rilbp算子的fast关键点主方向确定方法,步骤包括:获取原始图像a;对原始图像a进行边界镜像扩展;对扩展后的图像a1进行高斯平滑;定义空集合;对区域b利用fast算法提取关键点;将fast关键点归入集合fc;提取区域b中的所有fast关键点;用rilbp算子计算集合fc中每个像素的rilbp特征值;计算并确定像素pc的主方向;计算并确定集合fc中所有像素的主方向完成对区域b基于rilbp算子的fast关键点主方向的确定,为fast关键点添加了旋转不变性,使视觉定位算法在图像发生旋转时仍能保持良好的跟踪定位状态。本发明结合rilbp算子,将参与运算的像素限定在一个圆周上,而不是整个圆内部的全部像素,加快了视觉slam算法运行速度,增强了视觉slam算法的实时性,同时根据最先出现的rilbp特征值的编号,为fast关键点确定了具有唯一性的主方向,消除了现有技术中主方向信息存在歧义性的缺陷,提高了视觉slam算法的图像配准准确率。
[0095]
下面通过仿真及其结果,对本发明的技术效果进一步说明。
[0096]
实施例5
[0097]
基于rilbp算子图像fast关键点主方向确定方法同实施例1-4,本发明在确定像素pc的主方向时,在计算机上进行仿真。
[0098]
仿真条件:仿真条件是intel corei5-5200u@2.20ghz,8gram,windows操作系统,使用python编程语言。
[0099]
仿真内容:仿真内容是选取两幅有相对运动关系的图像进行图像配准,同时记录为像素pc确定主方向的运行时间。
[0100]
仿真结果与分析:参见图2,图2是本发明运行时间为3.04ms的图像配准仿真效果图,图2中包括两幅有相对运动关系的图像,这两幅图像中均包含桌子、显示器、茶杯、书籍等物体,图2中的每条线段表示经图像配准后,同一个三维空间点在两幅有相对运动关系的图像中的二维投影点的连线。这些线段中有一部分明显地不平行于绝大多数线段,属于误配准的情况,而那些相互平行的绝大多数线段属于正确配准的情况,图2的图像配准准确率
为79.88%。图2在为fast关键点确定主方向时采用的方法是灰度质心法。同时,图2显示了为所有fast关键点确定主方向时,灰度质心法所运行的时间为3.04ms,提取到了323个fast关键点,平均为每个fast关键点确定主方向所需9.41ns。
[0101]
实施例6
[0102]
基于rilbp算子图像fast关键点主方向确定方法同实施例1-4,仿真条件与内容同实施例5。
[0103]
仿真结果与分析:参见图3,图3是本发明运行时间为1.30ms的图像配准仿真效果图,图3包括与图2相同的两幅有相对运动关系的图像,图3中的线段的意义也与图2相同。图3在为fast关键点确定主方向时采用了本发明提出的基于rilbp算子图像fast关键点主方向确定方法,相比于图2,图3中明显地不平行于绝大多数线段的线段数量更少,说明图像配准率更高。图3的图像配准准确率为87.43%。同样,图3显示了为所有fast关键点确定主方向时,本发明提出的基于rilbp算子图像fast关键点主方向确定方法所运行的时间为1.30ms,提取到了358个fast关键点,平均为每个fast关键点确定主方向所需3.63ns,说明本发明的方法运行时间更短,运算速度更快,用更短的运行时间实现了更高的图像配准准确率,使视觉定位算法计算量更小,实时性更强,图像配准准确率更高。在无人驾驶、扫地机器人等应用中能提高定位精度,更好地进行驾驶、清扫等任务。
[0104]
综上所述,本发明的基于rilbp算子的fast关键点主方向确定方法,解决了现有技术中为fast关键点确定主方向时实时性弱、图像配准准确率低的问题。实现步骤包括:获取原始图像a;对原始图像a进行边界镜像扩展;对扩展后的图像a1进行高斯平滑;定义空集合;对区域b利用fast算法提取关键点;将fast关键点归入集合fc;提取区域b中的所有fast关键点;用rilbp算子计算集合fc中每个像素的rilbp特征值;计算并确定像素pc的主方向;计算并确定集合fc中所有像素的主方向,完成对区域b基于rilbp算子的fast关键点主方向的确定。本发明为fast关键点添加了旋转不变性,使视觉定位算法在图像发生旋转时仍能保持良好的跟踪定位状态。结合rilbp算子,将参与运算的像素限定在一个圆周上,而不是整个圆内部的全部像素,加快了视觉slam算法运行速度,增强了视觉slam算法的实时性,同时根据最先出现的rilbp特征值的编号,本发明为fast关键点确定了具有唯一性的主方向消除了现有技术中主方向信息存在歧义性的缺陷,提高了视觉slam算法的图像配准准确率。将本发明的方法用于自动驾驶、餐厅服务机器人等移动系统,可以提高系统定位精度,加强系统稳定性和可持续性。
再多了解一些

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

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

相关文献