本發(fā)明涉及計算機視覺跟蹤技術(shù)領(lǐng)域,具體涉及一種以紙張為目標的視覺跟蹤算法。
背景技術(shù):
基于視覺的目標跟蹤在視頻監(jiān)控、人機交互等領(lǐng)域的應(yīng)用逐漸普及,這方面的研究也是計算機視覺領(lǐng)域的研究熱點。目前這種視覺目標跟蹤的絕大部分應(yīng)用場景都具有非常豐富的紋理細節(jié),如人臉、行人和車輛等,這些紋理細節(jié)為目標跟蹤提供了足夠多的特征信息,構(gòu)成了目標跟蹤的特征計算空間,盡管由于光照或姿態(tài)等導致特征跳變會影響跟蹤的魯棒性。但對于一些特別簡單的場景,如辦公桌面上紙張或卡片等目標,因為紋理信息極其匱乏,如何跟蹤同樣是一個值得深入研究的課題。
現(xiàn)有跟蹤算法嚴重依賴于檢測出的特征點,對于本專利來說,特征點數(shù)量嚴重不足,導致跟蹤的魯棒性不夠。本算法通過強化紙張頂角的跟蹤來獲得整個紙張的跟蹤,魯棒性得到大大提高,而且在部分被遮擋的情況下仍然可以實現(xiàn)魯棒跟蹤。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的不足,本發(fā)明提供一種,通過以下技術(shù)方案予以實現(xiàn):
一種以紙張為目標的視覺跟蹤算法,選取一張無紋理信息的矩形紙,記錄紙張的大小,將這張紙放在無紋理信息的桌面上,將該紙張在桌面上進行隨意移動和旋轉(zhuǎn),實時并連續(xù)獲取紙張在桌面上進行隨意移動和旋轉(zhuǎn)過程的視頻圖像。
步驟1:獲取視頻圖像的第一幀,選取該紙張的一個角,將標記窗口的中心與該角的頂點重合,且將該標記窗口的各邊與紙張的各邊平行,得到一個標記區(qū)域,記錄該標記區(qū)域中心點的位置信息并將該矩形區(qū)域作為目標區(qū)域;選取該標記窗口對該角所在的區(qū)域進行任意標記得到多個樣本圖像,根據(jù)正樣本和負樣本的確定方法得到m個正樣本和n個負樣本;
所述的正樣本和負樣本的確定方法為:計算樣本圖像的中心點與目標區(qū)域的中心點的距離,將距離小于h的樣本圖像標記為正樣本,將距離大于h且小于v的樣本圖像標記為負樣本圖像,所述的h取[4,8],v取[20,25];
步驟2:利用特征值的計算方法分別計算第一幀圖像中的正樣本和負樣本的特征值;
所述的特征值計算方法為:
對于任意一個正樣本或負樣本,將該樣本所在的當前幀圖像轉(zhuǎn)化成灰度圖,對該灰度圖進行梯度計算,得到該灰度圖像的梯度模,構(gòu)建該梯度模的積分圖;
分別利用t個特征模板對該樣本進行采樣,得到t個采樣區(qū)域,利用積分圖計算出每個采樣區(qū)域梯度模的像素和為
其中,公式(1)中f表示特征值,
步驟3:計算視頻圖像第一幀中所有正樣本的特征值在第i維度的期望
步驟4:獲取視頻圖像的第二幀作為當前幀,根據(jù)采樣塊生成規(guī)則在當前幀圖像上生成m個采樣塊,將每一個采樣塊作為一個正樣本,利用特征值計算方法計算每一個采樣塊的特征值,其中m取[500,1000];利用得分計算方法計算每一個采樣塊的得分,得到得分最高的十個采樣塊;
所述的采樣塊生成規(guī)則為:
對于當前幀圖像,在上一幀確定的目標區(qū)域周圍隨機生成多個采樣塊,所述的采樣塊大小標記窗口大小相同,所述的采樣塊與上一幀確定的目標區(qū)域在該幀圖像的像素空間上存在重疊;
所述的得分計算方法為:
利用公式(4)計算每一個采樣塊的值h(v)即為得分;
其中p(vi|y=1)為該采樣塊為正樣本的第i維度的條件概率,通過公式(2)計算;
p(vi|y=0)為該樣本為負樣本的第i維度的條件概率為p(vi|y=0),通過公式(3)計算;
步驟5:對于步驟5獲得的得分最高的十個采樣塊采用目標塊確定方法找到需要的一個采樣塊作為目標塊;將步驟4中得到每一個采樣塊當作一個樣本圖像,將得到的目標塊當作一個目標區(qū)域,跟蹤根據(jù)正樣本和負樣本的確定方法區(qū)分當前幀圖像中的正樣本和負樣本,根據(jù)期望和標準差更新方法更新當前幀所有正樣本和負樣本的期望和標準差,得到更新后的正樣本和負樣本在第i維度的期望和標準差,其中i取值為1‐50之間任意整數(shù);
所述的目標塊的確定方法為:
對于得分最高的十個采樣塊中的每一個,分別利用lsd直線檢測,得到每個采樣塊內(nèi)部存在的直線,找到內(nèi)部存在兩條直線夾角在[70°,110°]且該兩條直線交點在該采樣塊內(nèi)部的采樣塊作為備選目標塊,選擇兩直線交點最靠近中心的一個備選目標塊作為目標塊;
所述的期望和標準差更新方法為:
根據(jù)特征值計算方法得到正樣本和負樣本的特征值,分別計算正樣本和負樣本的特征值在第i維度的期望和標準差;根據(jù)公式(5)計算更新后的當前幀的正樣本的特征值在第i維的期望和標準差,其中i取值為1‐50;
式(5)中
根據(jù)公式(6)更新當前幀的負樣本的特征值在第i維的期望和標準差;
式(6)中
步驟6:對于紙張的其余三個角,重復步驟1-5,找到紙張每個角對應(yīng)的目標塊,根據(jù)紙張四個頂角對應(yīng)的目標塊的中心在在當前幀圖像中的位置,得到紙張的四個頂角位置,確定紙張在該幀圖像中的位置;
步驟7:獲取視頻圖像的接下來的每一幀作為當前幀,重復步驟4、5,得到該幀圖像中的四個目標塊,獲取目標塊的中心在當前幀圖像中的位置作為紙張的四個頂角位置,根據(jù)四個頂角位置確定紙張在該幀圖像中的位置;
其中重復步驟(4)時,生成采樣塊時,將上一幀確定的目標塊當作采樣塊生產(chǎn)方法中的目標區(qū)域;
其中在重復步驟4時,公式(2)中的
其中,所述的標記窗口的大小為32*32,所述的m取4000-6000之間任意整數(shù),n取1000-2000之間任意整數(shù)。
其中,所述特征模版為矩形且長寬均小于標記窗口的隨機邊長,每一個特征模版隨機生成一個隨機因子w。
其中,所述的步驟5、6、7中,若某個頂角對應(yīng)的得分最高的十個采樣塊中,利用lsd直線檢測找到的每個采樣塊內(nèi)部的直線,對于這十個采樣塊,均未找到內(nèi)部存在兩條直線夾角在[70°,110°]的采樣塊,或者雖找到兩條直線夾角在[70°,110°]范圍內(nèi)但這兩條直線交點不在該采樣塊內(nèi)部時,則認為未找到目標塊,此時根據(jù)平行四邊形法則,利用其它3個頂角的目標塊確定這一個角的目標塊。
以上技術(shù)方案與現(xiàn)有技術(shù)相比具有以下技術(shù)效果:
1、本算法中,在采樣塊中選取十個得分最高的采樣塊,對每一個采樣塊利用lsd直線檢測算法,找到存在夾角[70°,110°]的且兩條直線交點在該采樣塊內(nèi)部,進一步選擇兩直線交點最靠近中心的一個采樣塊作為目標塊,這樣考慮到了紙張在移動過程中與攝像頭存在拍攝角度的問題,使得最終得到的跟蹤目標更加準確。
2、本算法中,在計算采樣塊特征值時,是在灰度圖像的梯度模空間進行,去掉了很多干擾信息,計算特征值時采用了角點響應(yīng)增強了特征值的計算,如公式(1),使得對角的跟蹤得到強化,最終提高紙張頂角跟蹤的魯棒性。
3、本算法中,對于整張紙的跟蹤是通過對紙張的4個頂角的跟蹤來實現(xiàn)的。如果跟蹤過程,某個頂角跟蹤失敗,即沒有找到該頂角的對應(yīng)的目標塊,則直接利用平行四邊形法則,直接利用其它三個頂角對應(yīng)的目標塊的中心位置來推算該頂角的位置。最終可以提高紙張在被部分遮擋的情況下跟蹤的魯棒性。
附圖說明
圖1是本算法的流程圖;
圖2是本算法在第一幀視頻圖像中標記的目標區(qū)域示意圖;
圖3是本算法在第一幀視頻圖像中標記的多個樣本圖像的示意圖;
圖4是本算法對采樣塊利用lsd直線檢測可能得到的8種結(jié)果示意圖;
圖5是本算法在第三幀圖像得到的十個得分最高的采樣塊進行l(wèi)sd直線檢測的結(jié)果;
圖6是利用目標塊確定的方法找到第三幀圖像中某角對應(yīng)的目標塊內(nèi)部直線示意圖;
圖7是利用本算法得到的紙張四個角的目標塊的示意圖;
圖8是根據(jù)紙張三個角對應(yīng)的目標塊確定另一個目標塊的示意圖。
具體實施方式
本發(fā)明中在記錄跟蹤目標的位置信息時,對于每一幀視頻圖像,以視頻圖像的左上角為坐標原點,以水平方向為y軸,以豎直方向為x軸建立坐標系,記錄跟蹤目標在該坐標系中的坐標,將該坐標作為跟蹤目標的位置信息。
本發(fā)明選取一張的無紋理信息的矩形紙,將這張紙放在無紋理信息的桌面上,將該紙張在桌面上進行隨意移動和旋轉(zhuǎn),實時并連續(xù)獲取紙張在桌面上進行隨意移動和旋轉(zhuǎn)過程的視頻圖像;
獲取視頻圖像的第一幀,選取的標記窗口的大小為32*32,如圖2為第一幀視頻圖像中標記的跟蹤目標示意圖,h取8,v取20,得到4506個正樣本和1364個負樣本,隨機生成50個特征模版。
本發(fā)明的得分計算方法中,在計算第二幀圖像中采樣塊的得分時,
實施例1
本實施例中,選取一張空白的矩形紙張放在一個白色光滑桌面上(無紋理信息),將該紙張在桌面上進行隨意移動和旋轉(zhuǎn),實時并連續(xù)獲取紙張在桌面上進行隨意移動和旋轉(zhuǎn)過程的視頻圖像。
獲取視頻圖像的第一幀,選取該紙張的一個角,選取的標記窗口的大小為32*32,將標記窗口的中心與該角的頂點重合,且將該標記窗口的各邊與紙張的各邊平行,得到一個標記區(qū)域,記錄該標記區(qū)域中心點的位置信息并將該矩形區(qū)域作為目標區(qū)域;如圖2為第一幀視頻圖像中標記的目標區(qū)域示意圖,在確定正樣本和負樣本時,h取8,v取20,如圖3在第一幀視頻圖像中標記的多個樣本圖像的示意圖,再根據(jù)正負樣本的確定方法,確定樣本圖像中的正樣本和負樣本,根據(jù)正樣本和負樣本的確定方法得到5234個正樣本和1456個負樣本。
計算第一幀圖像中正樣本和負樣本的特征值,本實施例中在計算樣本圖像時,先將當前幀圖像轉(zhuǎn)化成灰度圖,對該灰度圖進行梯度計算,得到該灰度圖像的梯度模,進一步構(gòu)建該梯度模的積分圖,并構(gòu)建了120個特征模版對每一個正樣本或者負樣本進行采樣,在根據(jù)積分圖計算每個樣本圖像的像素和,這樣減少了算法遍歷的次數(shù),提高了計算效率。
同時在計算采樣塊特征值時,是在灰度圖像的梯度??臻g進行,去掉了很多干擾信息,計算特征值時采用了角點響應(yīng)增強了特征值的計算,如公式(1),使得對角的跟蹤得到強化,最終提高紙張頂角跟蹤的魯棒性。
分別計算視頻圖像第一幀中所有正樣本和負樣本的特征值在1‐50維度下的每隔維度的期望和標準差;
獲取視頻圖像的第二幀作為當前幀,在第一幀確定的目標區(qū)域的像素空間位置的周圍隨機生成800個采樣塊,生成的采樣塊的大小和標記窗口的大小相同,即采樣塊的大小和正樣本、負樣本同等大小,在第一幀時獲取了目標區(qū)域的位置信息,在當前幀生成采樣塊時,必須保證生成的采樣塊和上幀中的目標區(qū)域在像素空間上存在重疊,這樣生成的采樣塊就是潛在的正樣本;同時為了進一步在這些采樣塊中尋找目標塊;本實施例中通過計算所有采樣塊的得分,選擇十個得分最高的采樣塊。
本實施例中提供了一種跟蹤目標的確定方法,計算出十個得分最高的采樣塊,對于第三幀得到的得分最高的是個采樣塊的得分分別為,1227、1216、1210、1203、1199、1188、1183、1179、1168、1136,對每一個采樣塊進行l(wèi)sd直線檢測;因為即使得分最高的一個采樣塊也并一定不是我們需要的目標塊,因為對每個采樣塊進行通過直線檢測,得到結(jié)果可能有八種情況,如圖4為本算法中利用lsd對采樣塊進行直線檢測可能得到的8種結(jié)果示意圖,由圖可以看出,所有采樣塊內(nèi)部的檢測到的直線形式各不相同,共有八種情況。
本算法中,對第三幀圖像得到的得分最高的十個采樣塊進行直線檢測,結(jié)果如圖5所示,可以看到這十個采樣塊內(nèi)部存在的直線形式比較接近,圖5中,第一個采樣塊兩條直線夾角為82°,且直線的夾角靠近采樣塊的中心,第2、3、5、6、8、9和10采樣塊的夾角也在[70°,110°]范圍內(nèi),但直線交點和第一個采樣塊相比偏離采樣塊的中心,第7個采樣塊夾角為125°,不在我們要求的范圍內(nèi)。
此時若找到內(nèi)部存在兩條直線夾角在[70°,110°]的且兩條直線交點在該采樣塊內(nèi)部,則將該采樣塊作為備選目標塊,這樣考慮到了紙張在移動過程中與攝像頭存在拍攝角度的問題,所以紙張的頂角角度可能發(fā)生變化,經(jīng)大量實驗后發(fā)現(xiàn)取[70°,110°]時,得到的結(jié)果更加精確,使得最終得到的跟蹤目標更加準確;在備選目標中選擇兩直線交點最靠近中心的一個作為目標塊;利用此方法找到的目標塊如圖6所示,圖6中的采樣塊內(nèi)部的直線夾角為82°,且和其他九個采樣塊相比,該采樣塊內(nèi)部的兩條直線的交點靠近采樣塊的中心,則將該采樣塊作為目標塊。
未找到內(nèi)部存在兩條直線夾角在[70°,110°]的或者雖找到兩條直線但兩條直線交點不在該采樣塊內(nèi)部時,則認為未找到目標塊。和現(xiàn)有的只取一個得分最高的采樣塊作為跟蹤目標相比,本實施例提供的利用lsd直線檢測對得分最高的十個采樣塊進行檢測,能更加精確的確定跟蹤目標,同時考慮到在紙張移動和旋轉(zhuǎn)過程中,攝像頭和紙張的拍攝角度問題,將通過直線檢測獲得的兩條直線夾角在[70°,110°]更為合理,同時為了使得到的跟蹤目標更加精確,本實施例中在備選特征塊中選擇兩直線交點最靠近采樣塊中心的作為跟蹤目標。
現(xiàn)有技術(shù)僅取得分最高的一個特征塊就作為跟蹤目標,這樣得到的跟蹤目標準確性不高,因為通過直線檢測,即使得分最高的十個特征塊內(nèi)部的直線的形式也不同,所以本發(fā)明通過獲得的兩條直線夾角在[70°,110°]且交點最靠近采樣塊中心的作為目標塊,重復上述方法,找到紙張每個角對應(yīng)的目標塊,如圖7為根據(jù)本實施例找到的某幀圖像中紙張四個角對應(yīng)的目標塊,根據(jù)將目標塊的中心作為紙張該角的位置,通過四個目標塊即可確定紙張在該幀圖像中的位置。
本實施例中,在根據(jù)找到的幾個頂角對應(yīng)的目標塊的中心位置來確定紙張的位置信息時,若有一個或者兩個角的未找到對應(yīng)的目標塊時,可以根據(jù)已經(jīng)確定的其他角的目標塊,結(jié)合平行四邊形法則和已知的紙張大小,來確定其余兩個角對應(yīng)的目標塊,進而確定紙張在當前幀視頻圖像中的位置信息,這樣的得到的每個角的目標塊都是準確的,提高了算法的魯棒性,如圖8找了三個角對應(yīng)的跟蹤目標,根據(jù)這三個跟蹤目標的位置信息,利用平行四邊形法則,結(jié)合已知的紙張大小,即可確定紙張最后一個角的位置信息。
每幀視頻圖像大多都能找到符合要求的特征塊作為跟蹤目標,只有少數(shù)情況會出現(xiàn)某個角未找到對應(yīng)的跟蹤目標。
在第二幀后的每一幀圖像,當目標塊確定后,為了下一幀確定的目標塊更加準確,需要對該幀的正負樣本的期望和標準差進行更新,結(jié)合上一幀的期望和標準差對本幀的期望和標準差進行調(diào)和,這樣在下一幀計算每個采樣塊的得分時,采用的上一幀的期望和標準差就是已經(jīng)進行更新后的,使得得分的目標塊更加準確,提高了跟蹤算法的精確性。