角点跟踪方法、装置、计算机设备及可读存储介质

文档序号:25350968发布日期:2021-06-08 13:27阅读:89来源:国知局
角点跟踪方法、装置、计算机设备及可读存储介质

1.本发明涉及图像处理技术领域,特别涉及一种角点跟踪方法、装置、计算机设备及可读存储介质。


背景技术:

2.图像角点跟踪在机器人自主定位导航、自动驾驶等领域有着广泛的应用。通过准确的角点跟踪结果,机器人可以计算出自身的位置和姿态,并进一步恢复出周围场景的三维信息。稀疏光流法是最常用的特征点跟踪方法之一,它基于灰度不变的假设,根据前后两帧图像的灰度信息,估计角点在两帧图像之间的运动。在传统的光流法跟踪过程中,随着时间的推移和视角的变化,一方面,角点由于图像噪声的影响可能会被跟踪到错误的位置上,另一方面,某些投影在先前帧上被检测为角点的场景位置,投影到新的帧上时已不满足角点的条件,但它们仍可能被光流法跟踪到。若继续对这些位置进行跟踪,将会增大跟踪结果的不确定性,最终影响相机位姿估计和三维建图的精度。


技术实现要素:

3.本发明实施例提供了一种角点跟踪方法,以解决现有技术中跟踪结果不准确的技术问题。该方法包括:
4.设置图像窗口,基于所述图像窗口在首帧图像中确定角点,将确定的所有角点视为待跟踪角点,并为每个待跟踪角点设置唯一的id;
5.将首帧图像的后一帧图像视为当前帧图像,循环执行以下步骤:
6.利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;
7.在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;
8.判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。
9.本发明实施例还提供了一种角点跟踪装置,以解决现有技术中跟踪结果不准确的技术问题。该装置包括:
10.角点确定模块,用于设置图像窗口,基于所述图像窗口在首帧图像中确定角点,将确定的所有角点视为待跟踪角点,并为每个待跟踪角点设置唯一的id;
11.角点跟踪模块,用于将首帧图像的后一帧图像视为当前帧图像,循环执行以下步骤:
12.利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;
13.在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;
14.判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。
15.本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的角点跟踪方法,以解决现有技术中跟踪结果不准确的技术问题。
16.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的角点跟踪方法的计算机程序,以解决现有技术中跟踪结果不准确的技术问题。
17.在本发明实施例中,提出了基于图像窗口在首帧图像中确定角点,将确定的所有角点视为首帧图像的待跟踪角点,并为每个待跟踪角点设置唯一的id,然后,将首帧图像的后一帧图像视为当前帧图像,针对其他帧图像依次循环执行以下步骤,利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。实现了相邻的前后两帧图像通过相似的图像窗口大小来确定角点和验证跟踪成功的角点,有利于验证当前帧图像跟踪成功的角点中通过验证的角点即为在前一帧图像中确定的角点,有利于确保跟踪角点的一致性,避免或减少将角点跟踪到错误位置的可能性,有利于提高跟踪结果的准确性;同时,在当前帧图像中基于相似的图像窗口大小验证角点还可以实现,基于与前一帧图像中确定角点相同的标准来验证跟踪成功的角点,以确保跟踪成功的角点依然符合角点的条件,进一步有利于提高跟踪结果的准确性,进而有利于提高基于跟踪结果的相机位姿估计和三维建图的精度。
附图说明
18.此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
19.图1是本发明实施例提供的一种角点跟踪方法的流程图;
20.图2是本发明实施例提供的一种实施角点跟踪方法的流程图;
21.图3是本发明实施例提供的一种对所有跟踪成功的待跟踪角点进行验证的流程图;
22.图4是本发明实施例提供的一种验证角点过程中图像窗口的示意图;
23.图5是本发明实施例提供的一种计算机设备的结构框图;
24.图6是本发明实施例提供的一种角点跟踪装置的结构框图。
具体实施方式
25.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
26.在本发明实施例中,提供了一种角点跟踪方法,如图1所示,该方法包括:
27.步骤102:设置图像窗口,基于所述图像窗口在首帧图像中确定角点,将确定的所有角点视为待跟踪角点,并为每个待跟踪角点设置唯一的id;
28.步骤104:将首帧图像的后一帧图像视为当前帧图像,循环执行以下步骤:
29.利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;
30.在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;
31.判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。
32.由图1所示的流程可知,在本发明实施例中,提出了基于图像窗口在首帧图像中确定角点,将确定的所有角点视为首帧图像的待跟踪角点,并为每个待跟踪角点设置唯一的id,然后,将首帧图像的后一帧图像视为当前帧图像,针对其他帧图像依次循环执行以下步骤,利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。实现了相邻的前后两帧图像通过相似的图像窗口大小来确定角点和验证跟踪成功的角点,有利于验证当前帧图像跟踪成功的角点中通过验证的角点即为在前一帧图像中确定的角点,有利于确保跟踪角点的一致性,避免或减少将角点跟踪到错误位置的可能性,
有利于提高跟踪结果的准确性、可信度;同时,在当前帧图像中基于相似的图像窗口大小验证角点还可以实现,基于与前一帧图像中确定角点相同的标准来验证跟踪成功的角点,以确保跟踪成功的角点依然符合角点的条件,进一步有利于提高跟踪结果的准确性,进而有利于提高基于跟踪结果的相机位姿估计和三维建图的精度。
33.具体实施时,为了实现可以基于图像窗口来确定角点,并基于确定的角点进行跟踪和角点验证,在本实施例中,如图2所示,通过以下步骤实施上述角点跟踪方法:
34.步骤201:首先,在首帧图像中设置图像窗口,该图像窗口的大小在预设窗口范围内,进而基于图像窗口在首帧图像中检测得到k
i
个角点(可称为gftt角点检测方法),例如,针对首帧图像中的每个像素点,以该像素点为中心建立所述图像窗口,计算所述图像窗口内像素的gftt(good feature to track,又名shi

tomasi角点,可译为施

托马斯角点)响应值;判断gftt响应值是否大于检测阈值,若是,则确定像素点为角点。
35.具体的,在第1帧图像中,利用gftt角点检测方法确定角点,以图像窗口大小为l*l为例,检测阈值为t为例,令帧号i=1,对于第i帧图像中的每一个像素点p,以该像素点p为中心建立所述图像窗口,计算所述图像窗口内像素的gftt响应值,将gftt响应值与检测阈值t做比较,若大于t,则将像素点p视为角点,遍历第i帧图像的所有像素点之后,检测得到k
i
个角点,作为第1帧图像的待跟踪角点,为每个待跟踪角点分配一个唯一的id编号。
36.具体实施时,图像窗口的大小l*l的数值可以根据具体情况确定,本申请不做限定,预设窗口范围的上限值和下限值也可以据具体情况确定,本申请不做限定,预设窗口范围的最大图像窗口大小表示为l
max
*l
max
,预设窗口范围的最小图像窗口大小表示为l
min
*l
min
,其中l
min
<l<l
max
。检测阈值t的大小也可以根据角点条件的具体情况确定,本申请不做限定。
37.具体实施时,可以通过以下方式计算所述图像窗口内像素的gftt响应值,例如,在所述图像窗口内基于像素点的位置构建以下矩阵m,计算所述矩阵的两个特征值λ1和λ2,将两个特征值中较小的特征值min(λ1,λ2)确定为所述图像窗口内像素的gftt响应值;
[0038][0039]
其中,(x,y)是所述图像窗口w中每个像素点在所述图像窗口w中的位置;w(x,y)是位置(x,y)处的权重函数,该权重函数可以定义为图像窗口w中的均匀分布,也可以定义为以p为中心的二元高斯分布,当定义为均匀分布时,w(x,y)=1/(l*l),(x,y)∈w;i
x
(x,y)是位置(x,y)在x方向上的梯度;i
y
(x,y)是位置(x,y)在y方向上的梯度,i
x
(x,y)和i
y
(x,y)可以通过sobel算子得到;m是矩阵;w是所述图像窗口。
[0040]
具体实施时,通过上述计算所述图像窗口内像素的gftt响应值并与检测阈值比较大小的方式,可以在首帧图像中确定多个角点,为了避免角点过密或数据冗余,在本实施例中,对角点进行非极大值抑制,例如,在每个角点的预设范围的邻域内,只保留gftt响应值最大的那个角点。具体的,基于gftt角点检测方法遍历第1帧图像的所有像素点之后,得到k
i
'个角点,然后,在每个角点的3
×
3范围的邻域内,只保留gftt响应值最大的那个角点,即最终得到k
i
个角点,将该k
i
个角点作为第1帧的待跟踪角点。
[0041]
步骤202:进而循环步骤来跟踪角点,如利用稀疏光流法跟踪前一帧(即第i帧)图
像中的k
i
个待跟踪角点在当前帧(即第i+1帧)图像中的位置;具体的,可采用l

