一種基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法
【專利摘要】本發(fā)明公開一種基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,該算法包括如下步驟:1)讀入序列圖像文件;2)提取前三幀圖像的SIFT特征點(diǎn);3)創(chuàng)建SIFT特征點(diǎn)跟蹤序列;4)更新跟蹤特征點(diǎn)的Kalman模型;5)Kalman預(yù)測(cè)特征點(diǎn)位置;6)預(yù)測(cè)位置是否超出圖像邊界;7)讀入下一幀圖像;8)結(jié)束跟蹤該點(diǎn);9)預(yù)測(cè)位置進(jìn)行SIFT點(diǎn)匹配;10)更新特征點(diǎn)坐標(biāo);11)更新特征點(diǎn)的跟蹤序列。本發(fā)明采用kalman(卡爾曼)濾波器時(shí)刻模擬更新特征點(diǎn)狀態(tài)模型,利用狀態(tài)模型預(yù)測(cè)下一幀特征點(diǎn)位置,然后在預(yù)測(cè)位置進(jìn)行SIFT特征點(diǎn)匹配,最后根據(jù)Kalman(卡爾曼)更新特征點(diǎn)坐標(biāo),克服長(zhǎng)序列圖像中誤差累積效應(yīng),實(shí)現(xiàn)高精度的SIFT特征點(diǎn)跟蹤。
【專利說明】一種基于Kalman濾波器的長(zhǎng)序列圖像S IFT特征點(diǎn)跟蹤算
法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)視覺領(lǐng)域中的特征點(diǎn)跟蹤范疇,尤其涉及一種基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法。
【背景技術(shù)】
[0002]特征點(diǎn)跟蹤是目標(biāo)檢測(cè)、目標(biāo)跟蹤、三維重建及目標(biāo)識(shí)別等研究領(lǐng)域的前提步驟。其中最為廣泛的特征點(diǎn)跟蹤包括=KLT跟蹤及各種改進(jìn)算法;SIFT特征點(diǎn)跟蹤。
[0003]KLT跟蹤算法主要適用于小運(yùn)動(dòng)模型,如物體在相鄰兩幀中運(yùn)動(dòng)距離較小或相機(jī)在兩幀中位移較小。為突破這個(gè)限制,改進(jìn)的KLT算法大都利用金字塔分層算法由粗到精的擴(kuò)大運(yùn)動(dòng)位移,且使用迭代算法逐步提高計(jì)算精度,但還是不能解決較大運(yùn)動(dòng)跟蹤。另外,KLT跟蹤都采用較為簡(jiǎn)單的模型(如對(duì)應(yīng)像素點(diǎn)間亮度差的平方和;或坐標(biāo)經(jīng)過放射變換后計(jì)算亮度差的平方和)來描述兩點(diǎn)是否為匹配點(diǎn),且求得最佳匹配點(diǎn)都是使代價(jià)函數(shù)最小的局部極值點(diǎn)。因此,KLT跟蹤算法在適用條件和跟蹤模型都存在了很多不足,因此使用范圍受限。
[0004]基于SIFT描述符匹配的SIFT特征點(diǎn)跟蹤算法能夠解決KLT的不足之處。SIFT特征點(diǎn)具有穩(wěn)定、尺度不變性、亮度不變性、旋轉(zhuǎn)不變性等優(yōu)點(diǎn)。同時(shí)通過提取特征點(diǎn)鄰域內(nèi)的梯度信息生成的128維描述符向量使得SIFT特征點(diǎn)的匹配工作變得非常簡(jiǎn)單,另外,經(jīng)典的Ratio比值法又使SIFT點(diǎn)匹配準(zhǔn)確度上了更大一個(gè)臺(tái)階。因此,使用SIFT特征點(diǎn)實(shí)現(xiàn)點(diǎn)跟蹤是非常有價(jià)值的。
[0005]目前SIFT點(diǎn)跟蹤算法基本都是采用兩兩圖像間基于描述符間歐式距離的SIFT點(diǎn)匹配,然后將匹配結(jié)果組成跟蹤序列。這種幀到幀的匹配方式在短序列圖像中效果不錯(cuò),但是當(dāng)需要對(duì)長(zhǎng)序列圖像進(jìn)行SIFT點(diǎn)跟蹤時(shí),容易出現(xiàn)誤差累積問題。
[0006]有鑒于上述現(xiàn)有的長(zhǎng)序列圖像進(jìn)行SIFT點(diǎn)跟蹤存在的缺陷,本發(fā)明人基于從事此類產(chǎn)品設(shè)計(jì)制造多年豐富的實(shí)務(wù)經(jīng)驗(yàn)及專業(yè)知識(shí),并配合學(xué)理的運(yùn)用,積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種新型基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,使其更具有實(shí)用性。經(jīng)過不斷的研究、設(shè)計(jì),并經(jīng)反復(fù)試作樣品及改進(jìn)后,終于創(chuàng)設(shè)出確具實(shí)用價(jià)值的本發(fā)明。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的主要目的在于,克服現(xiàn)有的長(zhǎng)序列圖像進(jìn)行SIFT點(diǎn)跟蹤存在的缺陷,而提供一種新型基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,提高精確度,從而更加適于實(shí)用,且具有產(chǎn)業(yè)上的利用價(jià)值。
[0008]本發(fā)明的目的及解決其技術(shù)問題是采用以下技術(shù)方案來實(shí)現(xiàn)的。依據(jù)本發(fā)明提出的一種基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,該算法包括如下步驟:
[0009]I)讀入序列圖像文件;[0010]2)提取前三幀圖像的SIFT特征點(diǎn);
[0011 ] 3)創(chuàng)建SIFT特征點(diǎn)跟蹤序列;
[0012]4)更新跟蹤特征點(diǎn)的Kalman模型;
[0013]5) Kalman預(yù)測(cè)特征點(diǎn)位置;
[0014]6)預(yù)測(cè)位置是否超出圖像邊界;
[0015]7)讀入下一幀圖像;
[0016]8)結(jié)束跟蹤該點(diǎn);
[0017]9)預(yù)測(cè)位置進(jìn)行SIFT點(diǎn)匹配;
[0018]10)更新特征點(diǎn)坐標(biāo);
[0019]11)更新特征點(diǎn)的跟蹤序列。
[0020]更為優(yōu)選的,前述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟2)為讀取前三幀圖像,對(duì)每幀圖像分別進(jìn)行SIFT特征點(diǎn)提取并生成128維描述符。[0021 ] 更為優(yōu)選的,前 述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟3)根據(jù)描述符向量間的歐式距離及Ratio比值法進(jìn)行幀到幀間的SIFT特征點(diǎn)匹配,然后根據(jù)第一幀到第二幀的匹配關(guān)系及第二幀到第三幀的匹配關(guān)系將匹配點(diǎn)對(duì)組成跟蹤序列。
[0022]更為優(yōu)選的,前述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟5)假設(shè)沒有外部控制,根據(jù)公式3預(yù)測(cè)下一幀特征點(diǎn)的狀態(tài)向量,公式3如下:
[0023]Xt = Ι.\ , τ Bul , + Wk
[0024]Pi = Ι'? '!?, '
[0025]其中Qlri是過程噪聲Wk的協(xié)方差矩陣;然后根據(jù)公式2即可計(jì)算下一幀特征點(diǎn)坐標(biāo)位置,公式2如下:
[0026]zk = Hkxk+vk
[0027]其中Xk為狀態(tài)向量,Zk為向量測(cè)量值,Hk表征狀態(tài)向量與測(cè)量向量間關(guān)系的矩陣;Vk為測(cè)量誤差。
[0028]更為優(yōu)選的,前述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟6)為判斷特征點(diǎn)的預(yù)測(cè)位置是否超出圖像邊界,如果超過邊界,則說明該點(diǎn)在當(dāng)前幀已經(jīng)消失,則執(zhí)行第8)步操作;若未超出邊界,則說明該點(diǎn)在當(dāng)前幀仍然存在,需要繼續(xù)跟
足示O
[0029]更為優(yōu)選的,前述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟9)為在預(yù)測(cè)位置周圍區(qū)域內(nèi)進(jìn)行SIFT點(diǎn)匹配。
[0030]更為優(yōu)選的,前述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,所述步驟10)為利用Kalman的更新策略,公式如下:
[0031]Kk = Pt IiUllkPt III +Rk) '
[0032]Xk = Xk + Kk (zk — HkXk )
[0033]Pk=(1-KkIIk)Pk
[0034]其中Rk是測(cè)量誤差Vk的協(xié)方差矩陣,將步驟9)中得到的SIFT點(diǎn)坐標(biāo)測(cè)量值進(jìn)行更新。
[0035]借由上述技術(shù)方案,本發(fā)明基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法至少具有下列優(yōu)點(diǎn):
[0036]本發(fā)明采用kalman(卡爾曼)濾波器時(shí)刻模擬更新特征點(diǎn)狀態(tài)模型,利用狀態(tài)模型預(yù)測(cè)下一幀特征點(diǎn)位置,然后在預(yù)測(cè)位置進(jìn)行SIFT特征點(diǎn)匹配,最后根據(jù)Kalman(卡爾曼)更新特征點(diǎn)坐標(biāo),克服長(zhǎng)序列圖像中誤差累積效應(yīng),實(shí)現(xiàn)高精度的SIFT特征點(diǎn)跟蹤。
[0037]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例詳細(xì)說明如后。
【專利附圖】
【附圖說明】
[0038]圖1為本發(fā)明基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法操作流程圖。
【具體實(shí)施方式】
[0039]為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,對(duì)依據(jù)本發(fā)明提出的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法其【具體實(shí)施方式】、特征及其功效,詳細(xì)說明如后。
[0040]實(shí)施例1
[0041]如圖1所示的本發(fā)明的跟蹤算法操作流程圖,發(fā)明提出的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法具體操作步驟如下:
[0042]I)讀入序列圖像文件:讀入序列圖像文件,如采集的pgr文件。
[0043]2)提取前三幀圖像SIFT特征點(diǎn):讀取前三幀圖像,對(duì)每幀圖像分別進(jìn)行SIFT特征點(diǎn)提取及生成128維描述符。
[0044]3)創(chuàng)建SIFT特征點(diǎn)跟蹤序列:根據(jù)描述符向量間的歐式距離及Ratio比值法進(jìn)行幀到幀間的SIFT特征點(diǎn)匹配,然后根據(jù)第一幀到第二幀的匹配關(guān)系及第二幀到第三幀的匹配關(guān)系將匹配點(diǎn)對(duì)組成跟蹤序列。
[0045]4)更新跟蹤特征點(diǎn)的Kalman模型:本發(fā)明主要用于車輛在街道上采集的街景長(zhǎng)序列圖像,由于透視投影模型的影響(遠(yuǎn)小近大),采集兩幀圖像間的特征點(diǎn)運(yùn)動(dòng)可近似看作勻加速運(yùn)動(dòng)。
[0046]根據(jù)實(shí)際模型考慮,設(shè)相鄰兩幀圖像采集時(shí)間間距為dt (根據(jù)采集時(shí)的硬件設(shè)置獲得),則特征點(diǎn)的狀態(tài)向量可由坐標(biāo)值、速度和加速度表示為Xk = (X,Y, vx, vy, ax, ay)Tk,測(cè)量值為特征點(diǎn)的圖像坐標(biāo)Zk= (x,y)Tk,矩陣H和矩陣F可表示為為:
【權(quán)利要求】
1.一種基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,該算法包括如下步驟: 1)讀入序列圖像文件; 2)提取前三幀圖像的SIFT特征點(diǎn); 3)創(chuàng)建SIFT特征點(diǎn)跟蹤序列; 4)更新跟蹤特征點(diǎn)的Kalman模型; 5)Kalman預(yù)測(cè)特征點(diǎn)位置; 6)預(yù)測(cè)位置是否超出圖像邊界; 7)讀入下一幀圖像; 8)結(jié)束跟蹤該點(diǎn); 9)預(yù)測(cè)位置進(jìn)行SIFT點(diǎn)匹配; 10)更新特征點(diǎn)坐標(biāo); 11)更新特征點(diǎn)的跟蹤序列。
2.根據(jù)權(quán)利要求1所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟2)為讀取前三幀圖像,對(duì)每幀圖像分別進(jìn)行SIFT特征點(diǎn)提取并生成128維描述符。
3.根據(jù)權(quán)利要求2所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟3)根據(jù)描述符向量間的歐式距離及Ratio比值法進(jìn)行幀到幀間的SIFT特征點(diǎn)匹配,然后根據(jù)第一幀到第二幀的匹配關(guān)系及第二幀到第三幀的匹配關(guān)系將匹配點(diǎn)對(duì)組成跟蹤序列。
4.根據(jù)權(quán)利要求1所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟5)假設(shè)沒有外部控制,根據(jù)公式3預(yù)測(cè)下一幀特征點(diǎn)的狀態(tài)向量,公式3如下:
-vA = F'Xk I + Bl>k I + Μ Pt =FP1-^t+Q^ 其中Qlri是過程噪聲wk的協(xié)方差矩陣;然后根據(jù)公式2即可計(jì)算下一幀特征點(diǎn)坐標(biāo)位置,公式2如下:
Zk 一 Hkxk+Vk 其中Xk為狀態(tài)向量,Zk為向量測(cè)量值,Hk表征狀態(tài)向量與測(cè)量向量間關(guān)系的矩陣;Vk為測(cè)量誤差。
5.根據(jù)權(quán)利要求1所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟6)為判斷特征點(diǎn)的預(yù)測(cè)位置是否超出圖像邊界,如果超過邊界,則說明該點(diǎn)在當(dāng)前幀已經(jīng)消失,則執(zhí)行第8)步操作;若未超出邊界,則說明該點(diǎn)在當(dāng)前幀仍然存在,需要繼續(xù)跟蹤。
6.根據(jù)權(quán)利要求1所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟9)為在預(yù)測(cè)位置周圍區(qū)域內(nèi)進(jìn)行SIFT點(diǎn)匹配。
7.根據(jù)權(quán)利要求6所述的基于Kalman濾波器的長(zhǎng)序列圖像SIFT特征點(diǎn)跟蹤算法,其特征在于,所述步驟10)為利用Kalman的更新策略,公式如下:
【文檔編號(hào)】G06T7/00GK103985138SQ201410203353
【公開日】2014年8月13日 申請(qǐng)日期:2014年5月14日 優(yōu)先權(quán)日:2014年5月14日
【發(fā)明者】胡伏原, 董治方, 凌燕 申請(qǐng)人:蘇州盛景空間信息技術(shù)有限公司