王寶珠,劉 偉
(河北工業(yè)大學 信息工程學院,天津 300401)
近些年,隨著DSP技術(shù)的快速發(fā)展,傳統(tǒng)的模擬視頻信號漸漸被日漸強勢的數(shù)字視頻信號所取代。伴隨著這一過程,視頻信號的智能化數(shù)字處理過程顯得十分重要。傳統(tǒng)的模擬視頻圖像處理往往只是對視頻圖像的顏色、對比度、銳度、明暗等進行整體調(diào)節(jié),而今天當數(shù)字視頻圖像信號被廣泛普及后,人們對視頻圖像的處理能力也得到了質(zhì)的飛躍。處理的焦點從整體走向了局部,從圖像邊緣的調(diào)整邁入了像素點的處理。
對于視頻圖像中運動物體的檢測與運動軌跡的處理在實際工作生活中應用的范圍非常之廣,從航空航天、視頻監(jiān)控,到軍事偵測,智能捕捉視頻圖像中的運動物體,并對其作出相應處理都是數(shù)字處理中至關(guān)重要的一部分。
文中介紹了一種基于ARM11的視頻圖像中運動物體的檢測及跟蹤系統(tǒng),此系統(tǒng)利用OpenCV函數(shù)庫對數(shù)字圖像處理的支持來完成對視頻圖像中運動物體的檢測及跟蹤,并通過相應的算法對其運動軌跡進行相應的確定與標注。本系統(tǒng)摒棄了傳統(tǒng)PC系統(tǒng)單一的處理方式和有限的擴展能力,創(chuàng)新的利用了ARM11系統(tǒng)強大的運算能力對運動物體在某個時間段內(nèi)的運動軌跡作出分析記錄處理。與此同時本系統(tǒng)也保留了利用嵌入式系統(tǒng)體積小,功耗低,穩(wěn)定性強等優(yōu)點。
本系統(tǒng)主要由視頻采集設(shè)備、嵌入式硬件開發(fā)平臺、操作系統(tǒng),應用程序4部分組成。視頻采集設(shè)備主要負責待觀察影像流的輸入工作,它和嵌入式硬件開發(fā)平臺共同組成整個系統(tǒng)的硬件部分。操作系統(tǒng)作為連接應用程序和硬件平臺的紐帶,利用相關(guān)的驅(qū)動程序為所要開發(fā)的軟件提供必要的支持。應用程序作為實現(xiàn)算法和數(shù)據(jù)后期處理的工具,和操作系統(tǒng)共同構(gòu)成了整個系統(tǒng)的軟件部分,如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)Fig.1 System structure
本系統(tǒng)的整個硬件部分是由ARM11內(nèi)核擴展而成的,如圖2所示。內(nèi)部電路分別由:NAND存儲器、晶振、JTAG接口、復位模塊、I/O總線接口、SDROM等組成;外圍電路分別由:晶振、USB接口、鍵盤、SD存儲、電源、LCD顯示等組成;采集設(shè)備為USB攝像頭,利用USB接口良好的兼容性來完成整個視頻流的采集。

