嵌入式多目標(biāo)跟蹤(下)
接上篇
差分后直接得到的圖像包含噪點(diǎn),會(huì)影響真實(shí)目標(biāo)的 判斷,在本設(shè)計(jì)中對(duì)差分圖像經(jīng)過(guò)了腐蝕和膨脹兩個(gè)形態(tài)學(xué) 處理。腐蝕和膨脹均為3x3大小的檢測(cè)窗口,按順序掃描差 分圖像,示意圖如圖6。腐蝕的目的是去除孤立的運(yùn)動(dòng)像素 點(diǎn)或塊,在3x3畫面中,檢測(cè)到任何一個(gè)沒(méi)有被標(biāo)記的像素 點(diǎn),則全部去掉標(biāo)記。膨脹是為了增強(qiáng)運(yùn)動(dòng)目標(biāo)的連通性, 與腐蝕相反,檢測(cè)到任意一個(gè)標(biāo)記點(diǎn),則全部標(biāo)記。
在圖像周邊檢測(cè)區(qū)域內(nèi),設(shè)置等間隔的掃描線,只有 運(yùn)動(dòng)的物體會(huì)被掃描到,并根據(jù)掃描線的數(shù)量和掃描到的運(yùn) 動(dòng)像素點(diǎn)位置,確定目標(biāo)進(jìn)入畫面的位置和輪廓大小,同時(shí) 給出發(fā)現(xiàn)目標(biāo)的標(biāo)志信號(hào),啟動(dòng)下一級(jí)粒子濾波算法對(duì)已有 目標(biāo)的跟蹤。
5.2 目標(biāo)選擇
紅外遙控信號(hào)如圖7所示。 按下紅外遙控器按鍵后, 紅外遙控器向DE2-115板上的IR接收器發(fā)送紅外遙控信號(hào)。 FPGA對(duì)IR接收器收到的信號(hào)進(jìn)行解碼處理。默認(rèn)狀態(tài)為空 閑狀態(tài),當(dāng)IR DATA在空閑狀態(tài),出現(xiàn)230000個(gè)低電平,進(jìn) 入Guidance狀態(tài)。Guidance狀態(tài)下,出現(xiàn)210000個(gè)低電平, 進(jìn)入數(shù)據(jù)解碼狀態(tài)。當(dāng)檢測(cè)到低電平時(shí),計(jì)數(shù)清零;檢測(cè)到 高電平時(shí)開始計(jì)數(shù),一旦計(jì)數(shù)到20000,則將比特位數(shù)加1。 高電平數(shù)若超過(guò)41500,則判斷該比特位是1。反之,比特位 為0。比特位數(shù)共32位,高八位是次八位的反碼,用于檢驗(yàn)
圖7 紅外遙控
圖8 基于粒子濾波的多目標(biāo)跟蹤硬件結(jié)構(gòu)設(shè)計(jì)
數(shù)據(jù)的正確性。
5.3 基于粒子濾波的多目標(biāo)跟蹤算法
基于粒子濾波的多目標(biāo)跟蹤硬件結(jié)構(gòu)設(shè)計(jì)如圖8所示。 首先,介紹對(duì)于單一運(yùn)動(dòng)目標(biāo)通過(guò)粒子濾波算法,實(shí)現(xiàn)運(yùn)動(dòng) 目標(biāo)跟蹤的流程。
初始化,將計(jì)算目標(biāo)與各粒子的顏色直方圖的RAM清 零。進(jìn)入自動(dòng)檢測(cè)模塊,一旦檢測(cè)到運(yùn)動(dòng)物體,將物體的中心位置與目標(biāo)框的長(zhǎng)寬輸入到目標(biāo)顏色直方圖統(tǒng)計(jì)模塊。
將RGB信號(hào)轉(zhuǎn)化為HSV顏色空間中的H分量,以H分量 為目標(biāo)的特征,統(tǒng)計(jì)目標(biāo)H分量出現(xiàn)的次數(shù),生成目標(biāo)顏色 直方圖統(tǒng)計(jì)模塊。H分量在0-360間變化,將H分量的值作為 RAM地址,每出現(xiàn)一個(gè)H分量,將其對(duì)應(yīng)的RAM地址中的內(nèi) 容讀出,然后加一,再寫入該地址,完成第一幀目標(biāo)H分量 直方圖統(tǒng)計(jì)。第 一 幀 統(tǒng) 計(jì) 完 目 標(biāo) 直 方 圖 后 , 在 目 標(biāo) 周 圍 撒 隨 機(jī) 粒 子。第二幀統(tǒng)計(jì)隨機(jī)粒子直方圖,統(tǒng)計(jì)完成后,將每個(gè)粒子 與目標(biāo)粒子的對(duì)應(yīng)地址內(nèi)的數(shù)據(jù)相乘后開根號(hào)再相加,獲得 隨機(jī)粒子的權(quán)重。找到權(quán)重最大的粒子,輸出該粒子的中心 點(diǎn),作為目標(biāo)中心點(diǎn)。
設(shè)置權(quán)重閾值,將每一個(gè)粒子的權(quán)重與閾值比較,若 小于該閾值,說(shuō)明該粒子是目標(biāo)的可能性非常小,下一幀的 隨機(jī)粒子預(yù)測(cè)中刪除該粒子,并將上述的最大權(quán)重粒子的中 心位置賦給該隨機(jī)粒子,這一過(guò)程稱為粒子重采樣。同時(shí), 統(tǒng)計(jì)需要重采樣的粒子個(gè)數(shù),若需要重采樣的粒子大于所設(shè) 置的閾值,則說(shuō)明目標(biāo)已丟失,跟蹤框消失,字幕提示Lost 字樣。反之,重采樣粒子小于閾值,系統(tǒng)判定目標(biāo)仍在畫面 中,將權(quán)重最大的粒子中心作為跟蹤框中心,再根據(jù)自動(dòng) 檢測(cè)輸出的跟蹤框長(zhǎng)寬,畫出跟蹤框,字幕顯示Tracking字 樣。設(shè)置的重采樣粒子閾值越大,系統(tǒng)判斷目標(biāo)丟失的可能 性越大。當(dāng)目標(biāo)處于跟蹤狀態(tài)時(shí),在目標(biāo)周圍撒隨機(jī)粒子; 當(dāng)目標(biāo)處于丟失狀態(tài)時(shí),全屏撒隨機(jī)粒子,等待目標(biāo)再次從 畫面中任意位置出現(xiàn)。
根據(jù)所設(shè)計(jì)的粒子濾波模塊導(dǎo)出QXP文件,生成對(duì)應(yīng) 的IP核。在工程中添加QXP文件,通過(guò).v文件將QXP文件中 輸入輸出端與工程中的模塊連接起來(lái),實(shí)現(xiàn)IP核的調(diào)用。編 譯后生成的網(wǎng)表里,該模塊只顯示輸入輸出管腳,而無(wú)具體 的數(shù)字時(shí)序邏輯電路實(shí)現(xiàn),但其能完成原先設(shè)計(jì)的數(shù)字電路 功能。系統(tǒng)中的其它運(yùn)動(dòng)目標(biāo)可調(diào)用設(shè)計(jì)生成的粒子濾波 模塊,實(shí)現(xiàn)基于粒子濾波的多目標(biāo)跟蹤硬件結(jié)構(gòu)設(shè)計(jì)。在 FPGA片內(nèi)資源允許的情況下,可復(fù)用多個(gè)粒子濾波模塊, 實(shí)現(xiàn)任意數(shù)量的目標(biāo)跟蹤。
6 設(shè)計(jì)特點(diǎn)
6.1 基于邊緣檢測(cè)與幀間差分的運(yùn)動(dòng)目標(biāo)檢測(cè)
使用邊緣檢測(cè)保留物體輪廓,減少圖像原始信息,減 少光照和陰影的干擾,并通過(guò)腐蝕和膨脹形態(tài)學(xué)處理,進(jìn)一步提高幀間差分對(duì)運(yùn)動(dòng)目標(biāo)判斷的準(zhǔn)確性。幀間差分法計(jì)算
簡(jiǎn)單,適合在FPGA上實(shí)現(xiàn)。由于本設(shè)計(jì)中只需要檢測(cè)剛進(jìn) 入畫面的目標(biāo),所以幀間差分區(qū)域限定在畫面周邊區(qū)域,節(jié) 約FPGA的片內(nèi)資源。
6.2 基于粒子濾波的改進(jìn)目標(biāo)跟蹤算法
在FPGA上實(shí)現(xiàn)粒子濾波算法,增加了粒子直方圖權(quán)重 閾值比較與重采樣粒子個(gè)數(shù)閾值比較。通過(guò)閾值比較,可以 判斷目標(biāo)跟蹤與丟失狀態(tài)。當(dāng)目標(biāo)正在跟蹤時(shí),只需在目標(biāo) 周圍產(chǎn)生隨機(jī)粒子;當(dāng)目標(biāo)丟失時(shí),在全屏范圍內(nèi)產(chǎn)生隨機(jī) 粒子,若目標(biāo)從屏幕中任意位置再次出現(xiàn)時(shí),可以快速捕捉 到目標(biāo)所在位置,繼續(xù)跟蹤目標(biāo)。
6.3 目標(biāo)跟蹤模塊的可復(fù)用性
生成基于粒子濾波的目標(biāo)跟蹤算法的IP核,并對(duì)每一 個(gè)目標(biāo)都調(diào)用該IP核,實(shí)現(xiàn)目標(biāo)跟蹤模塊的復(fù)用。IP核的生 成與調(diào)用,不僅體現(xiàn)了目標(biāo)跟蹤模塊的可復(fù)用性,而且體現(xiàn) 了目標(biāo)數(shù)目的可擴(kuò)展性。只要在FPGA片內(nèi)資源允許的情況 下,可以增加需要跟蹤的目標(biāo)的數(shù)目。借助FPGA的并行運(yùn) 算機(jī)制,對(duì)多個(gè)目標(biāo)同時(shí)進(jìn)行粒子濾波處理,實(shí)現(xiàn)多目標(biāo)跟 蹤。
6.4 友好的人機(jī)交互界面
在VGA顯示器上顯示多目標(biāo)檢測(cè)與跟蹤結(jié)果,使用不 同顏色的跟蹤框與字幕,區(qū)分不同目標(biāo)。將字幕與各目標(biāo)當(dāng) 前的跟蹤狀態(tài)同步,實(shí)時(shí)顯示各目標(biāo)的跟蹤狀態(tài)。
7 總結(jié)
友晶科技的DE2-115開發(fā)板,提供了視頻輸入輸出接 口,板載的Altera公司Cyclone IV系列FPG A芯片與片外的 SDRAM為視頻處理提供了強(qiáng)大的處理能力和存儲(chǔ)空間,是 非常出色的FPGA多媒體教學(xué)與開發(fā)平臺(tái)。
通過(guò)四個(gè)月的學(xué)習(xí),不僅研究了運(yùn)動(dòng)目標(biāo)檢測(cè)與多目 標(biāo)跟蹤的理論知識(shí),而且將其應(yīng)用到FPGA。加深了對(duì)FPGA 邏輯、時(shí)序、實(shí)時(shí)操作、并行機(jī)制等概念的理解,并通過(guò)實(shí) 踐掌握了狀態(tài)機(jī)、流水線操作、FPGA IP核使用、設(shè)計(jì)、調(diào) 用與Signal Tap II的使用。
在完成設(shè)計(jì)的過(guò)程中,通過(guò)查閱文獻(xiàn)、與組員以及指 導(dǎo)老師積極討論與溝通,解決了許多技術(shù)難題,培養(yǎng)了自學(xué) 精神、動(dòng)手能力與團(tuán)隊(duì)合作意識(shí)。
最后,再次感謝Altera與友晶科技提供了這次FPGA學(xué)
習(xí)、展示與交流的機(jī)會(huì)。
評(píng)論