k金字塔光流法实现每个角点的跟踪。由于l

k金字塔光流法是成熟的算法,这里不再展开说明。
[0042]
步骤203:在当前帧图像中基于前一帧图像中的所述图像窗口w对所有跟踪成功的待跟踪角点进行验证,保留通过验证的k
i+1
个角点,
[0043]
步骤204:将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;
[0044]
步骤205:判断通过验证的待跟踪角点的个数k
i+1
是否大于预设值n,若是,则执行步骤206;若否,则执行步骤207;
[0045]
步骤206:将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧(即令i=i+1)图像视为当前帧图像,然后继续执行步骤202;
[0046]
步骤207:在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值n时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,更新k
i+1
为:k
i+1
=k
i+1
+m,然后,将下一帧图像视为当前帧图像,令i=i+1,继续执行步骤202。
[0047]
具体的,步骤207中在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点的过程与在首帧图像中基于所述图像窗口确定角点的过程相似,在这里不再赘述。
[0048]
具体实施时,预设值n是为了确保基于足够的角点数量进行跟踪,预设值n的具体大小可以根据跟踪的具体需求确定,本申请不做具体限定。
[0049]
具体实施时,步骤203中在当前帧图像中基于前一帧图像中的所述图像窗口w(窗口大小l
i,j
×
l
i,j
,其中i为帧号,j为角点的编号)对所有跟踪成功的待跟踪角点进行验证,是为了基于与前一帧图像中的同一所述图像窗口w来验证当前帧图像中跟踪成功的待跟踪角点,以相同的角点确定标准来确保跟踪成功的待跟踪角点是前一帧图像中确定的角点,进而避免角点跟踪错误,确保跟踪成功的待跟踪角点依然符合角点条件。具体的,针对每个跟踪成功的待跟踪角点,在当前帧图像中以该待跟踪角点为中心建立所述图像窗口,计算所述图像窗口内像素的gftt响应值;判断所述gftt响应值是否大于检测阈值,若是,该待跟踪角点通过验证。
[0050]
具体实施时,为了进一步提高追踪结果的可信度,在本实施例中,在验证角点的过程中增加了图像窗口的大小可变性,例如,当该待跟踪角点对应的所述图像窗口内像素的gftt响应值小于所述检测阈值时,判断所述图像窗口的大小是否在预设窗口范围内,若否,该待跟踪角点验证失败;若是,对所述图像窗口的大小增加预设尺寸值,得到第一预设窗口,在当前帧图像中以该待跟踪角点为中心建立所述第一图像窗口,计算所述第一图像窗口内像素的gftt响应值;所述第一图像窗口内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第一图像窗口视为该待跟踪角点在当前帧图像的图像窗口。
[0051]
当所述第一图像窗口内像素的gftt响应值小于所述检测阈值时,对所述图像窗口的大小减小所述预设尺寸值,得到第二图像窗口,在当前帧图像中以该待跟踪角点为中心建立所述第二图像窗口,计算所述第二图像窗口内像素的gftt响应值;判断所述第二图像
窗口内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第二图像窗口视为该待跟踪角点当前帧图像的图像窗口;若否,该待跟踪角点验证失败。
[0052]
具体实施时,基于图像窗口对所有跟踪成功的待跟踪角点进行验证的过程可以称为gftt角点验证,如图3所示,具体通过以下步骤实现:
[0053]
步骤301:针对每个跟踪成功的待跟踪角点c
j
,在当前帧(即第i+1帧)图像中以该待跟踪角点为中心建立所述图像窗口w,计算所述图像窗口w内像素的gftt响应值;并所述图像窗口w内像素的gftt响应值是否大于检测阈值t,若是,该待跟踪角点通过验证,令当前帧(即第i+1帧)图像的图像窗口大小与前一帧图像中的图像窗口大小相同,即l
i+1,j
=l
i,j
;若否,执行步骤302;
[0054]
具体的,如图4所示,以待跟踪角点c
j
为中心建立图像窗口w,图像窗口w的大小为l
i,j
,然后,计算图像窗口w内像素的gftt响应值,该验证过程中计算图像窗口w内像素的gftt响应值的方法与确定角点过程中计算图像窗口w内像素的gftt响应值的方法相似,其中p用c
j
替代,l用l
i,j
替代即可。
[0055]
步骤302:判断所述图像窗口w的大小是否在预设窗口范围内,若否,该待跟踪角点验证失败;若是,对所述图像窗口w的大小增加预设尺寸值,得到第一图像窗口w1,在当前帧图像中以该待跟踪角点为中心建立所述第一图像窗口w1,计算所述第一图像窗口w1内像素的gftt响应值;并所述第一图像窗口w1内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第一图像窗口视为该待跟踪角点在当前帧图像的图像窗口;若否,执行步骤303;
[0056]
具体的,判断图像窗口w的大小是否在预设窗口范围内,即判断l
i,j
是否满足l
min
<l
i,j
<l
max
,若不满足,则验证失败。
[0057]
具体的,预设尺寸值的大小也可以根据具体需求确定,例如,预设尺寸值以2为例,如图4所示,对预设窗口w的大小增加预设尺寸值,得到第一图像窗口w1,第一预设窗口w1的大小为(l
i,j
+2)
×
(l
i,j
+2),在计算该待跟踪角点对应的所述第一图像窗口w1内像素的gftt响应值时其中p用c
j
替代,l用l
i,j
+2替代即可,若该待跟踪角点对应的所述第一图像窗口w1内像素的gftt响应值大于检测阈值t,则通过验证,将所述第一图像窗口w1视为该待跟踪角点在当前帧图像的图像窗口,令l
i+1,j
=l
i,j
+2。
[0058]
步骤303:对所述图像窗口的大小减小所述预设尺寸值,得到第二图像窗口w2,在当前帧图像中以该待跟踪角点c
j
为中心建立所述第二图像窗口w2,计算所述第二图像窗口w2内像素的gftt响应值;判断所述第二图像窗口w2内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第二图像窗口视为该待跟踪角点在当前帧图像的图像窗口;若否,该待跟踪角点验证失败。
[0059]
具体的,如图4所示,对所述预设窗口w的大小减小所述预设尺寸值,得到第二图像窗口w2,第二图像窗口w2的大小为(l
i,j

2)
×
(l
i,j

2),在计算该待跟踪角点c
j
对应的所述第二图像窗口w2内像素的gftt响应值时,其中p用c
j
替代,l用l
i,j

