本發(fā)明主要涉及到數(shù)字圖像處理領(lǐng)域,特指一種低秩稀疏的視頻跟蹤方法。
背景技術(shù):
運(yùn)動目標(biāo)的跟蹤是視覺領(lǐng)域的一項重要課題。跟蹤任務(wù)是在目標(biāo)選定的情況下,估計后續(xù)幀中目標(biāo)狀態(tài)信息的過程。視頻圖像的運(yùn)動跟蹤問題通常也被認(rèn)為是動態(tài)狀態(tài)估計問題,根據(jù)應(yīng)用的不同,目標(biāo)的狀態(tài)信息一般為目標(biāo)的運(yùn)動物理特征,如位置,大小等。雖然國內(nèi)外研究人員經(jīng)過多年研究提出了很多解決方案,但是對于光照變化,遮擋問題,運(yùn)動模糊問題仍然不能很好的解決。當(dāng)今監(jiān)控視頻日益增多,對目標(biāo)跟蹤需求力度也在增大,需要自動化跟蹤可疑目標(biāo),對于工作人員不可能全部瀏覽完畢的巨大數(shù)據(jù)量進(jìn)行全面清查,得到目標(biāo)。
視頻目標(biāo)跟蹤方法總體分為兩類:統(tǒng)計跟蹤方法和確定性跟蹤方法。雖然確定性跟蹤方法近些年一直有新成果出現(xiàn),但是仍然不能從根本上解決實時性問題。
統(tǒng)計跟蹤方法近些年受到越來越廣泛的關(guān)注,它是利用狀態(tài)空間和測量空間共同描述整個跟蹤系統(tǒng)目標(biāo)的動態(tài)變化過程,對狀態(tài)的估計通過尋找在相應(yīng)測量條件下狀態(tài)的后驗概率峰值完成。粒子濾波是統(tǒng)計跟蹤方法中最為典型的一種方案,通過對采樣粒子不斷轉(zhuǎn)移和預(yù)測并獲取樣本相應(yīng)特征測量以對樣本權(quán)重進(jìn)行更新。利用樣本近似對狀態(tài)空間后驗概率密度進(jìn)行估計。
近幾年在視頻跟蹤領(lǐng)域國內(nèi)外研究人員對外觀模型進(jìn)行了大量研究,總體分為兩大類:產(chǎn)生式模型和判別式模型。
產(chǎn)生式模型首先通過學(xué)習(xí)目標(biāo)的外觀特征,然后利用學(xué)習(xí)到的目標(biāo)外觀特征搜索相關(guān)圖像區(qū)域,根據(jù)最小誤差準(zhǔn)則得到后續(xù)視頻幀中的目標(biāo)位置。較為典型的產(chǎn)生式外觀模型有基于稀疏表達(dá)的外觀模型,基于正交匹配的外觀模型,增量學(xué)習(xí)方法等等。產(chǎn)生式外觀模型問題在于,外觀特征的學(xué)習(xí)需要的訓(xùn)練樣本數(shù)目較多,為了降低計算復(fù)雜度,只能線下學(xué)習(xí)并假設(shè)目標(biāo)外觀在整個跟蹤過程中是不變的。產(chǎn)生式模型不能充分利用目標(biāo)附近的背景信息,不利于提升跟蹤效果。
判別式模型將跟蹤問題看做二進(jìn)制分類問題,其主要思想是將目標(biāo)從背景中分離出來。比較典型的判別式模型有利用支持向量機(jī)分類器的跟蹤,在線提升跟蹤算法,半監(jiān)督在線提升跟蹤算法,多實例學(xué)習(xí)跟蹤算法,壓縮跟蹤算法等。壓縮跟蹤算法具有較高的實用性和可靠性,但是有幾個方面問題限制了其實用性:首先,其無法適應(yīng)目標(biāo)多尺度變化對跟蹤效果的影響,導(dǎo)致目標(biāo)丟失的可能性加大。其次,目前各種判別式跟蹤方法在采集樣本時往往利用目標(biāo)位置在時間上的相關(guān)性,在固定的半徑區(qū)域內(nèi)選擇,沒有考慮目標(biāo)運(yùn)動的速度和加速度信息,對于快速目標(biāo)移動因素的適應(yīng)性較差;最后,目前各種判別式跟蹤方法,分類器學(xué)習(xí)參數(shù)值固定,當(dāng)目標(biāo)長時間被遮擋時,分類器必然會將覆蓋物誤認(rèn)為是目標(biāo)從而導(dǎo)致目標(biāo)跟丟。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出一種基于低秩稀疏的視頻目標(biāo)跟蹤方法,避免因為圖像特征信息冗余導(dǎo)致的處理速度減慢等問題。該方法實時性強(qiáng),能夠適應(yīng)目標(biāo)尺度變化,跟蹤結(jié)果魯棒性高。
本發(fā)明的技術(shù)方案是:
一種基于低秩稀疏的視頻目標(biāo)跟蹤方法,包含以下步驟:
S1:初始化參數(shù):
S11:給定圖像序列{I1,I2,…,IM},M為序列總數(shù);隨機(jī)選擇圖像序列中的一張圖像中的一個對象為目標(biāo),手動選定該目標(biāo)的左上角p1(x1,y1),左下角p2(x2,y2)以及右上角p3(x3,y3),且用矩陣P表示,生成相應(yīng)的矩形框確定該目標(biāo)在圖像中的位置,記該目標(biāo)矩形框的矢量形式為O,其寬和高分別為wi和he。
S12:壓縮S11中選定的圖像,設(shè)置壓縮后的圖像大小,寬為sz_w,高為sz_h,目標(biāo)壓縮后將其用向量表示,定義x為目標(biāo)壓縮后的圖像構(gòu)成的向量,其維度為sz_w*sz_h。具體地,其壓縮方法如下:
如果有min(wi,he)≤50,則取S11中選定的目標(biāo)大小,取值如下:
sz_w=wi,sz_h=he
如果有min(wi,he)>50,則將S11中選定的圖像通過降采樣,降到原分辨率的一半,取值如下:
如果S11中選定的目標(biāo)過大即max(wi,he)>64,則將將該目標(biāo)大小通過降采樣設(shè)置為定值:
sz_w=32,sz_h=32。
S13:初始化字典Dt
在目標(biāo)矩形框O上,定義2*3維隨機(jī)矩陣RAND,RAND中的元素為隨機(jī)生成的且服從高斯分布。
設(shè)置正樣本數(shù)為Np,生成Np個RAND,令Ti=P+RANDi*δp(i=1,2...Np),得到Np正樣本框,其中Ti指第i個樣本框的坐標(biāo)表示,δp是指正樣本框離目標(biāo)距離,值越大表明離目標(biāo)越遠(yuǎn),RANDi表示生成的第i個樣本框。
同樣的,設(shè)置負(fù)樣本數(shù)為Nn,生成Nn個RAND,令得到Nn負(fù)樣本框。其中Ti+p指第i+p個樣本框的坐標(biāo)表示,δn是指負(fù)樣本框離目標(biāo)距離,值越大表明離目標(biāo)越遠(yuǎn);表示生成的第i+Np個樣本框。δn>>δp,δn>>δp表示δn遠(yuǎn)大于δp。
定義Dt為t時刻的字典,將這Np+Nn個矩形框矢量化后得到第1時刻的字典D1。
S14:z為x在字典上的表示系數(shù)。如果Dt為完備字典,則有x=Dtz,x、Dt已知,z為求解項,λ0是z的一范數(shù)前的系數(shù)。求解目標(biāo)矩形框O在字典Dt上的表示系數(shù)z0:
其中:x0是初始目標(biāo)壓縮后的圖像構(gòu)成的向量。
S15:仿射參數(shù)設(shè)置為:σ0=[σ01,σ02,σ03,σ04,σ05,σ06]。一般地,σ01、σ04的取值為0.01~0.05,σ02、σ03的取值為0.0001~0.0005,σ05、σ06的取值為1~5。
S16:用w表示Dt每個向量的權(quán)值,w為Np+Nn維向量,wi(i=1,2...Np+Nn)為w的分量;設(shè)置wi(i=1,2...Np+Nn)初始值為設(shè)置權(quán)值的最小閾值為τ,0<τ<1。
S2:視頻跟蹤過程:
S21:利用粒子濾波方法進(jìn)行狀態(tài)預(yù)測,在目標(biāo)矩形框O的臨近區(qū)域內(nèi)隨機(jī)選取n個與目標(biāo)矩形O大小相同或相近的粒子,作為下一圖像序列目標(biāo)預(yù)測值候選者。
(1)將粒子作為目標(biāo)候選框,將S15設(shè)置的仿射參數(shù)σ0=[σ01,σ02,σ03,σ04,σ05,σ06]作為高斯分布參數(shù),生成n個粒子,每個粒子有6個參數(shù)。生成n*6維隨機(jī)矩陣T,令S=T*diag(σ0),生成n*6的仿射參數(shù)矩陣,代表n個粒子。
其中,
(2)利用S在Ii中截取圖片,其中S可以轉(zhuǎn)化為坐標(biāo)矩陣,通過坐標(biāo)矩陣截取n張圖片,每張圖片轉(zhuǎn)化為sz_w*sz_h維向量,這n張圖片在坐標(biāo)矩陣P附近,與P的距離呈高斯分布,P為Ii-1時刻的目標(biāo)圖片坐標(biāo)。這些圖片作為粒子,構(gòu)成X0,X0為(sz_w*sz_h)*n維矩陣,作為下一圖像序列目標(biāo)預(yù)測值候選者。
S22:構(gòu)建重建錯誤,剔除與目標(biāo)差距較大的粒子:
首先,定義e0i=||X0i-Dz0||2(i=1,2...n),e0值越大,說明與目標(biāo)的差距越大,X0i是矩陣X0的第i列向量,選出X0中e0最小的25個候選粒子構(gòu)成矩陣X,方法如下:
X=X0j(j∈co)
其中,
S23:Zt為X在字典Dt上的表示系數(shù)矩陣,有X=Dt×Zt;由于X是低秩,因此Zt也是低秩;由于25個候選粒子接近目標(biāo)向量,因此Zt也是稀疏矩陣,因此求解Zt可以根據(jù)約束求解,約束設(shè)置如下:
其中||E||1,1=∑j(∑i|[E]ij|),
其中,||Zt||2,1項代表低秩稀疏,Z0為z0復(fù)制NP+Nn個后所組成的矩陣,||E||1,1為重建錯誤差表示計算X=Dt×Zt時,Dt×Zt的結(jié)果與X的誤差,誤差越小,表明用字典Dt恢復(fù)的圖像越接近原始圖像。λi(i=1,2,3)作為不同項的系數(shù),令λ3=1,λ1、λ2需要根據(jù)仿真結(jié)果確定其大小。
S24:定義zio為zi正樣本系數(shù),為Np維向量,zib為zi負(fù)樣本系數(shù),為Nn維向量;設(shè)置差別分?jǐn)?shù)Δz,Δz表示正樣本系數(shù)絕對值的總和減去負(fù)樣本系數(shù)絕對值總和,Δz計算方法如下:
Δzi=||zio||1-||zib||1(i=1,2...n)
其中i表示第i個粒子,將差別分?jǐn)?shù)最小的向量作為目標(biāo)向量,同時替換上一時刻目標(biāo)表示系數(shù)z0,賦予z0新的值:
其中,||Y||1=(∑j(∑i|Yij|)),如||zio||1=(∑j(∑i|(zio)ij|)),||zib||1=(∑j(∑i|(zib)ij|))。
z0即為新選出的目標(biāo)在字典Dt上的表示系數(shù)。
S25:字典更新;
目標(biāo)跟蹤過程中,每一幀都要將權(quán)值進(jìn)行更新,將權(quán)值閾值小于τ的向量進(jìn)行更換,方法如下:
令wi←wi*exp(zoi)(i=1,2...Np+Nn),如果wi<τ,則令i0=argmin1≤i≤nai,
其中表示圖像t序列中字典Dt的第i0個分量,wi表示w的第i個分量,wi←wi*exp(zoi)(i=1,2...Np+Nn)表示將wi*exp(zoi)賦值給wi,同理,表示將z0賦值給
S26:重復(fù)S21~S25。
該方法具有如下優(yōu)點:利用l2,1范數(shù),實現(xiàn)圖像的稀疏以及低秩,減少原始高維特征即可對目標(biāo)進(jìn)行有效建模,使得本發(fā)明所述方法計算復(fù)雜度低,能夠?qū)崟r跟蹤目標(biāo)。
附圖說明
圖1為本發(fā)明的流程圖;
具體實施方式
下面結(jié)合附圖,對本發(fā)明作進(jìn)一步的說明。
S1:初始化參數(shù):
S11:給定圖像序列{I1,I2,…,IM},M為序列總數(shù);隨機(jī)選擇圖像序列中的一張圖像中的一個對象為目標(biāo),手動選定該目標(biāo)的左上角p1(x1,y1),左下角p2(x2,y2)以及右上角p3(x3,y3),且用矩陣P表示,生成相應(yīng)的矩形框確定該目標(biāo)在圖像中的位置,記該目標(biāo)矩形框的矢量形式為O,其寬和高分別為wi和he。
S12:壓縮S11中選定的圖像,設(shè)置壓縮后的圖像大小,寬為sz_w,高為sz_h,目標(biāo)壓縮后將其用向量表示,定義x為目標(biāo)壓縮后的圖像構(gòu)成的向量,其維度為sz_w*sz_h。具體地,其壓縮方法如下:
如果有min(wi,he)≤50,則取S11中選定的目標(biāo)大小,取值如下:
sz_w=wi,sz_h=he
如果有min(wi,he)>50,則將S11中選定的圖像通過降采樣,降到原分辨率的一半,取值如下:
如果S11中選定的目標(biāo)過大即max(wi,he)>64,則將將該目標(biāo)大小通過降采樣設(shè)置為定值:
sz_w=32,sz_h=32。
S13:初始化字典Dt
在目標(biāo)矩形框O上,定義2*3維隨機(jī)矩陣RAND,RAND中的元素為隨機(jī)生成的且服從高斯分布。
設(shè)置正樣本數(shù)為20,生成20個RAND,令Ti=P+RANDi*δp(i=1,2...20),得到20個正樣本框,其中Ti指第i個樣本框的坐標(biāo)表示,δp是指正樣本框離目標(biāo)距離,值越大表明離目標(biāo)越遠(yuǎn),RANDi表示生成的第i個樣本框。
同樣的,設(shè)置負(fù)樣本數(shù)為30,生成30個RAND,令Ti+20=P+RANDi+20*δn(i=1,2...30),得到30個負(fù)樣本框。其中Ti+p指第i+p個樣本框的坐標(biāo)表示,δn是指負(fù)樣本框離目標(biāo)距離,值越大表明離目標(biāo)越遠(yuǎn);RANDi+20表示生成的第i+20個樣本框。δn>>δp,δn>>δp表示δn遠(yuǎn)大于δp。
定義Dt為t時刻的字典,將這50個矩形框矢量化后得到第1時刻的字典D1。
S14:z為x在字典上的表示系數(shù)。如果Dt為完備字典,則有x=Dtz,x、Dt已知,z為求解項,λ0是z的一范數(shù)前的系數(shù)。求解目標(biāo)矩形框O在字典Dt上的表示系數(shù)z0:
其中:x0是初始目標(biāo)壓縮后的圖像構(gòu)成的向量。
S15:仿射參數(shù)設(shè)置為:σ0=[0.03,0.0005,0.0005,0.03,1,1]。
S16:用w表示Dt每個向量的權(quán)值,w為50維向量,wi(i=1,2...50)為w的分量;設(shè)置wi(i=1,2...50)初始值為設(shè)置權(quán)值的最小閾值為τ=0.6。
S2:視頻跟蹤過程:
S21:利用粒子濾波方法進(jìn)行狀態(tài)預(yù)測,在目標(biāo)矩形框O的臨近區(qū)域內(nèi)隨機(jī)選取n個與目標(biāo)矩形O大小相同或相近的粒子,作為下一圖像序列目標(biāo)預(yù)測值候選者。
(1)將粒子作為目標(biāo)候選框,將S15設(shè)置的仿射參數(shù)σ0=[0.03,0.0005,0.0005,0.03,1,1]作為高斯分布參數(shù),生成400個粒子,每個粒子有6個參數(shù)。生成400*6維隨機(jī)矩陣T,令S=T*diag(σ0),生成400*6的仿射參數(shù)矩陣,代表400個粒子。
其中,
(2)利用S在Ii中截取圖片,其中S可以轉(zhuǎn)化為坐標(biāo)矩陣,通過坐標(biāo)矩陣截取400張圖片,每張圖片轉(zhuǎn)化為sz_w*sz_h維向量,這400張圖片在坐標(biāo)矩陣P附近,與P的距離呈高斯分布,P為Ii-1時刻的目標(biāo)圖片坐標(biāo)。這些圖片作為粒子,構(gòu)成X0,X0為(sz_w*sz_h)*400維矩陣,作為下一圖像序列目標(biāo)預(yù)測值候選者。
S22:構(gòu)建重建錯誤,剔除與目標(biāo)差距較大的粒子:
首先,定義e0i=||X0i-Dz0||2(i=1,2...400),e0值越大,說明與目標(biāo)的差距越大,X0i是矩陣X0的第i列向量,選出X0中e0最小的25個候選粒子構(gòu)成矩陣X,方法如下:
X=X0j(j∈co)
其中,
S23:Zt為X在字典Dt上的表示系數(shù)矩陣,有X=Dt×Zt;由于X是低秩,因此Zt也是低秩;由于25個候選粒子接近目標(biāo)向量,因此Zt也是稀疏矩陣,因此求解Zt可以根據(jù)約束求解,約束設(shè)置如下:
其中||E||1,1=∑j(∑i|[E]ij|),
其中,||Zt||2,1項代表低秩稀疏,Z0為z0復(fù)制NP+Nn個后所組成的矩陣,||E||1,1為重建錯誤差表示計算X=Dt×Zt時,Dt×Zt的結(jié)果與X的誤差,誤差越小,表明用字典Dt恢復(fù)的圖像越接近原始圖像。λi(i=1,2,3)作為不同項的系數(shù),令λ=[1,1,1]。
S24:定義zio為zi正樣本系數(shù),為20維向量,zib為zi負(fù)樣本系數(shù),為30維向量;設(shè)置差別分?jǐn)?shù)Δz,Δz表示正樣本系數(shù)絕對值的總和減去負(fù)樣本系數(shù)絕對值總和,Δz計算方法如下:
Δzi=||zio||1-||zib||1(i=1,2...400)
其中i表示第i個粒子,將差別分?jǐn)?shù)最小的向量作為目標(biāo)向量,同時替換上一時刻目標(biāo)表示系數(shù)z0,賦予z0新的值:
其中,||Y||1=(∑j(∑i|Yij|)),如||zio||1=(∑j(∑i|(zio)ij|)),||zib||1=(∑j(∑i|(zib)ij|))。
z0即為新選出的目標(biāo)在字典Dt上的表示系數(shù)。
S25:字典更新;
目標(biāo)跟蹤過程中,每一幀都要將權(quán)值進(jìn)行更新,將權(quán)值閾值小于τ的向量進(jìn)行更換,方法如下:
令wi←wi*exp(zoi)(i=1,2...50),如果wi<τ,則令i0=argmin1≤i≤nai,
其中表示圖像t序列中字典Dt的第i0個分量,wi表示w的第i個分量,wi←wi*exp(zoi)(i=1,2...50)表示將wi*exp(zoi)賦值給wi,同理,表示將z0賦值給
S26:重復(fù)S21~S25。
如上所述,本發(fā)明利用統(tǒng)計跟蹤方法粒子濾波進(jìn)行狀態(tài)估計。通過建立字典對目標(biāo)、粒子進(jìn)行低秩稀疏表示,使得計算復(fù)雜度大大降低。利用重建錯誤預(yù)先刪除部分粒子,再計算差別分?jǐn)?shù),最終選定下一幀目標(biāo)。本發(fā)明所述方法對視頻圖像中的目標(biāo)能夠?qū)崟r跟蹤、準(zhǔn)確性高、計算復(fù)雜度低,符合實際跟蹤中應(yīng)用的需要。