圖2 硬件結(jié)構(gòu)Fig.2 Hardware structure
目前基于ARM11構(gòu)架的處理器有很多,本系統(tǒng)所選用的是三星公司推出的S3C6410處理器,它體積小(13×13 mm)、功耗低、性能好、性價比高,被廣泛應用于便攜設(shè)備中。此外,本系統(tǒng)選擇的是256 MB容量的NAND存儲器。它主要是存儲引導程序,操作系統(tǒng)、驅(qū)動程序、應用軟件等數(shù)據(jù),它比傳統(tǒng)的硬盤效率高、體積低,但是容量有限,所以硬件部分還要借助SD卡作為外部存儲來完成系統(tǒng)的工作。
JTAG接口在系統(tǒng)中的作用為單步調(diào)試,無論是常見的JLINK還是ULINK,或者是其他的仿真調(diào)試器,最后都是需要通過JTAG接口連接的[1]。一般情況下,標準的JTAG接口是 4 線 CON,即:TMS(模式選擇)、TCK(時鐘)、TDI(數(shù)據(jù)輸入)、TDO(數(shù)據(jù)輸出),再加上電源線和地線,共6根。有時為了方便調(diào)試,仿真器還輸出一個復位信號,但是本系統(tǒng)沒有引出此線。
對于復位模塊以及I/O接口,因為廠家已經(jīng)為我們設(shè)計完成,所以我們只需要在設(shè)計外部電路的時候直接調(diào)用連接即可。
外部電路中晶振為重要的節(jié)拍器,負責這個系統(tǒng)的有序工作。但是ARM11內(nèi)部模塊可以為大部分外部設(shè)備提供頻率支持,只有一些對頻率要求不同的設(shè)備需要自我添加,比如網(wǎng)絡模塊,因為本系統(tǒng)不要求網(wǎng)絡的支持,所以晶振源直接引自ARM11的內(nèi)部模塊(533 MHz)。
SD卡為系統(tǒng)的數(shù)據(jù)記錄設(shè)備,系統(tǒng)處理后的數(shù)據(jù)全部保存在以SD卡為介質(zhì)的半導體設(shè)備里面。所以SD卡接口也就成為不可缺少的外部設(shè)備,它的電原理圖如圖3所示,其中SD0_XXX為6 410內(nèi)部模塊標準輸出接口。
電源部分采用的是5 V直流供電,利用市面上常見的USB插口充電器即可取得此直流電壓。
LCD顯示部分,系統(tǒng)采用的是分辨率為320×240的4.3英寸液晶顯示器。

圖3 SD卡設(shè)備原理圖Fig.3 SD card equipment
本系統(tǒng)的軟件部分由操作系統(tǒng)和應用程序兩部分組成,其中操作系統(tǒng)為應用程序提供基礎(chǔ)條件,它附帶了許多硬件設(shè)備的驅(qū)動程序,也為圖像數(shù)據(jù)的采集提供了軟件接口。在操作系統(tǒng)上本系統(tǒng)利用Linux系統(tǒng)。Linux因其極強的兼容與開放性已經(jīng)被廣泛用于便攜電子設(shè)備與大型服務器的構(gòu)建當中。本系統(tǒng)利用Linux系統(tǒng)中的Video4Linux(Video for Linux)接口為軟件提供視頻媒體流[2]。同時由于所使用的Linux內(nèi)核中所附帶的驅(qū)動支持市面上的大部分免驅(qū)USB攝像頭,所以這樣的選擇也給本系統(tǒng)的開發(fā)調(diào)試提供了一些便利條件。關(guān)于應用程序的開發(fā),利用的是C++作為程序語言,借助OpenCV函數(shù)庫和GCC編譯器來進行應用軟件的開發(fā)[6]。
對視頻圖像中運動物體的檢測與跟蹤,傳統(tǒng)的方法主要有幀間差分法、背景差分法和光流法。就每種算法而言,它們都有其自身的優(yōu)缺點:
幀間差分法具有強大的自適應性,但對差分幀的選擇要求比較苛刻[5];光流法檢測效果比較好,而且對視頻場景的要求比較低,但光流法的實現(xiàn)對于處理器的要求比較高,鑒于本系統(tǒng)處理器及攝像頭性能有限,所以未選擇這兩種方法。
背景差分法也叫背景減除法,它是目前運動分割技術(shù)中比較成熟的算法,一般能提供全部的目標特征數(shù)據(jù),具有操作簡單、檢測速度快、運算量小等優(yōu)點,但它對動態(tài)場景中局部明暗變化敏感,故對視頻場景的要求較高。考慮到本系統(tǒng)的應用場景相對固定,所以選擇背景差分法作為程序的算法結(jié)構(gòu)。
本系統(tǒng)的圖像處理包括:采集原始圖像幀序列,計算出背景模型,使用相關(guān)算法得到目標輪廓,計算出輪廓中心點坐標,繪制軌跡等。
其完整的流程圖如圖4所示。

圖4 視頻處理流程圖Fig.4 Video processing
捕捉到的原始圖像序列為fk(i,j),其中k為圖像幀序列。
在建立初始背景時,本系統(tǒng)利用均值法背景建模,將某一階段視頻采集的連續(xù)幀計算出像素平均值,從而檢測出各圖像中屬于背景的像素點,再將這些像素點重組得出視頻檢測背景。

其中,Binit是初始背景圖像,median為取平均化,n為均值法所選取的總幀數(shù)。
更新背景算法中,系統(tǒng)利用前一幀計算得到的背景數(shù)據(jù)來參與當前幀的計算。然后得出當前幀的背景數(shù)據(jù),作為計算下一幀的參數(shù)。

