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