本發(fā)明屬于計(jì)算機(jī)圖形與圖像處理領(lǐng)域,涉及一種實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法。
背景技術(shù):
運(yùn)動(dòng)目標(biāo)在軍事制導(dǎo)、視覺(jué)導(dǎo)航、機(jī)器人、智能交通、公共安全等領(lǐng)域有著廣泛的應(yīng)用。例如,在車輛違章抓拍系統(tǒng)中,車輛的跟蹤就是必不可少的;在小區(qū)入侵檢測(cè)系統(tǒng)中,人、車輛、動(dòng)物等大型運(yùn)動(dòng)目標(biāo)的檢測(cè)與跟蹤也是整個(gè)系統(tǒng)的關(guān)鍵之處。但是,現(xiàn)今的視覺(jué)跟蹤算法,主要針對(duì)單目標(biāo)或同類多目標(biāo)跟蹤,這就大大限制了應(yīng)用范圍,也不符合實(shí)際情況。如果想要實(shí)現(xiàn)小區(qū)入侵檢測(cè)這樣的實(shí)際應(yīng)用,就需要多個(gè)攝像頭同時(shí)工作,這樣不僅造成硬件成本增加,而且實(shí)時(shí)性也不夠好。
因此,有必要設(shè)計(jì)一個(gè)實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法,能夠?qū)σ曨l中所有的運(yùn)動(dòng)目標(biāo)進(jìn)行定位與跟蹤,不限定目標(biāo)類別,從而解決現(xiàn)今所面臨的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有方法存在的不足之處,本發(fā)明的目的在于提出一種實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法,其采用如下方案:
一種實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法,包括如下步驟:
s1、視頻幀的預(yù)處理,比如超像素分割;
s2、基于超像素塊設(shè)計(jì)目標(biāo)檢測(cè)器并進(jìn)行線下訓(xùn)練,充分利用運(yùn)動(dòng)特征從而檢測(cè)到視頻中所有運(yùn)動(dòng)的目標(biāo);
s3、利用訓(xùn)練好的檢測(cè)器對(duì)給定的視頻進(jìn)行目標(biāo)檢測(cè);
s4、設(shè)計(jì)目標(biāo)跟蹤模型,并對(duì)視頻中的目標(biāo)進(jìn)行跟蹤;
s5、軌跡的可視化。
進(jìn)一步,上述步驟s1中,采用基于k-means聚類方法的SLIC超像素分割方法對(duì)視頻幀進(jìn)行預(yù)處理,進(jìn)一步包括:
s11、初始化聚類中心,確定生成超像素的個(gè)數(shù),設(shè)圖像內(nèi)有N個(gè)像素點(diǎn),則超像素的大小為N/K,聚類中心之間的距離為
s12、迭代聚類,每一次迭代中,在包含聚類中心的2S*2S區(qū)域內(nèi)搜索,使得所有像素都和一個(gè)最鄰近(min(Ds))的聚類中心聯(lián)系在一起,當(dāng)所有像素都和最近的聚類中心建立了聯(lián)系,接下來(lái)更新聚類中心,新的聚類中心是當(dāng)前所有屬于這一聚類中心所在區(qū)域的像素的特征向量的均值,記當(dāng)前聚類中心和之前聚類中心之間的殘留偏差為E,重復(fù)迭代至偏差小于設(shè)定的閾值。
其中Ds是像素i和聚類中心k之間位置坐標(biāo)(x,y)的距離和lab的顏色距離的加權(quán)距離,計(jì)算過(guò)程如下:
其中,Ns是最大空間距離,Nc是最大顏色距離。最大空間距離和聚類中心的間距相關(guān),從而令Ns=S。但是最大顏色距離Nc是不能直接確定的,我們直接將其設(shè)置為一個(gè)常量m。則公式可化為:
s13、后續(xù)處理,在s12結(jié)束后,可能有像素點(diǎn)沒(méi)有所屬聚類,則通過(guò)把這些不連續(xù)的孤立點(diǎn)和最鄰近的聚類聯(lián)系起來(lái),保證連通性。
進(jìn)一步,上述步驟s2中,檢測(cè)出視頻中所有運(yùn)動(dòng)的目標(biāo),進(jìn)一步包括:
s21、背景建模,在場(chǎng)景中存在運(yùn)動(dòng)目標(biāo)的情況下獲得背景圖像。視頻流中某一像素點(diǎn)只有在前景運(yùn)動(dòng)目標(biāo)通過(guò)時(shí),它的亮度值才會(huì)發(fā)生大的變化,在一段時(shí)間內(nèi),亮度值主要集中在很小的一個(gè)區(qū)域中,可以用這個(gè)區(qū)域內(nèi)的平均值作為該點(diǎn)的背景值。
s22、特征提取,分別提取背景和前景超像素塊的顏色直方圖特征和光流運(yùn)動(dòng)特征,并將兩種特征進(jìn)行加權(quán)處理;
其中,顏色直方圖特征用來(lái)描述圖像的顏色信息。光流的基本思想是,在空間中運(yùn)動(dòng)可以用運(yùn)動(dòng)場(chǎng)描述,而在一個(gè)圖像平面上,物體的運(yùn)動(dòng)往往是通過(guò)圖像序列中圖像之間灰度分布的不同體現(xiàn)的,從而空間中的運(yùn)動(dòng)場(chǎng)轉(zhuǎn)移到圖像上就表示為光流場(chǎng)。光流場(chǎng)反映了圖像上每一點(diǎn)灰度的變化趨勢(shì),它能夠檢測(cè)獨(dú)立運(yùn)動(dòng)的對(duì)象,不需要預(yù)先知道場(chǎng)景的任何信息,可以很精確地計(jì)算出運(yùn)動(dòng)物體的速度,并且可用于攝像機(jī)運(yùn)動(dòng)的情況。
s23、線下訓(xùn)練,利用s22中提取的特征進(jìn)行前景和背景分類器的訓(xùn)練,得到一個(gè)聯(lián)級(jí)的boosted分類器,訓(xùn)練的負(fù)樣本是背景,正樣本是前景,所有的樣本在操作前會(huì)被歸一化為相同的大小。
s24、噪聲分類器,s23步訓(xùn)練完成后,可以區(qū)分背景和前景,此時(shí)的前景就是視頻中所有運(yùn)動(dòng)的區(qū)域,但這時(shí)可能會(huì)有噪聲,比如陰影等。訓(xùn)練一個(gè)噪聲二分類分類器,負(fù)樣本是噪聲,正樣本是目標(biāo),從而能夠區(qū)分出前景中的目標(biāo)和噪聲。
進(jìn)一步,上述步驟s3中,利用s2訓(xùn)練好的分類器,對(duì)給定的視頻序列進(jìn)行目標(biāo)檢測(cè),記下檢測(cè)區(qū)域的位置、大小等信息。
進(jìn)一步,上述步驟s4中進(jìn)一步包括:
s41、軌跡初始化,利用前5幀的目標(biāo)檢測(cè)結(jié)果(detection)初始化軌跡,具體操作是,計(jì)算前5幀中相鄰幀之間所有detection的特征相似度,主要包括顏色、速度和尺寸特征。利用匈牙利算法,根據(jù)計(jì)算出來(lái)的相似度進(jìn)行detection的匹配,從而形成初始軌跡。
s42、位置預(yù)測(cè),在處理當(dāng)前幀時(shí),先利用空間上下文信息,使用貝葉斯模型進(jìn)行目標(biāo)的位置預(yù)測(cè),確定目標(biāo)可能出現(xiàn)的位置范圍,從而減小匹配范圍,降低算法復(fù)雜度。
s43、區(qū)域分塊,根據(jù)s42的預(yù)測(cè)結(jié)果,如果兩個(gè)目標(biāo)的預(yù)測(cè)位置的重疊率超過(guò)了70%,則將這兩個(gè)目標(biāo)劃所對(duì)應(yīng)的tracklets(detection不斷關(guān)聯(lián)形成軌跡,中間產(chǎn)生的結(jié)果成為tracklet)分到同一個(gè)區(qū)域塊中,最終將視頻幀劃分成多個(gè)不同的區(qū)域塊,以備后續(xù)關(guān)聯(lián)。
s44、局部關(guān)聯(lián),該步是分別處理s43產(chǎn)生的不同區(qū)域塊里面包含的tracklets,在該區(qū)域塊范圍內(nèi),計(jì)算所有tracklets和detections的相似度,利用匈牙利算法進(jìn)行最優(yōu)關(guān)聯(lián)。依次對(duì)視頻幀中所有的區(qū)域塊進(jìn)行如上處理。
相似度計(jì)算:計(jì)算出detection和tracklet的顏色特征、尺寸特征以及速度特征,將這三種特征進(jìn)行加權(quán)求和,計(jì)算不同特征之間的余弦距離作為相似度。
s45、全局關(guān)聯(lián),該步處理s44中沒(méi)有關(guān)聯(lián)成功的tracklets,此時(shí)不再局限于各個(gè)區(qū)域塊內(nèi),而是將整個(gè)幀中剩余的tracklets放在一起處理。計(jì)算s44沒(méi)有關(guān)聯(lián)成功的tracklets和detections的相似度,然后利用匈牙利算法進(jìn)行最優(yōu)匹配。
s46、遮擋處理,如果目標(biāo)被嚴(yán)重遮擋,此時(shí)目標(biāo)會(huì)被丟失,軌跡被中斷。我們s42中利用貝葉斯進(jìn)行了位置預(yù)測(cè),也就是說(shuō)目標(biāo)就算被嚴(yán)重遮擋,也會(huì)有一個(gè)大體的預(yù)測(cè)位置,該位置可以依次預(yù)測(cè)下去,但是預(yù)測(cè)幀數(shù)太多就會(huì)發(fā)生漂移,所以我們?cè)诖嗽O(shè)定一個(gè)閾值,超過(guò)一定幀數(shù),目標(biāo)還沒(méi)有出現(xiàn)而只有預(yù)測(cè)值,此時(shí)不再記錄該目標(biāo)對(duì)應(yīng)的tracklet,終止該tracklet成為一條完整的軌跡。如果該目標(biāo)在規(guī)定幀數(shù)內(nèi)又出現(xiàn)了,則繼續(xù)對(duì)該目標(biāo)進(jìn)行跟蹤。
進(jìn)一步,上述步驟s5中,對(duì)目標(biāo)的位置和軌跡進(jìn)行繪制,框出目標(biāo)的位置,畫(huà)出他們的軌跡和標(biāo)號(hào)。
本發(fā)明具有如下優(yōu)點(diǎn):
本發(fā)明方法提出一種實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法,在只有一個(gè)攝像頭的情況下,能夠?qū)σ曨l中的所有運(yùn)動(dòng)目標(biāo)進(jìn)行定位與跟蹤,沒(méi)有類別限定。這樣就避免了為了實(shí)現(xiàn)多類目標(biāo)跟蹤而增加攝像頭個(gè)數(shù),大大降低了使用成本,降低了復(fù)雜度,提高了效率。
附圖說(shuō)明
圖1為本發(fā)明中實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法的流程框圖;
圖2為視頻幀超像素分割的流程框圖;
圖3為視頻目標(biāo)檢測(cè)的流程框圖;
圖4為視頻目標(biāo)跟蹤的流程框圖。
具體實(shí)施方式
下面結(jié)合附圖以及具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明:
結(jié)合圖1所示,一種實(shí)時(shí)的視頻多類多目標(biāo)跟蹤方法,包括如下步驟:
s1、視頻預(yù)處理,采用基于k-means聚類方法的SLIC超像素分割方法對(duì)視頻幀進(jìn)行預(yù)處理,結(jié)合圖2所示,具體步驟包括:
s11、初始化聚類中心,確定生成超像素的個(gè)數(shù),假設(shè)圖像內(nèi)有N個(gè)像素點(diǎn),則超像素的大小為N/K,聚類中心間的距離為生成的超像素大小近似為S2。設(shè)超像素的聚類中心為Ck=[lk,ak,bk,xk,yk]T,其中k的范圍為1到K。為了避免噪點(diǎn)成為聚類中心,對(duì)后續(xù)的聚類過(guò)程造成干擾,需要將聚類中心移動(dòng)到以它為中心的N×N區(qū)域內(nèi)梯度值最小的地方,同時(shí)為聚類中心分配一個(gè)單獨(dú)的標(biāo)簽。計(jì)算圖像梯度公式如下:
G(x,y)=||I(x+1,y)-I(x-1,y)||2+||I(x,y+1)-I(x,y-1)||2
其中,I(x,y)為[l a b]向量對(duì)應(yīng)于[x y]向量,||.||是L2norm也就是歐幾里德距離。這樣就同時(shí)考慮了顏色和強(qiáng)度信息。
s12、迭代聚類,每一次迭代中,在包含聚類中心的2S*2S區(qū)域內(nèi)搜素,使所有像素都和一個(gè)最鄰近(min(Ds))的聚類中心聯(lián)系在一起,當(dāng)所有像素都和最近的聚類中心建立了聯(lián)系,接下來(lái)更新聚類中心,新的聚類中心為所有屬于這一聚類中心的像素的向量的均值,記當(dāng)前聚類中心和之前聚類中心之間的殘留偏差為E,重復(fù)迭代至偏差收斂。
其中Ds是像素i和聚類中心k之間位置坐標(biāo)(x,y)的距離和lab的顏色距離的加權(quán)距離,計(jì)算過(guò)程如下:
其中,Ns是最大空間距離,Nc是最大顏色距離。最大空間距離和聚類中心的間距相關(guān),從而令Ns=S。但是最大顏色距離Nc是不能直接確定的,我們直接將其設(shè)置為一個(gè)常量m。則公式可化為:
s13、后續(xù)處理,通過(guò)把不連續(xù)的孤立點(diǎn)和最鄰近的超像素聯(lián)系起來(lái),保證連通性。
在迭代聚類結(jié)束時(shí),并不能保證一個(gè)聚類里的像素點(diǎn)來(lái)自于一個(gè)連通分量,也就是說(shuō)會(huì)存在極少數(shù)的像素點(diǎn)是孤立的。為了解決這一問(wèn)題,我們可以在算法的最后一步加強(qiáng)聯(lián)通性,使用聯(lián)通元素算法使這些孤立的像素與鄰近的聚類中心關(guān)聯(lián)。如果有多個(gè)符合條件的聚類中心,則選取五維特征空間中距離最鄰近的那個(gè)中心與孤立點(diǎn)關(guān)聯(lián)。
s2、目標(biāo)檢測(cè)器設(shè)計(jì)與訓(xùn)練,結(jié)合圖3所示,具體步驟包括:
s21、背景建模,在場(chǎng)景中存在運(yùn)動(dòng)目標(biāo)的情況下獲得背景圖像。視頻流中某一像素點(diǎn)只有在前景運(yùn)動(dòng)目標(biāo)通過(guò)時(shí),它的亮度值才會(huì)發(fā)生大的變化,在一段時(shí)間內(nèi),亮度值主要集中在很小的一個(gè)區(qū)域中,可以用這個(gè)區(qū)域內(nèi)的平均值作為該點(diǎn)的背景值。
s22、特征提取,分別提取背景和前景超像素塊的顏色直方圖特征和運(yùn)動(dòng)特征的加權(quán)特征。
其中,顏色直方圖特征用來(lái)描述圖像的顏色信息。光流的基本思想是,在空間中運(yùn)動(dòng)可以用運(yùn)動(dòng)場(chǎng)描述,而在一個(gè)圖像平面上,物體的運(yùn)動(dòng)往往是通過(guò)圖像序列中圖像之間灰度分布的不同體現(xiàn)的,從而空間中的運(yùn)動(dòng)場(chǎng)轉(zhuǎn)移到圖像上就表示為光流場(chǎng)。光流場(chǎng)反映了圖像上每一點(diǎn)灰度的變化趨勢(shì),它能夠檢測(cè)獨(dú)立運(yùn)動(dòng)的對(duì)象,不需要預(yù)先知道場(chǎng)景的任何信息,可以很精確地計(jì)算出運(yùn)動(dòng)物體的速度,并且可用于攝像機(jī)運(yùn)動(dòng)的情況。
s23、線下訓(xùn)練,利用s22步中提取的特征進(jìn)行前景和背景分類器的訓(xùn)練,得到一個(gè)聯(lián)級(jí)的boosted分類器,訓(xùn)練的負(fù)樣本是背景,正樣本是前景,所有的樣本首先被歸一化為同樣的大小。
s24、噪聲分類器,s23步訓(xùn)練完成后,可以區(qū)分背景和前景,此時(shí)的前景就是視頻中所有運(yùn)動(dòng)的區(qū)域,但這時(shí)可能會(huì)有噪聲,比如陰影等。訓(xùn)練一個(gè)噪聲二分類分類器,負(fù)樣本是噪聲,正樣本是目標(biāo),從而能夠區(qū)分出前景中的目標(biāo)和噪聲。
s3、對(duì)視頻幀進(jìn)行目標(biāo)檢測(cè),利用s2訓(xùn)練好的分類器,對(duì)給定的視頻序列進(jìn)行目標(biāo)檢測(cè),記下檢測(cè)區(qū)域的位置、大小等信息。
s4、目標(biāo)跟蹤模型設(shè)計(jì)并對(duì)目標(biāo)進(jìn)行跟蹤,結(jié)合圖4所示,具體步驟包括:
s41、軌跡初始化,利用前5幀的目標(biāo)檢測(cè)結(jié)果(detection)初始化軌跡,具體操作是,計(jì)算前5幀中相鄰幀之間所有detection的特征相似度,主要包括顏色、速度和尺寸特征。利用匈牙利算法,根據(jù)計(jì)算出來(lái)的相似度進(jìn)行detection的匹配,從而形成初始軌跡。
s42、位置預(yù)測(cè),在處理當(dāng)前幀時(shí),先利用空間上下文信息,使用貝葉斯模型進(jìn)行目標(biāo)的位置預(yù)測(cè),確定目標(biāo)可能出現(xiàn)的位置范圍,從而減小匹配范圍,降低算法復(fù)雜度。
s43、區(qū)域分塊,根據(jù)s42的預(yù)測(cè)結(jié)果,如果兩個(gè)目標(biāo)的預(yù)測(cè)位置的重疊率超過(guò)了70%,則將這兩個(gè)目標(biāo)劃所對(duì)應(yīng)的tracklets(detection不斷關(guān)聯(lián)形成軌跡,中間產(chǎn)生的結(jié)果成為tracklet)分到同一個(gè)區(qū)域塊中,最終將視頻幀劃分成多個(gè)不同的區(qū)域塊,以備后續(xù)關(guān)聯(lián)。
s44、局部關(guān)聯(lián),該步是分別處理s43產(chǎn)生的不同區(qū)域塊里面包含的tracklets,在該區(qū)域塊范圍內(nèi),計(jì)算所有tracklets和detections的相似度,利用匈牙利算法進(jìn)行最優(yōu)關(guān)聯(lián)。依次對(duì)視頻幀中所有的區(qū)域塊進(jìn)行如上處理。
s45、全局關(guān)聯(lián),該步處理s44中沒(méi)有關(guān)聯(lián)成功的tracklets,此時(shí)不再局限于各個(gè)區(qū)域塊內(nèi),而是將整個(gè)幀中剩余的tracklets放在一起處理。計(jì)算s44沒(méi)有關(guān)聯(lián)成功的tracklets和detections的相似度,然后利用匈牙利算法進(jìn)行最優(yōu)匹配。
s46、遮擋處理,如果目標(biāo)被嚴(yán)重遮擋,此時(shí)目標(biāo)會(huì)被丟失,軌跡被中斷。我們s42中利用貝葉斯進(jìn)行了位置預(yù)測(cè),也就是說(shuō)目標(biāo)就算被嚴(yán)重遮擋,也會(huì)有一個(gè)大體的預(yù)測(cè)位置,該位置可以依次預(yù)測(cè)下去,但是預(yù)測(cè)幀數(shù)太多就會(huì)發(fā)生漂移,所以我們?cè)诖嗽O(shè)定一個(gè)閾值,超過(guò)一定幀數(shù),目標(biāo)還沒(méi)有出現(xiàn)而只有預(yù)測(cè)值,此時(shí)不再記錄該目標(biāo)對(duì)應(yīng)的tracklet,終止該tracklet成為一條完整的軌跡。如果該目標(biāo)在規(guī)定幀數(shù)內(nèi)又出現(xiàn)了,則繼續(xù)對(duì)該目標(biāo)進(jìn)行跟蹤。
s5、軌跡可視化,對(duì)目標(biāo)的位置和軌跡進(jìn)行繪制,框出目標(biāo)的位置,畫(huà)出他們的軌跡和標(biāo)號(hào)。