2替代即可,若该待跟踪角点对应的所述第二图像窗口w2内像素的gftt响应值大于检测阈值t,则通过验证,将所述第二图像窗口w2视为该待跟踪角点在当前帧图像的图像窗口,令l
i+1,j
=l
i,j

2;若该待跟踪角点对应的所述第二图像窗口w2内像素的gftt响应值小于检测阈值t,则验证失败。
[0060]
在本实施例中,提供了一种计算机设备,如图5所示,包括存储器502、处理器504及
存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的角点跟踪方法。
[0061]
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
[0062]
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的角点跟踪方法的计算机程序。
[0063]
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0064]
基于同一发明构思,本发明实施例中还提供了一种角点跟踪装置,如下面的实施例所述。由于角点跟踪装置解决问题的原理与角点跟踪方法相似,因此角点跟踪装置的实施可以参见角点跟踪方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0065]
图6是本发明实施例的角点跟踪装置的一种结构框图,如图6所示,该装置包括:
[0066]
角点确定模块602,用于设置图像窗口,基于所述图像窗口在首帧图像中确定角点,将确定的所有角点视为待跟踪角点,并为每个待跟踪角点设置唯一的id;
[0067]
角点跟踪模块604,用于将首帧图像的后一帧图像视为当前帧图像,循环执行以下步骤:
[0068]
利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;
[0069]
在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;
[0070]
判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。
[0071]
在一个实施例中,所述角点确定模块,具体用于针对首帧图像中的每个像素点,以该像素点为中心建立所述图像窗口,计算所述图像窗口内像素的gftt响应值;判断gftt响应值是否大于检测阈值,若是,则确定像素点为角点。
[0072]
在一个实施例中,所述角点确定模块,具体用于在所述图像窗口内基于像素点的位置构建以下矩阵,计算所述矩阵的两个特征值,将两个特征值中较小的特征值确定为该
像素点对应的所述图像窗口内像素的gftt响应值;
[0073][0074]
其中,(x,y)是所述图像窗口中每个像素点在所述图像窗口中的位置;w(x,y)是位置(x,y)处的权重函数;i
x
(x,y)是每个像素点的位置(x,y)在x方向上的梯度;i
y
(x,y)是每个像素点的位置(x,y)在y方向上的梯度;m是矩阵;w是所述图像窗口。
[0075]
在一个实施例中,角点跟踪模块,包括:
[0076]
第一验证单元,用于针对每个跟踪成功的待跟踪角点,在当前帧图像中以该待跟踪角点为中心建立所述图像窗口,计算所述图像窗口内像素的gftt响应值;判断所述图像窗口内像素的gftt响应值是否大于检测阈值,若是,该待跟踪角点通过验证。
[0077]
在一个实施例中,角点跟踪模块,还包括:
[0078]
第二验证单元,用于当该待跟踪角点对应的所述图像窗口内像素的gftt响应值小于所述检测阈值时,判断所述图像窗口的大小是否在预设窗口范围内,若否,该待跟踪角点验证失败;若是,对所述图像窗口的大小增加预设尺寸值,得到第一图像窗口,在当前帧图像中以该待跟踪角点为中心建立所述第一图像窗口,计算所述第一图像窗口内像素的gftt响应值;判断所述第一图像窗口内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第一图像窗口视为该待跟踪角点在当前帧图像的图像窗口。
[0079]
在一个实施例中,角点跟踪模块,还包括:
[0080]
第三验证单元,用于当该待跟踪角点对应的所述第一图像窗口内像素的gftt响应值小于所述检测阈值时,对所述图像窗口的大小减小所述预设尺寸值,得到第二图像窗口,在当前帧图像中以该待跟踪角点为中心建立所述第二图像窗口,计算所述第二图像窗口内像素的gftt响应值;判断所述第二图像窗口内像素的gftt响应值是否大于所述检测阈值,若是,该待跟踪角点通过验证,并将所述第二图像窗口视为该待跟踪角点在当前帧图像的图像窗口;若否,该待跟踪角点验证失败。
[0081]
本发明实施例实现了如下技术效果:提出了基于图像窗口在首帧图像中确定角点,将确定的所有角点视为首帧图像的待跟踪角点,并为每个待跟踪角点设置唯一的id,然后,将首帧图像的后一帧图像视为当前帧图像,针对其他帧图像依次循环执行以下步骤,利用稀疏光流法跟踪前一帧图像中的待跟踪角点在当前帧图像中的位置;在当前帧图像中基于前一帧图像中的所述图像窗口对所有跟踪成功的待跟踪角点进行验证,将通过验证的待跟踪角点的id、在前一帧图像中的位置和在当前帧图像中的位置作为当前跟踪结果输出;判断通过验证的待跟踪角点的个数是否大于预设值,若是,则将通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像;若否,在当前帧图像中除了通过验证的待跟踪角点之外的位置基于所述图像窗口确定角点,为新确定的角点设置唯一的id,新确定的角点和通过验证的待跟踪角点的个数之和大于所述预设值时,将新确定的角点和通过验证的待跟踪角点作为当前帧图像的待跟踪角点,并将下一帧图像视为当前帧图像。实现了相邻的前后两帧图像通过相似的图像窗口大小来确定角点和验证跟踪成功的角点,有利于验证当前帧图像跟踪成功的角点中通过验证的角点即为在前一帧图像中确定的角点,有利于确保跟踪角点的一致性,避免或减少将角点跟踪到错误位置的可能性,有利
于提高跟踪结果的准确性;同时,在当前帧图像中基于相似的图像窗口大小验证角点还可以实现,基于与前一帧图像中确定角点相同的标准来验证跟踪成功的角点,以确保跟踪成功的角点依然符合角点的条件,进一步有利于提高跟踪结果的准确性,进而有利于提高基于跟踪结果的相机位姿估计和三维建图的精度。
[0082]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0083]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0084]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0085]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0086]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1