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

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

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

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

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

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

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

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

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

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