王子瑜 張長(zhǎng)江 周軍華 李 強(qiáng)
(中國(guó)電子科技集團(tuán)公司第二十七研究所 鄭州 450000)
目標(biāo)檢測(cè)跟蹤算法在20世紀(jì)中期已經(jīng)被提出,結(jié)合硬件平臺(tái)FPGA和DSP,運(yùn)用到了各個(gè)領(lǐng)域,尤其在軍事方面。但是,伴隨著科學(xué)技術(shù)的發(fā)展與進(jìn)步,日益復(fù)雜的戰(zhàn)場(chǎng)環(huán)境,對(duì)檢測(cè)跟蹤算法提出了更高的要求,所以對(duì)檢測(cè)跟蹤算法進(jìn)行深入研究是非常必要的。
當(dāng)前,我國(guó)有很多科研人員對(duì)目標(biāo)檢測(cè)跟蹤算法進(jìn)行了研究,如基于局域熵的圖像檢測(cè)跟蹤[1],基于Top-hat的圖像檢測(cè)跟蹤[2~3],基于塊匹配的圖像檢測(cè)跟蹤[4],基于多尺度的圖像檢測(cè)跟蹤[5]等。這些算法都能很好地實(shí)現(xiàn)檢測(cè)跟蹤效果。但是在移植到DSP平臺(tái)時(shí),受限于DSP的處理速度、內(nèi)存空間、外界場(chǎng)景等因素,有些算法移植效果并不是很好。
本文針對(duì)天空背景的弱小運(yùn)動(dòng)目標(biāo),根據(jù)TMS320C6455[6]的特點(diǎn),將FPGA傳輸過(guò)來(lái)的1800*960像素的一幅圖像,分四次從DDR上乒乓到DSP的芯片內(nèi)部,這樣有效節(jié)省了DSP存儲(chǔ)的空間。然后采用偏微分[7~8]因子和幀間差分[9~10]因子相結(jié)合的算法,并對(duì)算法進(jìn)行改進(jìn),減小了算法運(yùn)行的時(shí)間復(fù)雜度,同時(shí)也提高了跟蹤的準(zhǔn)確度。
DSP接收FPGA傳過(guò)來(lái)的圖像,然后進(jìn)行檢測(cè),一旦的檢測(cè)到目標(biāo),就轉(zhuǎn)入跟蹤模式,最后將目標(biāo)坐標(biāo)傳給FPGA和原圖疊加,顯示跟蹤效果。如果在跟蹤模式下,目標(biāo)丟失,那么就會(huì)轉(zhuǎn)搜索模式,重新搜索目標(biāo)。
圖1 檢測(cè)跟蹤總系統(tǒng)流程圖
本文采用的檢測(cè)跟蹤算法,首先用偏微分因子和幀間差分因子進(jìn)行圖像處理,然后閾值分割,隨后進(jìn)行聚類[11]和管道濾波[12],最終得到目標(biāo)。
幀間差分算法,就是將一個(gè)視頻圖像序列的緊鄰兩幅圖像作差,從而得到運(yùn)動(dòng)目標(biāo)的信息,濾除靜態(tài)背景的信息。偏微分算法是根據(jù)目標(biāo)信息和周邊灰度背景之間的關(guān)系,對(duì)一幅靜態(tài)圖像進(jìn)行背景抑制[13],從而分離出目標(biāo)和背景。幀間差分得到的是一個(gè)動(dòng)態(tài)算子,偏微分算法得到的是一個(gè)靜態(tài)算子,將兩者結(jié)合,能更好地凸顯目標(biāo)。
在進(jìn)行圖像處理后,下一步采用自適應(yīng)閾值分割,分割公式如下:
e、v分別代表圖像均值和標(biāo)準(zhǔn)差。n、k為常量,根據(jù)實(shí)際情況取。
對(duì)分割后的二值圖像進(jìn)行聚類。聚類就是對(duì)閾值分割后離散的點(diǎn),按照橫、縱坐標(biāo)的空間位置,將空間相距比較近的一些點(diǎn)聚在一起,從而得到待選目標(biāo)。
聚類完成后,采用管道濾波。管道濾波的原理是,真正的目標(biāo)在一個(gè)小區(qū)域范圍內(nèi)是漸變的,而偽目標(biāo)則是隨機(jī)的,在監(jiān)測(cè)多幀的基礎(chǔ)上,就可以濾除偽目標(biāo),得到真正的目標(biāo)。
本文算法改進(jìn)主要體現(xiàn)在以下兩個(gè)方面。
1)從DDR上傳輸?shù)紻SP上的圖像,采用四次乒乓方式,將一幅圖像均分成4份,依次從DDR轉(zhuǎn)存到芯片內(nèi)。然后對(duì)搬到芯片內(nèi)的1/4部分圖像進(jìn)行運(yùn)算,存儲(chǔ)運(yùn)算結(jié)果,之后搬運(yùn)另外1/4圖像進(jìn)入芯片內(nèi)運(yùn)算,以此類推。
TMS320C6455的L2數(shù)據(jù)存儲(chǔ)空間為2M,本文要處理的圖像為1800*960,一幅圖像大約就占用了1.6M,在幀間差分計(jì)算時(shí),為了提高計(jì)算速度,需要放兩幅圖像到L2,這樣空間不夠用。如果一幅圖像采用均分成兩次從DDR轉(zhuǎn)存到L2,L2空間勉強(qiáng)夠用,但是在搜索模式下,后續(xù)代碼和數(shù)據(jù)存儲(chǔ)空間就會(huì)顯的緊張。如果一幅圖像采用均分成8塊或者更大的塊數(shù),從DDR轉(zhuǎn)存到L2,L2空間雖然充足夠用,但是在近距離檢測(cè)跟蹤目標(biāo)時(shí),由于目標(biāo)相對(duì)較大,得到的感興趣區(qū)域就會(huì)較大,這樣感興趣區(qū)域,有可能在圖像上占用多個(gè)圖像塊,反而不利于目標(biāo)圖像跟蹤。實(shí)驗(yàn)表明,一幅圖像均分成4次從DDR轉(zhuǎn)存到L2,既能滿足算法數(shù)據(jù)在L2上的存儲(chǔ)需求,也能滿足目標(biāo)檢測(cè)跟蹤的需求。
圖2 從DDR搬運(yùn)圖像進(jìn)入芯片內(nèi)圖示
2)算法一旦檢測(cè)到目標(biāo),就轉(zhuǎn)跟蹤模式。跟蹤模式所采用的算法和檢測(cè)模式一樣,只是檢測(cè)模式下,是全局搜索,跟蹤模式下,是感興趣區(qū)域內(nèi)搜索。在檢測(cè)到目標(biāo)的坐標(biāo)以后,根據(jù)得到的目標(biāo)的中心位置和長(zhǎng)、寬,得到一個(gè)以目標(biāo)為中心的感興趣區(qū)域,本文采用感興趣區(qū)域的長(zhǎng)和寬分別是目標(biāo)長(zhǎng)、寬的8倍。
一幅圖像被均分成4塊傳到芯片進(jìn)行跟蹤,在得到感興趣區(qū)域的左上角坐標(biāo)以后,在坐標(biāo)所在的塊上進(jìn)行感興趣區(qū)域跟蹤,同時(shí),為了避免目標(biāo)中心坐標(biāo)在分塊的邊界上或者在下一塊中,本文采用對(duì)下一塊進(jìn)行全局搜索。即如果感興趣區(qū)域左上角坐標(biāo)在第一塊上,那么就在第一塊的感興趣區(qū)域進(jìn)行跟蹤,在第二塊上全局檢測(cè)搜索,第三塊和第四塊不處理。依次類推。本文只在相鄰塊上進(jìn)行搜跟,是因?yàn)槟繕?biāo)一般情況不會(huì)分布在分割的三塊上。
采用這種方式進(jìn)行跟蹤,一幅圖像最多被處理1/4,外加一個(gè)感興趣區(qū)域。相比于一幅圖像均分成兩次,改進(jìn)算法大大減少了計(jì)算量,提高了運(yùn)算速度,同時(shí)相比于一幅圖像均分成8次或者更大的次數(shù),該改進(jìn)算法提高了跟蹤的準(zhǔn)確度。
圖3 算法改進(jìn)后的一次跟蹤流程圖
本文是在天空背景下飛無(wú)人機(jī),進(jìn)行了兩組試驗(yàn)。
第一組試驗(yàn)是分別將一幅圖像均分成2、4、8塊傳到L2,一塊進(jìn)行感興趣區(qū)域跟蹤,相鄰的下一塊全局搜索。
第二組試驗(yàn)是一幅圖像均分成4塊傳到L2,然后用改進(jìn)的方案和傳統(tǒng)方案進(jìn)行對(duì)比。
改進(jìn)的方案采用一塊進(jìn)行感興趣區(qū)域跟蹤,相鄰的下一塊全局搜索;傳統(tǒng)方案采用一塊進(jìn)行感興趣區(qū)域跟蹤,另外所有的塊進(jìn)行全局搜索。
圖4 試驗(yàn)視頻截圖
表1 試驗(yàn)對(duì)比結(jié)果
表2 試驗(yàn)對(duì)比結(jié)果
試驗(yàn)結(jié)果表明,采用一幅圖像被均分成4塊傳到L2,相比于均分成兩塊,跟蹤準(zhǔn)確度沒(méi)有下降,但是跟蹤時(shí)間和占用空間都大幅縮小,避免了處理時(shí)間過(guò)長(zhǎng)(系統(tǒng)要求一幀處理時(shí)間不能超過(guò)40ms),出現(xiàn)的漏幀現(xiàn)象;相比于分成8塊,雖然跟蹤時(shí)間和占用空間略大,但也能滿足DSP處理需求,同時(shí)跟蹤準(zhǔn)確度相對(duì)提高。將一幅圖像被均分成4塊傳到L2,通過(guò)對(duì)比改進(jìn)方案和傳統(tǒng)方案,發(fā)現(xiàn)跟蹤時(shí)間上,傳統(tǒng)方案不能滿足需求,會(huì)出現(xiàn)漏幀現(xiàn)象。
本文在TMS320C6455的基礎(chǔ)上,根據(jù)DSP的特點(diǎn),對(duì)弱小運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)跟蹤,試驗(yàn)結(jié)果表明,本文的改進(jìn)算法,在保證了搜跟準(zhǔn)確度的基礎(chǔ)上,不但降低了空間復(fù)雜度,滿足了芯片的空間要求,而且能縮減運(yùn)行時(shí)間,滿足系統(tǒng)對(duì)處理一幅圖像的時(shí)間要求。