基于DM642的運動目標(biāo)檢測系統(tǒng)設(shè)計與實現(xiàn)
此硬件平臺從攝像機獲取模擬圖像,經(jīng)過SAA7115解碼得到標(biāo)準(zhǔn)的。BT.656格式的YUV4:2:2數(shù)字圖像碼流,然后通過DM642的EDMA功能將碼流暫存到SDRAM,再用算法進行處理后,然后通過DM642的EDMA功能送入到SAA7105進行解碼,經(jīng)過CVBS引腳輸出,這樣系統(tǒng)的處理結(jié)果就可以在顯示器上實時地顯示。
2.2 算法的DM642實現(xiàn)
系統(tǒng)的軟件在TI提供的集成開發(fā)環(huán)境CCS完成,編程用C語言和匯編語言實現(xiàn),軟件采用TI推薦的RF-5架構(gòu),采用了三個線程tsk_inpu-t、tsk_process、tsk_output。
軟件的執(zhí)行流程如下:
(1)TMS320DM642的初始化。包括初始化BIOS、CSL、設(shè)置CACKE;
(2)初始化RF-5模塊。用CHAN_init,ICC_init,SCOM_init分別初始化CHAN模塊、ICC模塊、SCOM模塊;
(3)DSP/BIOS根據(jù)操作系統(tǒng)的調(diào)度規(guī)則環(huán)調(diào)度執(zhí)行tsk_input、tsk_process、tsk_output三個線程。其中tsk_inpufi通過按照順序調(diào)用FVID_create、FVID_control、FVID_aUoc函數(shù)實現(xiàn)對FVID驅(qū)動的調(diào)用,打開輸入通道,實現(xiàn)得到SAA7ll5獲取的BT.656格式的YUV422數(shù)字視頻碼流。tsk_process負(fù)責(zé)對tsk_input線程獲取的數(shù)字圖像進行運動圖像檢測算法的處理,其中要調(diào)用到上一節(jié)所述的算法函數(shù),經(jīng)過處理,運動目標(biāo)被分割出來。tsk-output負(fù)責(zé)調(diào)用FVID_create、FVID_control、FVID_alloc函數(shù),打開輸出通道實現(xiàn)對已經(jīng)分割處理的數(shù)字視頻流通過SAA7105輸出,在顯示器上予以顯示。這三個線程在DSP/BIOS的調(diào)度下循環(huán)并行運行,三個線程之間的數(shù)據(jù)交換通過SCOM模塊實現(xiàn)。
上述程序中,核心程序為tsk_process線程,其主要代碼如下:
While(1)
{……
Background()://獲取背景并根據(jù)條件更新
Diff_picture()://背景與當(dāng)前圖像差分
Otsu_binary(): //由改進的大津法進行閥值分割并二值化
Filter_obitct()://對二值化圖像進行濾波得到運動的物體,即為檢測的結(jié)果。
……
}
2.3 軟件優(yōu)化
應(yīng)用TMS320DM6425開發(fā)運動目標(biāo)檢測系統(tǒng)時,為保證檢測結(jié)果的高效、實時,軟件代碼的優(yōu)化顯得尤為重要?;赥MS320DM642編程時,我們參照該芯片的特點在編寫算法時進行了如下的優(yōu)化:
(1)使用流水線技術(shù)。采用編譯選項-o2、-o3,充分利用軟件流水線方式提高運行效率。
(2)對寄存器進行優(yōu)化,通過CCS自帶的性能分析工具Profiler對調(diào)用頻率高的C語言代碼采用匯編語言改寫,并采用匯編優(yōu)化器進行優(yōu)化,使代碼的執(zhí)行效率得到最大限度提升。
2.4 實驗結(jié)果
基于DM642的運動目標(biāo)檢測系統(tǒng)實驗結(jié)果如圖3所示。本文引用地址:http://www.ex-cimer.com/article/166355.htm
3 結(jié)論
本文采用TI的專用圖像處理芯片TMS320DM642構(gòu)建硬件平臺,采用背景差分法來檢測運動物體,采用大津法獲取自適應(yīng)閥值,并按閥值取值來判斷是否有物體運動,這樣簡化了后續(xù)的形態(tài)學(xué)處理,然后再對差分圖像進行二值化處理,最后用形態(tài)學(xué)處理消除孤立的點,經(jīng)過試驗,本文的運動檢測系統(tǒng)有很強的適應(yīng)能力,能避免背景死鎖情況,并能最大程度抑制拖影和空洞現(xiàn)象的產(chǎn)生。
評論