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