摘 要: 為了提高多目標(biāo)跟蹤中的處理速度,提出一種快速標(biāo)記多目標(biāo)的方法,并給出了算法流程和實驗結(jié)果分析。通過圖像坐標(biāo)變換,將9點象素融合到新圖像中的1點,逐行反復(fù)搜索鄰域連通點以實現(xiàn)目標(biāo)自動標(biāo)記。
關(guān)鍵詞: 多目標(biāo)跟蹤 目標(biāo)標(biāo)記 目標(biāo)識別
現(xiàn)代技術(shù)的發(fā)展,對電視跟蹤性能的要求也越來越高,跟蹤技術(shù)所解決的問題也越來越復(fù)雜。在許多場合,例如空中交通管制(民航飛機)和海洋監(jiān)測等都需要同時跟蹤多個目標(biāo)。多目標(biāo)跟蹤中一個重要的問題是目標(biāo)的自動標(biāo)記。自動標(biāo)記要求準(zhǔn)確識別每個目標(biāo),既不能把1個目標(biāo)識別為2個目標(biāo),也不能把2個目標(biāo)當(dāng)成1個目標(biāo)處理。準(zhǔn)確性和快速性是對目標(biāo)標(biāo)記的2個要求,然而這2方面也相互制約。近年來,多目標(biāo)快速標(biāo)記成為解決目標(biāo)跟蹤問題的制約因素,因此也受到越來越多的關(guān)注。
目標(biāo)標(biāo)記的方法有很多,傳統(tǒng)的目標(biāo)標(biāo)記方法是以象素為基本單位,該方法比較耗費內(nèi)存和時間。20世紀(jì)90年代提出利用目標(biāo)起終點坐標(biāo)對目標(biāo)進(jìn)行標(biāo)記[1]。該方法計算速度有一定程度提高,同時也降低了內(nèi)存需求,缺點是只包含每行各個分段的起終點位置信息,目標(biāo)信息不連貫,且該算法實現(xiàn)復(fù)雜。本文提出一種方法,它減小了標(biāo)記過程處理象素的個數(shù),在標(biāo)識目標(biāo)的可靠性和速度方面都得到了提高。
1 目標(biāo)標(biāo)記方法
目標(biāo)標(biāo)記是在當(dāng)前幀圖像二值化之后對各個目標(biāo)進(jìn)行自動識別。識別的方法是在圖像中尋找連通區(qū),彼此相連的目標(biāo)點屬于同一個目標(biāo),各個不同的連通區(qū)域?qū)?yīng)不同的目標(biāo)。通過自動標(biāo)記過程可以得到目標(biāo)的個數(shù)、各目標(biāo)的位置、輪廓等目標(biāo)特征信息,從而在后序處理過程利用這些信息來保證跟蹤性能的可靠性。目標(biāo)標(biāo)記的錯報率對跟蹤結(jié)果會造成直接影響,所以目標(biāo)標(biāo)記是多目標(biāo)跟蹤過程中的一個關(guān)鍵環(huán)節(jié)。
目標(biāo)標(biāo)記是一個較耗費內(nèi)存和計算量的環(huán)節(jié)。標(biāo)記的速度與目標(biāo)數(shù)量以及目標(biāo)復(fù)雜程度成正比。傳統(tǒng)的目標(biāo)標(biāo)記方法直接對二值化之后的目標(biāo)進(jìn)行處理,尋找圖像中的各個目標(biāo)連通區(qū)。由于目標(biāo)形狀復(fù)雜多樣,因此尋找連通區(qū)的算法也較復(fù)雜,從而導(dǎo)致計算量非常大。此外由于噪聲干擾的存在,增加了尋找連通區(qū)域的計算量和出錯概率。本文通過對二值圖像進(jìn)行圖像坐標(biāo)系變換,大量減少了標(biāo)識目標(biāo)運算中象素點的個數(shù),從而提高了標(biāo)識目標(biāo)的速度。二值圖像的坐標(biāo)變換過程如圖1所示,利用一個3×3的模板將圖像image1中的9個象素點轉(zhuǎn)變成圖像image2中的1個象素點。轉(zhuǎn)換的準(zhǔn)則是:當(dāng)區(qū)域中9個象素點中的目標(biāo)點(黑色)個數(shù)大于5時,則變換后的象素點是目標(biāo),將該點賦值為1;否則為背景,將該點賦值為0。變換后image2的圖像信息量只有image1圖像的1/9。
目標(biāo)標(biāo)記逐行搜索過程如圖2所示。在圖2(a)中圖像image2有2個目標(biāo),分別是目標(biāo)1和目標(biāo)2,圖2(b)是對圖2(a)中目標(biāo)1的放大圖。在圖2(b)中,各個方格表示目標(biāo)點,方格之外的區(qū)域表示背景。對圖像image2中的目標(biāo)標(biāo)記具體過程如下。
(1)在圖像image2中逐行尋找第1個象素值為1的點,其坐標(biāo)為(k,l),之后將狀態(tài)標(biāo)記nextL置為false,沿著第k行向右依次查詢象素值為1的目標(biāo)點,直到象素點Pixel(k,m)=0,停止向右查詢。將(k,l)至(k,m-1)之間點加入到目標(biāo)數(shù)組中,并且把這些點的象素值置為2。檢測第k+1行中(k+1,l-1)至(k+1,m)點,如果存在象素值為1的點,則nextL=true,并且將該點象素值修改為3。
(2)依次檢測以下各行(各行處理方式相同),當(dāng)檢測到圖2中最為復(fù)雜的第s行時,如果nextL=true,則處理該行,否則終止。接著設(shè)置nextL=fasle,從第s行第1個象素值為3的目標(biāo)點A開始,從A點開始在左右二側(cè)找到象素為1或3的連通區(qū),左側(cè)連通到(s,p),右側(cè)連通到(s,q)。將該行(s,p)至(s,q)的象素點加入到目標(biāo)數(shù)組,并且將這些象素值置為2,同時檢測上一行(s-1,p-1)至(s-1,q+1)之間的象素和下一行(s+1,p-1)至(s+1,q+1)之間的象素。如果在這些點之間存在象素值為1的象素點,則將標(biāo)志位next置為true,并且把這些點的象素值修改為3,如圖2(b)中E、F、G、H、I、J、K點置為3。
(3)同步驟2,依次檢索每一行,直到該行的狀態(tài)標(biāo)記nextL=0,停止向下一行搜索目標(biāo)點。
(4)在整幅圖像上重新搜索,如果檢測到某一點象素值為3,則重復(fù)步驟2,將所有象素點加入到目標(biāo)當(dāng)中。重復(fù)搜索整幅圖像直到圖像中沒有象素值為3的點為止,第1個目標(biāo)的象素點搜索完畢。
(5)搜索第2個目標(biāo),接著在圖像中逐行搜索第一個為1的象素點,重復(fù)步驟(1)。這樣依次將圖像中所有目標(biāo)加入到目標(biāo)數(shù)組中。
(6)按照圖1所示方法進(jìn)行反變換,將圖1(b)中的1個象素點擴展到圖1(a)中的9個象素點。為了精確地得到各個目標(biāo),將求取的各個目標(biāo)在各個方向外擴3個象素點。在該區(qū)域中每行第1個象素值為1的點為目標(biāo)的該行起始點,每行最后一個象素值為1的點為該行的終止點,在該區(qū)域內(nèi)按重心法計算各個目標(biāo)的重心。
目標(biāo)標(biāo)記的程序流程圖如圖3所示。
2 目標(biāo)標(biāo)號維持
經(jīng)過以上步驟各目標(biāo)標(biāo)記完畢,且目標(biāo)標(biāo)號按照該目標(biāo)出現(xiàn)的位置進(jìn)行編號,此時目標(biāo)的編號不能和圖像序列中先前的目標(biāo)建立對應(yīng)統(tǒng)一的關(guān)系。多目標(biāo)跟蹤就是要保持各個目標(biāo)在其生存周期間,對該目標(biāo)的編號保持不變。當(dāng)前幀與前一幀目標(biāo)的幾種位置關(guān)系如圖4所示。當(dāng)前幀圖像中虛線目標(biāo)表示前一幀目標(biāo)在當(dāng)前幀圖像上的位置映射,實線表示在當(dāng)前幀中出現(xiàn)的目標(biāo)。當(dāng)目標(biāo)做無交叉運動時,當(dāng)前幀目標(biāo)只與前一幀圖像上一個目標(biāo)映射發(fā)生重疊,如圖4(a)所示,此時當(dāng)前幀該目標(biāo)編號為在前一幀中與其對應(yīng)目標(biāo)的編號。當(dāng)目標(biāo)發(fā)生交叉運動時,會出現(xiàn)如圖4(b)所示的場景,前一幀2個目標(biāo)都與當(dāng)前幀的1個目標(biāo)有重疊,表示有目標(biāo)發(fā)生交叉運動,此時目標(biāo)的相交標(biāo)志置為true。在目標(biāo)1、2相交時刻無法將二者辨別出來,此時需要按照各個目標(biāo)在相交前的運動方式進(jìn)行位置預(yù)測,直到相交目標(biāo)分離后,按照預(yù)測位置和目標(biāo)觀測位置的匹配程度確定目標(biāo)編號。圖4(c)表示相交目標(biāo)分離,該情況發(fā)生在相交標(biāo)志為true的目標(biāo)上,當(dāng)前幀2個目標(biāo)都與前一幀1個目標(biāo)映射發(fā)生重疊。
3 實驗結(jié)果與分析
根據(jù)本文提出的目標(biāo)標(biāo)記算法及目標(biāo)跟蹤算法,利用VC編程實現(xiàn)5個目標(biāo)的跟蹤過程,采用塞揚1.7GHz處理器和corona2采集卡。此時目標(biāo)標(biāo)記時間為3.24ms,圖像中所有目標(biāo)都被有效識別出來。當(dāng)目標(biāo)做交叉和無交叉運動時,都對目標(biāo)進(jìn)行穩(wěn)定可靠的跟蹤,并且能夠滿足實時性要求。由于采用9個象素合為1點的圖像坐標(biāo)變換,參與目標(biāo)標(biāo)記運算的象素個數(shù)大幅減少,目標(biāo)識別速度得到提高。此外,圖像坐標(biāo)變換過程屬于低通濾波,降低了噪聲對目標(biāo)標(biāo)記的干擾,所以本文提出的目標(biāo)標(biāo)記方法速度快,受噪聲干擾程度小。由于目標(biāo)標(biāo)記采用的是逐個目標(biāo)分行搜索的方法,因此誤識別目標(biāo)概率低。
4 結(jié) 論
實驗結(jié)果表明,本文提出的多目標(biāo)快速標(biāo)記方法具有速度快、可靠性強的特點,能夠準(zhǔn)確標(biāo)識目標(biāo)。利用該方法對目標(biāo)跟蹤,無論目標(biāo)做交叉運動還是無交叉運動都能保證跟蹤的性能要求。該方法能夠滿足跟蹤目標(biāo)的實時性要求,切實可行。
參考文獻(xiàn)
1 張桂林,曹偉 .實時標(biāo)記的多目標(biāo)圖像跟蹤器.華中理工大學(xué)學(xué)報,1994;22(5)
2 王延杰,宋建中.一種實時自適應(yīng)圖像二值化方法.光學(xué)精密工程,1994;2(5)
3 朱進(jìn).交叉運動多目標(biāo)電視跟蹤算法.光學(xué)精密工程,1994;2(5)
4 朱自謙,王淑蘭.多目標(biāo)跟蹤(MTT)技術(shù)的發(fā)展.航空電子技術(shù),1995;(3)
5 徐濤,曾濤.基于貝葉斯推理的目標(biāo)跟蹤.計算機仿真,2004;21(5)