主頁(http://www.130131.com):基于DSP智能視頻監(jiān)控系統(tǒng)的軟硬件設(shè)計(2) · 自動跟蹤:自動跟蹤實現(xiàn)對于運動對象的連續(xù)檢測,通過對運動物體的跟蹤,獲得其位置、速度、運動軌跡等運動信息。使用卡爾曼濾波的方法進行目標跟蹤,輸出運動物體的位置及中心坐標等; · 攝像機模糊、遮擋及非法移動檢測:攝像機模糊、遮擋及非法移動檢測是需要發(fā)現(xiàn)影響監(jiān)控攝像機正常工作或者威脅監(jiān)控攝像機自身安全的活動。使用DCT變換,統(tǒng)計全局的圖像變化信息,判斷攝像機是否模糊;利用圖像灰度直方圖變化信息,判斷攝像機是否被遮擋;使用模板匹配的方法,判斷攝像機是否非法移動,輸出模糊、遮擋及非法移動情況信息和程度。 系統(tǒng)優(yōu)化 1、三緩沖結(jié)構(gòu) 設(shè)置三緩沖組成緩沖區(qū)隊列。在實際處理過程中,使用其中兩個緩沖區(qū)進行數(shù)據(jù)接收,另外一個緩沖區(qū)進行圖像處理等(具體的三緩沖區(qū)結(jié)構(gòu)如圖5所示)。
圖5 三緩沖結(jié)構(gòu) 利用回調(diào)函數(shù)對緩沖區(qū)進行管理,每接收完一整幅圖像后產(chǎn)生一次回調(diào)。使用三個變量維護當前緩沖區(qū)狀態(tài),F(xiàn)rame Buffer1和Frame Buffer2用于維護在循環(huán)中接收的兩個緩沖區(qū),F(xiàn)rame Counter為當前最新接收到的緩沖區(qū)。每次接收數(shù)據(jù)的存儲位置根據(jù)Frame Buffer1和Frame Buffer2的值決定。 在主循環(huán)過程中,使用一個變量Active Index維護當前處理中的緩沖區(qū)。每當開始處理新的一幀時,交換Frame Counter和Active Index的值,并同時更新Frame Buffer1和Frame Buffer2。實現(xiàn)將上一幀處理結(jié)束的緩沖區(qū)加到輸入緩沖中,而將最新一幀緩沖并進行處理的目的。 2、算法優(yōu)化 系統(tǒng)對大部分的功能實現(xiàn)算法進行了優(yōu)化。在物體檢測、數(shù)量統(tǒng)計、自動跟蹤、入侵檢測、遺留物體檢測等算法中都需要使用背景模型。因此,系統(tǒng)重點對背景建模算法進行了優(yōu)化。 背景建模主要包括兩個部分:一是用當前圖像和背景模型的均值和方差矩陣進行比較,得到前景圖像和更新后的背景模型;二是對前景圖像進行膨脹、腐蝕的形態(tài)學運算。 · 背景模型更新:模型更新過程涉及的數(shù)據(jù)有:當前圖像幀緩沖(8位)、當前前景幀圖像(8位)、背景均值模型(32位)、背景方差模型(32位)、前景駐留時間矩陣(16位)。為了提高運算速度,需要首先將內(nèi)存搬運到L1中再進行處理。其步驟如下: 第一步:在L1內(nèi)存中分配行緩存區(qū)用于計算,采用PINGPONG結(jié)構(gòu)設(shè)計雙緩沖區(qū)。 第二步:使用兩個DMA通道用于輸入和輸出。首先使用異步DMA方式輸入一行輸入圖像、均值和方差矩陣及駐留時間矩陣,交替使用current和bck指針分別指向輸入和處理緩沖區(qū),并不斷更新實現(xiàn)雙緩沖結(jié)構(gòu)。這里要求從第二行輸入起使用同步DMA方式進行傳輸,因此使用了回調(diào)函數(shù)Line In Caqll Back和input_index變量,實現(xiàn)依次輸入4個緩沖區(qū)。 由于這里要求將輸入并計算后的新均值、方差和駐留時間行矩陣傳回SDRAM中,因此輸出DMA采用異步方式,等待完成后才會開始下一次的DMA輸入。這樣,在一定程度上,可避免同時向一個SDRAM區(qū)讀/寫內(nèi)存。 · 膨脹、腐蝕算法:這里同樣也使用行處理方式進行膨脹、腐蝕兩步運算。根據(jù)膨脹、腐蝕算法的特點,需要輸入3行緩沖,然后進行一行的處理。因此,需設(shè)計使用6行輸入的前景緩沖和兩行膨脹、腐蝕處理結(jié)果作為3行輸入和1行輸出雙緩沖。由于輸入和輸出的緩沖區(qū)沒有沖突問題,因而輸入和輸出均采用同步模式,并注意輸入緩沖增量設(shè)為一行。 (中國集群通信網(wǎng) | 責任編輯:陳曉亮) |