其中,a∈(0,1)為更新率,由此公式可以看出,每一幀背景的建立都與之前幀有著緊密聯(lián)系,所以系統(tǒng)背景的數(shù)據(jù)模型可以在一定條件下保持相對的穩(wěn)定。這樣的算法結(jié)構(gòu)對瞬間背景丟失或噪聲干擾有背景補償作用。
得到背景模型 Bk(i,j)后,用原始圖像序列 fk(i,j)與其做差即可初步得出前景圖(包含移動物體與噪點)。

其中Pj為檢測閾值,在不同的環(huán)境下的取值直接影響前景的提取。
之后要對前景圖像進行二值化:

其中Pe為二值化閾值。
對二值化后的圖像利用OpenCV中cvdilate與cverode工具進行腐蝕與膨脹處理得出目標輪廓[5],然后計算出目標質(zhì)心進行標記記錄。
實驗場所為學校的實驗室,視頻序列為走動中的人像,攝像鏡頭為固定方式,視頻分辨率為320×240,每秒采集5幀,共采集 50幀,圖 5(A)顯示為第 21幀,圖 5(B)顯示為視頻檢測背景。
圖5(C)和圖5(D)為原始圖像在選擇不同檢測閾值 Pj的情況下所得出的前景圖像。由圖5(C)可以看出當Pj設(shè)置過低的時候整個前景圖像對比度較差,非運動物體輪廓較明顯,嚴重影響對運動目標的檢測。由圖5(D)可以看出當Pj選擇恰當?shù)臅r候運動目標輪廓清晰,大部分非運動點都被深色像素覆蓋,雖然還是有一定噪點,但符合系統(tǒng)接下來要處理的要求。
接下來系統(tǒng)對圖5(D)進行二值化操作,選取不同的二值化閾值Pe,圖 5(E)選擇 Pe值過低,雖人像輪廓清晰,但噪點較多。圖5(F)選擇適當?shù)腜e值,噪點較少且分散,人形較清晰,有助于下一步的圖像處理。
圖5(G)顯示的是系統(tǒng)對圖12處理后的結(jié)果,本實驗中二值化的前景圖通過利用5×5正方形結(jié)構(gòu)元素腐蝕和膨脹可去除無關(guān)噪點,得到最終移動物體輪廓。最終利用cvMinAreaRect2函數(shù)計算出輪廓質(zhì)心坐標,在原序列圖上標記其運動軌跡,如圖5(H)所示。

圖5 圖像處理過程Fig.5 Image processing
相關(guān)程序通過在ARM11平臺上運行分析,對視頻圖像中運動物體檢測的效果可以滿足預期的要求。利用技術(shù)上比較成熟的背景差分算法作為檢測的主要手段,解決了其他算法要求處理器性能過高的問題。同時,針對本系統(tǒng)應用領(lǐng)域視頻背景相對穩(wěn)定的特點,優(yōu)化了相關(guān)算法,使得系統(tǒng)處理速度有所提高。和傳統(tǒng)的視頻檢測與跟蹤系統(tǒng)相比,本系統(tǒng)具有功耗低、穩(wěn)定性強、可移植性強等優(yōu)點。
此系統(tǒng)在動物行為學、天文觀察、道路檢測、軍事領(lǐng)域中用途較廣,對目標運動軌跡有比較直觀的記錄。同時本系統(tǒng)具有很強的擴展性能,根據(jù)使用環(huán)境的不同可以對后期的數(shù)據(jù)進行進一步的處理,這也是基于ARM11框架與Linux系統(tǒng)進行整個系統(tǒng)構(gòu)建的優(yōu)勢之一。
[1]魏洪興.嵌入式系統(tǒng)設(shè)計師教程[M].北京:清華大學出版社,2006.
[2]于明.ARM9嵌入式系統(tǒng)設(shè)計與開發(fā)教程[M].北京:電子工業(yè)出版社,2006.
[3]吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應用[M].北京:人民郵電出版社,2004.
[4]許海雁.嵌入式系統(tǒng)技術(shù)與應用[M].北京:機械工業(yè)出版社,2002.
[5]岡薩雷斯.數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2003.
[6]布拉德斯基(著).學習OpenCV(中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009.