嵌入式多目標跟蹤(上)
1 設(shè)計概述
目標跟蹤在視頻監(jiān)控領(lǐng)域有廣泛的應(yīng)用。跟蹤目標的 選擇可以分為自動檢測與主動選擇。自動檢測能夠檢測出畫 面中所有運動物體,再通過目標跟蹤算法,對檢測到的目標 進行跟蹤處理。在市區(qū)繁忙路段,通過運動目標自動檢測與 跟蹤統(tǒng)計每日車流量。當畫面中存在眾多運動物體,而只需 要跟蹤某些特定目標時,為減少干擾,主動選擇目標后對特 定目標進行跟蹤。在目標跟蹤算法中,判斷運動目標丟失狀態(tài)是一個值 得研究的課題。本設(shè)計改進了經(jīng)典的粒子濾波算法,通過設(shè) 置粒子權(quán)重門限與重采樣粒子數(shù)目閾值,進行粒子權(quán)重比較 與重采樣粒子個數(shù)比較,實現(xiàn)了運動目標跟蹤與丟失狀態(tài)判斷。
在現(xiàn)實應(yīng)用中,往往需要同時跟蹤多個目標。本設(shè)計 提出了一種基于粒子濾波的嵌入式多目標跟蹤硬件結(jié)構(gòu)設(shè) 計,該結(jié)構(gòu)跟蹤性能優(yōu)秀,具有實時性強、抗干擾、可復(fù)用 性強的特點。針對多個目標采用同一種跟蹤算法,設(shè)計一種 可復(fù)用性強的跟蹤算法能節(jié)省設(shè)計與開發(fā)的時間。因此,設(shè) 計并生成了可復(fù)用的粒子濾波目標跟蹤IP核。本設(shè)計采用IP固核的形式。設(shè)計者不以開源形式復(fù)用
圖1 嵌入式多目標跟蹤系統(tǒng)
圖2 FPGA資源消耗
圖3 總體設(shè)計框圖
開發(fā)的數(shù)字邏輯電路模塊,而是將其封裝起來,生成一個輸入輸出端口固定、功能正確的模塊。該模塊的具體數(shù)字電路 實現(xiàn)無法查看,只要在工程中添加該模塊,并連接模塊的輸 入輸出管腳,便可以實現(xiàn)IP核調(diào)用。本設(shè)計調(diào)用了自行設(shè)計 與開發(fā)的粒子濾波IP核。根據(jù)FPGA的并行運算機制,所有 目標能同時進行粒子濾波處理,實現(xiàn)多目標跟蹤。實驗結(jié)果 表明,設(shè)計與開發(fā)的粒子濾波IP核調(diào)用方便,不僅保護了設(shè) 計者的知識產(chǎn)權(quán),且跟蹤性能穩(wěn)定。
本設(shè)計采用友晶科技的DE2-115開發(fā)板,其板載的Altera 公司Cyclone IV芯片資源豐富,滿足視頻處理的需要,片外 的SDRAM為圖像緩存提供保障,并提供了與攝像頭相連的 BNC接口,以及與顯示器相連的VGA接口。
2 功能描述
嵌入式多目標跟蹤系統(tǒng)如圖1所示。CCD攝像頭采集模 擬視頻信號,DE2-115開發(fā)板對采集到的信號進行圖像格式 轉(zhuǎn)換與多個運動目標的檢測、選擇與跟蹤,將處理過的視頻 信號輸出到VGA顯示器上。
2.1 視頻信號采集
FPGA對ADV7180進行IIC總線配置,ADV7180將CCD攝像頭輸入的PAL制式模擬視頻信號轉(zhuǎn)換成數(shù)字信號。數(shù)字視
頻信號輸入FPGA進行ITU656解碼,將解碼后的奇場與偶場 數(shù)據(jù)緩存在SDRAM中,通過SDRAM的讀寫控制,輸出奇偶 場合并的整幀圖像。再將其進行格式轉(zhuǎn)換,輸出符合VGA顯 示要求的RGB信號,并構(gòu)造VGA行同步與場同步控制信號。
2.2 運動目標自動檢測
在邊緣檢測的基礎(chǔ)上,通過幀間差分,鎖定剛進入畫 面的運動物體目標,為后面的跟蹤提供物體的中心位置和輪 廓大小等基本信息。
2.3 運動目標選擇
圖4 運動目標檢測框
圖5 Sobel卷積因子
圖6 腐蝕(膨脹)示意圖
紅外遙控器向DE2-115開發(fā)板上的IR接收器發(fā)送遙控掃碼信號。FPGA解碼掃描信號,控制每個目標選擇框的上下左右移動、大小改變與跟蹤狀態(tài)的開始與結(jié)束。
2.4 多目標跟蹤
同時跟蹤多個目標,判斷目標的跟蹤與丟失狀態(tài),目 標丟失后再次找回。當目標在畫面中運動時,多目標跟蹤系 統(tǒng)能準確穩(wěn)定地跟蹤目標,屏幕顯示Tracking字幕。當目標 從畫面中離開,屏幕顯示Lost字幕。當目標從畫面中任意位 置再次出現(xiàn)時,系統(tǒng)找回運動目標,屏幕顯示Tracking。
3 性能參數(shù)
3.1 系統(tǒng)參數(shù): 目標個數(shù):2個; 原始圖像大?。?40*480; 目標跟蹤區(qū)域:640*480; 每個目標使用粒子個數(shù):64個。
運動目標在采集到的視頻圖像640*480區(qū)域內(nèi)移動時,多目標跟蹤系統(tǒng)能準確定位目標。幀間差分算法中的圖像數(shù)據(jù)緩存,與粒子濾波算法中粒子的直方圖統(tǒng)計均需占用 FPG A的片內(nèi)R AM。因此,在保證檢測與跟蹤效果的前提 下,系統(tǒng)可同時跟蹤兩個目標,每個目標使用64個粒子。在 FPGA片內(nèi)RAM允許的情況下,利用FPGA的并行運算機制 與模塊可復(fù)用性強的特點,可以增加目標個數(shù)與粒子個數(shù)。
3.2 FPGA資源使用情況如圖2所示
4 設(shè)計結(jié)構(gòu)
如圖3所示,CCD攝像頭輸 入模擬信號, 通過I IC總線配置 的 A D V 7 1 8 0 做 模 數(shù) 轉(zhuǎn) 換 , 數(shù) 據(jù) 經(jīng)過ITU656解碼存入SDR AM緩 存 , 再 經(jīng) 過 格 式 轉(zhuǎn) 換 成 R G B 圖 像。對自動檢測或者紅外遙控器 手 動 選 擇 的 目 標 進 行 粒 子 濾 波 算 法 處 理 后 , 將 跟 蹤 結(jié) 果 送 入 ADV7123,經(jīng)過數(shù)模轉(zhuǎn)換后顯示 在VGA顯示器上。
5 設(shè)計方法
5.1 運動目標檢測
圖4為運動目標檢測的框圖。RGB圖像轉(zhuǎn)灰度圖后進行 邊緣檢測,再做幀間差分,通過腐蝕和膨脹圖像形態(tài)學處理 后,檢測運動目標的位置和大小。
Sobel算法是一種常用的邊緣檢測算法。首先利用經(jīng)典 的RGB轉(zhuǎn)灰度值公式把圖像轉(zhuǎn)變成灰度圖。圖5是Sobel卷積 因子,Gx和Gy分別代表橫向和縱向的3x3矩陣,與圖像作平 面卷積后即可得出橫向和縱向的灰度差分。在FPGA上,為 了提高運算效率,直接把兩個差分值相加得到灰度梯度G。 當G大于閾值時,則認為該點是邊緣點。
圖像經(jīng)過邊緣檢測后,再進行幀間差分。幀間差分是 一種常用的靜態(tài)背景下運動目標的檢測方法,通過比較相鄰 兩幀圖像的場景變化得到運動目標。為了檢測剛進入畫面的 目標,并節(jié)省FPGA的片內(nèi)存儲資源,本設(shè)計僅在圖像周邊 區(qū)域內(nèi)進行差分運算,且對檢測到的運動像素點進行標記。
(未完待續(xù))
評論