王 瑋,齊保謙
(廣西工學(xué)院 鹿山學(xué)院,廣西 柳州 545616)
目前,低成本、高性能、快速、智能化的視頻監(jiān)控系統(tǒng)越來越受歡迎。對一個沒有人員往來的場合,如果把所有監(jiān)控圖像都記錄下來是沒有必要的,也需要更多硬盤容量。針對這種情況,筆者設(shè)計了一種智能監(jiān)控系統(tǒng)。該系統(tǒng)只在檢測到有行人進(jìn)入監(jiān)控區(qū)域時,才將采集的視頻圖像壓縮,并同時將壓縮后的視頻圖像經(jīng)過網(wǎng)絡(luò)傳輸回監(jiān)控中心保存。利用該系統(tǒng)可以有效減少需要傳輸、保存的數(shù)據(jù)量,降低對網(wǎng)絡(luò)及硬盤容量的要求,而且不會錯過監(jiān)控對象。
系統(tǒng)的總體框圖如圖1所示,系統(tǒng)的核心處理器為TMS320DM642(以下簡稱為 DM642)[1],該芯片是 TI公司C6000系列32位定點DSP,工作頻率由內(nèi)部倍頻器設(shè)置,可以達(dá)到 500 MHz,600 MHz,720 MHz,可執(zhí)行指令數(shù) 4000 MI/s(兆指令/秒),4800 MI/s,5760 MI/s。DM642采用TI公司第二代增強(qiáng)型超長指令集,它的EMIFA接口數(shù)據(jù)可直接與大容量、低成本的SDRAM芯片無縫連接。DM642帶有3個雙通道(A,B兩通道)數(shù)字視頻口,可同時處理多路數(shù)字視頻流。因其處理性能強(qiáng),外圍接口多而靈活,在機(jī)器視覺、醫(yī)學(xué)成像、網(wǎng)絡(luò)視頻監(jiān)控、數(shù)字廣播等領(lǐng)域得到了廣泛應(yīng)用。
視頻解碼芯片采用TVP5150,視頻解碼芯片把攝像頭采集的復(fù)合電視信號轉(zhuǎn)換成數(shù)字視頻信號。由于在攝像頭轉(zhuǎn)動過程中,它將不采集圖像,而在攝像頭全速采集圖像時,DM642因需要完成圖像的清晰度評價、運動目標(biāo)的檢測、跟蹤以及云臺控制命令的產(chǎn)生等一系列的處理,又可能出現(xiàn)DM642的處理速度跟不上。為了協(xié)調(diào)圖像的處理與采集,可利用FPGA內(nèi)部資源構(gòu)建高速雙端口RAM作為DM642的前端緩存,其內(nèi)部結(jié)構(gòu)如圖2的虛線框內(nèi)所示。邏輯控制單元A將從視頻解碼器傳來的數(shù)據(jù)按時間段分別送到緩沖器1和緩沖器2中,邏輯控制單元B負(fù)責(zé)雙端口的讀、寫控制以及中斷信號的產(chǎn)生等。本設(shè)計中,采用Altera公司的CyloneIII系列產(chǎn)品EP3C120作為FPGA器件,同時FPGA還擔(dān)負(fù)系統(tǒng)的部分控制功能,如串口控制、存儲器控制等。
串并轉(zhuǎn)換芯片采用TI公司的TL16C752B,它把來自DM642的8位并行數(shù)據(jù)轉(zhuǎn)換為RS-485串行芯片可以使用的串行數(shù)據(jù),并借助于電平轉(zhuǎn)換芯片MAX3485構(gòu)成串口電路。云臺使用RS-485(硬件層)和PELCO-D(軟件層)協(xié)議與DM642通信。DM642對數(shù)字視頻信號進(jìn)行處理和運算,根據(jù)計算結(jié)果從串口輸出控制命令,控制云臺的轉(zhuǎn)動,調(diào)整攝像頭的朝向和焦距。
3.1.1 圖像清晰度的評價
根據(jù)清晰圖像(聚焦圖像)和模糊圖像(離焦圖像)的特點,可以借助以下幾個函數(shù)來評價圖像的清晰度[2]:
1)灰度變化函數(shù)。聚焦圖像比離焦圖像包含更多的灰度變化,這樣圖像灰度值的變化可以作為評價函數(shù)。
2)梯度函數(shù)。在圖像處理中,圖像梯度可以用來進(jìn)行邊緣提取。離焦量越小,圖像邊緣越鋒利,具有很大的圖像梯度值。因此,圖像的梯度變化也可以作為評價函數(shù)。
3)圖像灰度熵函數(shù)。聚焦圖像的信息熵要大于離焦圖像的信息熵。因此,圖像的灰度熵也可以作為評價函數(shù)。
4)頻域類函數(shù)。這類函數(shù)主要基于傅里葉變換,傅里葉變換的高頻分量對應(yīng)圖像邊緣,而聚焦圖像總是具有鋒利的邊緣,即包含著更多的高頻分量,這樣可以根據(jù)圖像傅里葉變換后高頻分量的多少作為評價函數(shù)。
本設(shè)計采用灰度變化函數(shù)(即灰度差分法)作為圖像清晰度的評價依據(jù),該方法形式簡單而且效果良好。它根據(jù)圖像的相鄰像素差的絕對值之和作出判斷,其函數(shù)形式為
當(dāng)圖像聚焦清晰時,F(xiàn)(x,y)值最大。
3.1.2 自動聚焦的搜索算法
常用的聚焦策略有全局搜索法、分級搜索法[3]、爬山法等。
爬山法是一種應(yīng)用廣泛的搜索算法。如圖3所示,首先,聚焦鏡頭作任意方向搜索,并假定從圖3的點M開始搜索,確定搜索方向,向點N方向進(jìn)行,也就是點N的評價值大于點M的評價值。這時,鏡頭向頂部方向運動,直到越過頂部到達(dá)P1為止,第一次搜索結(jié)束,如圖3中的實線所示,即路徑為M-N-P1;接著由P1開始,調(diào)頭回去向頂部P運動,直到P2為止,第二次搜索結(jié)束;每搜索一次,步距相應(yīng)減??;如此反復(fù),直到找到最大值為止,聚焦結(jié)束。
全局搜索策略是對鏡頭的每個預(yù)設(shè)的焦距位置從最遠(yuǎn)到最近進(jìn)行檢測并計算其聚焦評價函數(shù)值,找出聚焦評價函數(shù)值最大的位置,然后驅(qū)動電機(jī)使鏡頭定位到聚焦函數(shù)值最大的位置。這種方法能有效克服回程定位誤差,但是本設(shè)計中攝像頭的朝向?qū)㈦S運動物體的運動而改變,如攝像頭朝向每改變一次都對鏡頭的多個預(yù)設(shè)焦距位置從最遠(yuǎn)到最近進(jìn)行圖像采集,并計算其聚焦清晰度評價函數(shù)值,因此計算量大而且費時。
考慮到運動目標(biāo)(行人)的速度不會太快,采集相鄰圖像對應(yīng)的焦距也不會相差太大,故本設(shè)計中采用爬山法和全局搜索相結(jié)合的方法。在上電復(fù)位初始,系統(tǒng)將在每一個預(yù)設(shè)的焦距上采集圖像,并對這些圖像做清晰度評價,最后依照最清晰的圖像確定系統(tǒng)初始焦距。當(dāng)攝像頭受云臺控制轉(zhuǎn)動后,因在較短的時間內(nèi),運動目標(biāo)的運動路程有限,攝像頭的焦距變化也較小,可以采用爬山法再次聚焦,以減少計算,節(jié)約時間。
另外,系統(tǒng)在進(jìn)行清晰度評價時只需要視頻信號中的亮度信號即可。DM642統(tǒng)計相鄰兩場圖像的亮度信號,并按照本系統(tǒng)提出的圖像清晰度評價函數(shù)對圖像進(jìn)行分析、比較,并把依此作出的控制命令輸入到FPGA中。完成串并轉(zhuǎn)換后,控制數(shù)據(jù)被傳送到云臺解碼器,攝像頭的焦距得以調(diào)整。
3.1.3 光圈大小的控制
光圈大小反映了進(jìn)光量的多少,體現(xiàn)在圖像上就是灰度值的大小。因此可以通過計算圖像的平均灰度值與預(yù)定的亮度值進(jìn)行比較,來控制云臺對光圈進(jìn)行調(diào)整,達(dá)到自動調(diào)整光圈的目的。
對于運動目標(biāo)的檢測,常用的方法有背景差值法、圖像差分法、光流分割法和模式匹配法。由于光流分割和模式匹配等方法數(shù)據(jù)計算量較大,難以滿足實時檢測的要求。背景差值法計算簡單、速度快且檢測準(zhǔn)確,但在背景不變時才能檢測有效,不適合背景變化的場合。對于背景變化的場合,可以采用圖像差分法,即通過檢測圖像序列相鄰兩幀對應(yīng)像素點之間灰度值的變化確定移動的物體。同時,視頻圖像每秒采集25幀,相鄰兩幀間隔為0.04 s,即使運動目標(biāo)的移動速度達(dá)到10 m/s,相鄰兩幀間運動目標(biāo)的運動距離只有0.4 m,大約為人步長一步的距離。因此,在運動目標(biāo)距監(jiān)控攝像頭一定距離的前提下,運動目標(biāo)不會逃出相鄰兩幀圖像。
圖像定義為 f(x,y,i),其中(x,y)為圖像的位置坐標(biāo),i為圖像幀數(shù),T 為設(shè)定的閾值,則幀 f(x,y,i)與幀f(x,y,i-1)之間的變化可用如下的二值差分圖像表示
式中,取值為1和0的像素分別對應(yīng)于前景(運動目標(biāo)區(qū)域)和背景(非運動區(qū)域),當(dāng)非零像素總數(shù)大于閾值時,則認(rèn)為發(fā)現(xiàn)運動目標(biāo)。
目標(biāo)跟蹤算法有多種,本設(shè)計采用形心識別算法。形心,即圖像目標(biāo)的幾何中心,對于準(zhǔn)確的定位目標(biāo)具有很重要意義。形心獲取通常采用形心識別算法,又稱形心跟蹤算法。當(dāng)目標(biāo)尺寸較小時,如果用圖像處理中的模板匹配法,那么由于所取模板與背景差異不大,目標(biāo)特征不夠明顯,很容易發(fā)生偽匹配,此時,宜采用形心跟蹤法進(jìn)行跟蹤和測量。對于已經(jīng)二值化后的圖像,其形心計算公式為
形心跟蹤得到運動目標(biāo)的坐標(biāo)后,以此坐標(biāo)代替運動物體,進(jìn)而得出運動物體軌跡,DM642依此作出相應(yīng)的控制信號,驅(qū)動云臺電機(jī)進(jìn)行跟蹤[4-5]。
系統(tǒng)上電復(fù)位以后首先完成FPGA芯片的配置、TVP5150初始化、DM642的啟動引導(dǎo)及各寄存器的設(shè)置等。從攝像頭采集到的模擬信號經(jīng)解碼器TVP5150解碼以后,在FPGA的控制下被送到DM642的視頻口(VP0端口)。系統(tǒng)在檢測到有行人進(jìn)入監(jiān)控區(qū)域時,啟動跟蹤、錄像功能,并把記錄下的視頻數(shù)據(jù)壓縮后傳回值班中心。
值得注意的是:系統(tǒng)工作時,攝像頭焦距的調(diào)整、運動目標(biāo)的檢測與跟蹤等并不是彼此獨立的。為了跟蹤運動目標(biāo),攝像頭需要隨目標(biāo)運動而運動,當(dāng)攝像頭轉(zhuǎn)動以后其焦距也需要適當(dāng)調(diào)整,重新采集圖像并檢測、跟蹤運動目標(biāo)。系統(tǒng)工作流程如下:
1)系統(tǒng)初始化。
2)調(diào)整攝像頭焦距,在聚焦完成靜止時,連續(xù)采集兩幀清晰圖像,用相鄰幀差法按式(2)計算,檢測運動區(qū)域,并記錄圖像中非零像素(因為差分被二值化)的總數(shù)。
3)當(dāng)非零像素總數(shù)大于閾值時,則認(rèn)為發(fā)現(xiàn)運動目標(biāo)。按式(3)計算形心并保存。否則更新當(dāng)前幀并轉(zhuǎn)到步驟2)繼續(xù)執(zhí)行。
4)計算形心與圖像中心的偏差量確定要發(fā)送的云臺控制信號。如果偏差量大于閾值,則通過串口模塊發(fā)送,驅(qū)動云臺向相應(yīng)的方向轉(zhuǎn)動,并同時更新背景幀與當(dāng)前幀。如果偏差量小于閾值則暫不調(diào)整攝像頭的朝向,只需更新當(dāng)前幀并轉(zhuǎn)到步驟2)繼續(xù)執(zhí)行。
跟蹤實驗中,讓行人以慢速、常速、快走等速度進(jìn)入監(jiān)控區(qū)。結(jié)果表明系統(tǒng)都能及時檢測到運動目標(biāo),并準(zhǔn)確地跟蹤。當(dāng)沒有行人進(jìn)入監(jiān)控區(qū)域時,系統(tǒng)會暫停視頻圖像的壓縮、傳輸功能。
此外,實驗發(fā)現(xiàn)在多個運動目標(biāo)同時出現(xiàn)在監(jiān)控區(qū)域時,尺寸較小、與背景對比度小、運動較快的目標(biāo)容易被遺失,這也是筆者進(jìn)一步研究的內(nèi)容。
筆者設(shè)計的智能監(jiān)控系統(tǒng),利用運動目標(biāo)檢測、跟蹤方法,在提高系統(tǒng)的智能化同時,大大緩解了網(wǎng)絡(luò)的傳輸量,降低了硬盤的存儲壓力。設(shè)計中充分利用DM642的高速多媒體信號處理能力以及FPGA的邏輯控制優(yōu)勢,采用差分法來檢測運動目標(biāo),采用形心法來定位、跟蹤目標(biāo)。實驗證實,系統(tǒng)反應(yīng)快速,跟蹤效果良好,可用于對往來人員較少的小區(qū)進(jìn)行監(jiān)控。
[1]Texas Instrument.TMS320DM642 video/imaging fixed-point digital signal processor[EB/OL].[2010-02-05].http://focus.ti.com/lit/ds/symlink/tms320642.pdf.
[2]任四剛,李見為,謝利利.基于灰度差分法的自動調(diào)焦技術(shù)[J].光電工程,2003,30(2):53-55.
[3]黃強(qiáng),胡廣書.一種靈活的塊匹配搜索算法——分級搜索法[J].電視技術(shù),2002,26(5):9-11.
[4]權(quán)立偉,石江宏,薛財鋒.IP視頻監(jiān)控系統(tǒng)中云臺控制模塊的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2006(11):86-88.
[5]楊元挺.快速反應(yīng)智能安全監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2009(11):18-21.