一種基于目標(biāo)分解的Camshift跟蹤方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像處理與目標(biāo)跟蹤領(lǐng)域,涉及一種改進(jìn)的Camshift跟蹤方法,特別 涉及一種基于目標(biāo)分解的Camshift跟蹤方法。
【背景技術(shù)】
[0002] 圖像目標(biāo)跟蹤技術(shù)在國(guó)防、軍事、工業(yè)生產(chǎn)以及監(jiān)控系統(tǒng)等領(lǐng)域有著重要的應(yīng)用 價(jià)值,一直是計(jì)算機(jī)視覺(jué)領(lǐng)域的熱點(diǎn)研宄問(wèn)題。目標(biāo)跟蹤的性能受多種因素的影響,目標(biāo)的 姿態(tài)、平移、旋轉(zhuǎn)、縮放變化,光照的不均勻以及亮度變化都會(huì)對(duì)跟蹤結(jié)果產(chǎn)生較大的干擾。
[0003] MeanShift方法以及在此基礎(chǔ)上提出的Camshift方法由于具有快速匹配的特點(diǎn) 得到研宄者的格外關(guān)注。尤其CamShift方法能夠自適應(yīng)調(diào)整模板,對(duì)目標(biāo)的各種姿態(tài)變化 具有一定的適應(yīng)性。當(dāng)目標(biāo)與背景對(duì)比度明顯時(shí),這類(lèi)方法具有較為穩(wěn)定的跟蹤效果。但 當(dāng)背景復(fù)雜時(shí),背景信息會(huì)對(duì)模板的自適應(yīng)調(diào)整產(chǎn)生干擾,從而破壞模型的準(zhǔn)確性,容易造 成目標(biāo)定位不準(zhǔn)確,甚至目標(biāo)丟失。
[0004] 因此,設(shè)計(jì)一種具有較強(qiáng)抗干擾能力的改進(jìn)Camshift跟蹤方法具有很好的應(yīng)用 價(jià)值。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問(wèn)題是,針對(duì)CamShift跟蹤方法對(duì)目標(biāo)遮擋、姿態(tài)變化適 應(yīng)能力差的缺點(diǎn),設(shè)計(jì)一種具有較強(qiáng)適應(yīng)性的改進(jìn)跟蹤方法。
[0006] 本發(fā)明所采用的技術(shù)方案是:一種基于目標(biāo)分解的Camshift跟蹤方法,針對(duì)大目 標(biāo)跟蹤問(wèn)題提出一種改進(jìn)的Camshift跟蹤策略,將被跟蹤的目標(biāo)分解為多個(gè)子目標(biāo),對(duì)每 個(gè)子目標(biāo)分別進(jìn)行目標(biāo)跟蹤,利用子目標(biāo)之間位置信息的相對(duì)不變性判斷各子目標(biāo)跟蹤結(jié) 果的正確性,對(duì)于錯(cuò)誤定位的子目標(biāo)進(jìn)行校正,根據(jù)校正后的子目標(biāo)集判斷被跟蹤目標(biāo)的 準(zhǔn)確位置。該方法在大多數(shù)子目標(biāo)跟蹤正確的情況下即可對(duì)被跟蹤目標(biāo)進(jìn)行定位,其錯(cuò)誤 校正過(guò)程能夠提高目標(biāo)跟蹤的可靠性,特別對(duì)遮擋等情況的發(fā)生具有良好的適應(yīng)性。
[0007] 本發(fā)明的目的在于在現(xiàn)有的CamShift方法的基礎(chǔ)上設(shè)計(jì)了一種改進(jìn)的CamShift 跟蹤方法,將目標(biāo)分解為具有不同顯著特征的多個(gè)子目標(biāo),構(gòu)成目標(biāo)子集,對(duì)每個(gè)子目標(biāo) 分別進(jìn)行定位跟蹤,并根據(jù)子目標(biāo)之間蘊(yùn)含的距離關(guān)系對(duì)定位結(jié)果進(jìn)行正誤分析和錯(cuò)誤校 正,提尚跟蹤方法的適應(yīng)能力,提尚了目標(biāo)跟蹤的穩(wěn)定性,具有很好的實(shí)用性。
【附圖說(shuō)明】
[0008] 圖1是本發(fā)明方法跟蹤效果圖。
【具體實(shí)施方式】
[0009] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0010] 設(shè)被跟蹤目標(biāo)為A,在被跟蹤目標(biāo)區(qū)域內(nèi)選取n個(gè)具有不同顯著特征的區(qū)域,每個(gè) 特征區(qū)域均確定為一個(gè)被跟蹤的子目標(biāo),所有的子目標(biāo)構(gòu)成目標(biāo)子集U,這樣,被跟蹤目標(biāo) 可由目標(biāo)子集U來(lái)描述。
[0011] 目標(biāo)子集中的一個(gè)點(diǎn)代表一個(gè)子目標(biāo)的中心。記目標(biāo)子集中第i個(gè)目標(biāo)的空間坐 標(biāo)為(Xi,yi),則目標(biāo)子集U可表示為:
[0012]Un= [(x^y),(x2, y2),…,(xn,yn)]T (1)
[0013] 目標(biāo)子集u中的目標(biāo)i與目標(biāo)j之間的距離定義為:
[0014] dij = sqrt [ (x「Xj) 2+ (y「yj)2] (2)
[0015] 其中(Xi,yi)和(Xj,y」)分別為目標(biāo)子集U中目標(biāo)i和目標(biāo)j的坐標(biāo)。
[0016] 由此可建立目標(biāo)子集U的子目標(biāo)距離關(guān)聯(lián)矩陣Dn:
[0017]
【主權(quán)項(xiàng)】
1. 一種基于目標(biāo)分解的Camshift跟蹤方法,其特征在于,將被跟蹤的目標(biāo)分解為多個(gè) 子目標(biāo),對(duì)每個(gè)子目標(biāo)分別進(jìn)行目標(biāo)跟蹤,利用子目標(biāo)之間位置信息的相對(duì)不變性判斷各 子目標(biāo)跟蹤結(jié)果的正確性,對(duì)于錯(cuò)誤定位的子目標(biāo)進(jìn)行校正,根據(jù)校正后的子目標(biāo)集判斷 被跟蹤目標(biāo)的準(zhǔn)確位置。
2. 根據(jù)權(quán)利要求1所述的一種基于目標(biāo)分解的Camshift跟蹤方法,其特征在于,設(shè)被 跟蹤目標(biāo)為A,在被跟蹤目標(biāo)區(qū)域內(nèi)選取n個(gè)具有不同顯著特征的區(qū)域,每個(gè)特征區(qū)域均確 定為一個(gè)被跟蹤的子目標(biāo),所有的子目標(biāo)構(gòu)成目標(biāo)子集U,這樣,被跟蹤目標(biāo)可由目標(biāo)子集 U來(lái)描述,目標(biāo)子集中的一個(gè)點(diǎn)代表一個(gè)子目標(biāo)的中心,記目標(biāo)子集中第i個(gè)目標(biāo)的空間坐 標(biāo)為Ui,yi),則目標(biāo)子集U可表示為: Un -[(x丄,yj,(x2,y2),...,(xn,yn) ] (1) 目標(biāo)子集U中的目標(biāo)i與目標(biāo)j之間的距離定義為: 屯』=sqrt[(x廠叉』)2+ (y^yj)2] (2) 其中(Xi,yi)和(Xj,y」)分別為目標(biāo)子集U中目標(biāo)i和目標(biāo)j的坐標(biāo); 由此可建立目標(biāo)子集U的子目標(biāo)距離關(guān)聯(lián)矩陣Dn:
3. 根據(jù)權(quán)利要求1所述的一種基于目標(biāo)分解的Camshift跟蹤方法,其特征在于,在 HSV顏色空間內(nèi)對(duì)每個(gè)子目標(biāo)建立色調(diào)(hue)直方圖模型,采用CamShift方法對(duì)目標(biāo)子集 中的各個(gè)子目標(biāo)分別進(jìn)行定位跟蹤,具體步驟如下: St印1?設(shè)子目標(biāo)k區(qū)域內(nèi)各個(gè)像素的位置為;U: ,其中i= 1,2, ? ? ?,sk;目標(biāo)k 的中心位置為(xk,yk),利用像素的色調(diào)特征構(gòu)建子目標(biāo)k的顏色特征直方圖模型為:
其中,色調(diào)特征劃分為n個(gè)等級(jí),七為顏色概率分Y|丨,蚋數(shù)/K.vfi)表示像素?)量 化后的特征值,Cqk為歸一化系數(shù):
5為Kronecker函數(shù),即:
K為無(wú)參高斯核函數(shù),即:
其中,h為核函數(shù)的帶寬; Step2.根據(jù)所建子目標(biāo)模型進(jìn)行反向投影,建立起各子目標(biāo)的搜索窗的概率投影圖; 設(shè)子目標(biāo)k的搜索窗中像素點(diǎn)的色調(diào)特征值為u,則該像素點(diǎn)的色調(diào)概率投影圖的 像素值/(<,父)為:
其中I」為取整操作,概率分布圖中取值越大的像素表明該像素為目標(biāo)像素的可能性 越大; St印3?計(jì)算搜索窗k的零階矩和一階矩:
Step4?計(jì)算搜索窗k的質(zhì)心(xAe,/e):
St印5.自適應(yīng)調(diào)整搜索窗口的邊長(zhǎng):
移動(dòng)子目標(biāo)k的搜索窗的中心到質(zhì)心,如果移動(dòng)距離大于預(yù)設(shè)的固定閾值,則重復(fù)Step2_Step5,直到搜索窗k的中心與質(zhì)心間的移動(dòng)距離小于預(yù)設(shè)的閾值; Step6.判斷子目標(biāo)的正確性: 設(shè)子目標(biāo)i在跟蹤圖像中確定的目標(biāo)位置為(x'i,y'i),根據(jù)各個(gè)子目標(biāo)跟蹤結(jié)果, 建立跟蹤圖像中目標(biāo)子集U' n: Urn= [(xr ;!,y' ;!),(x' 2,y' 2)…(x'n,y'n)]T (16) 建立跟蹤圖像中子目標(biāo)距離關(guān)聯(lián)矩陣D' n:
根據(jù)被跟蹤目標(biāo)模板的子目標(biāo)距離關(guān)聯(lián)矩陣〇"和跟蹤圖像中子目標(biāo)距離關(guān)聯(lián)矩陣Nn的比較結(jié)果,判斷各子目標(biāo)跟蹤結(jié)果是否正確; 根據(jù)DjPD' n,求取
個(gè)核心{Cij,i= 1,2,3, ? ? ?,n-1;j= 1,2,3, ? ??,n;且i <j},其中: Cij=d'ij/dij (18) 以上述核心為中心,建立
個(gè)核函數(shù):
i= 1,2, ? ? ?,n-1 ;j= 1,2, ? ??,n;且i<j (19) 上述核函數(shù)的和為:
函數(shù)G最大值所在位置確定為核中心cK,并建立判斷矩陣E:
其中,n為中心閾值,對(duì)于判斷矩陣E,如果存在全零行,即eij= 0,j= 1,2, ...,n, 則可判斷為第i個(gè)子目標(biāo)定位錯(cuò)誤; Step7?錯(cuò)誤定位子目標(biāo)的校正: 如果存在錯(cuò)誤定位的子目標(biāo),則利用正確定位的子目標(biāo)對(duì)錯(cuò)誤定位的子目標(biāo)進(jìn)行校 正;設(shè)正確定位的子目標(biāo)有m個(gè),第j個(gè)子目標(biāo)的中心坐標(biāo)為(x'」,/」),其中j=l, 2,...,m;而第i個(gè)錯(cuò)誤定位子目標(biāo)中心校正位腎為U 則:荇之間的距離定義為:
定義目標(biāo)函數(shù)J為:
將上述目標(biāo)函數(shù)取最小值所對(duì)應(yīng)的位置確定為子目標(biāo)i的校正位置; StepS.對(duì)未作校正的子目標(biāo)進(jìn)行方向角和尺寸大小的更新: 設(shè)子目標(biāo)k的搜索窗的二階矩定義為:
設(shè):
更新跟蹤目標(biāo)區(qū)的長(zhǎng)軸:
更新跟蹤目標(biāo)區(qū)的短軸:
更新目標(biāo)k運(yùn)動(dòng)方向與水平方向夾角0k:
經(jīng)過(guò)校正的子目標(biāo)不進(jìn)行大小和方向的更新; St印8.返回St印1繼續(xù)進(jìn)行下一幀圖像中目標(biāo)子集的定位與跟蹤。
【專(zhuān)利摘要】本發(fā)明屬于圖像處理與目標(biāo)跟蹤領(lǐng)域,具體為一種基于目標(biāo)分解的Camshift跟蹤方法,針對(duì)大目標(biāo)跟蹤問(wèn)題提出一種改進(jìn)的Camshift跟蹤策略,將被跟蹤的目標(biāo)分解為多個(gè)子目標(biāo),對(duì)每個(gè)子目標(biāo)分別進(jìn)行目標(biāo)跟蹤,利用子目標(biāo)之間位置信息的相對(duì)不變性判斷各子目標(biāo)跟蹤結(jié)果的正確性,對(duì)于錯(cuò)誤定位的子目標(biāo)進(jìn)行校正,根據(jù)校正后的子目標(biāo)集判斷被跟蹤目標(biāo)的準(zhǔn)確位置。本發(fā)明對(duì)遮擋等情況的發(fā)生具有良好的適應(yīng)性。本發(fā)明適用于運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)中。
【IPC分類(lèi)】G06T7-20
【公開(kāi)號(hào)】CN104574444
【申請(qǐng)?zhí)枴緾N201510024097
【發(fā)明人】修春波, 魏世安, 萬(wàn)蓉鳳
【申請(qǐng)人】天津工業(yè)大學(xué)
【公開(kāi)日】2015年4月29日
【申請(qǐng)日】2015年1月19日