張珍軍 于會山 邢敏敏 李巖
摘要:本設(shè)計運用MATLAB編程軟件對攝像頭采集的學生教學樓出入視頻進行處理,并統(tǒng)計出入人數(shù)。本設(shè)計主要包括視頻采集、幀處理、目標檢測與統(tǒng)計3部分。視頻采集部分主要是指攝像頭采集出入視頻,并用KMPlayer軟件轉(zhuǎn)化成幀格式,存放在指定文件夾下。用MATLAB軟件對每一幀圖像進行灰度變換、二值化處理、膨脹處理,以及連通區(qū)域檢測與標記。重復處理所有幀,進行幀間差分與背景差分,識別目標并計數(shù),從而完成統(tǒng)計人數(shù)的要求。
關(guān)鍵詞:圖像處理;目標識別;背景差分;人流量統(tǒng)計
1.統(tǒng)計研究概述
1.1國內(nèi)外研究現(xiàn)狀
傳統(tǒng)的人流量統(tǒng)計方法,比如人工計數(shù)、紅外式行人檢測等方法存在著過程繁瑣、精度低等缺點,已經(jīng)不再適用于實際應用。隨著科學技術(shù)的不斷發(fā)展,視頻監(jiān)控設(shè)備被廣泛應用于各個商場車站等場所,視頻監(jiān)控的應用節(jié)省了人力物力,而且可以保證高精度。因此,采用有效的行人檢測技術(shù)成為當前研究的熱點。人流量統(tǒng)計算法的核心是首先對運動目標進行檢測,然后對目標進行跟蹤,人們依靠不斷發(fā)展的計算機技術(shù)對人流量統(tǒng)計的算法進行了進一步的研究。其中最關(guān)鍵的是圖像處理技術(shù),在目標檢測之前,需要對圖像進行去噪處理,一般進行差分、濾波等操作。
1.2本課題研究意義和目的
目前,由于人類活動范圍的不斷擴大,人們面臨的異?;蛘咄话l(fā)事件越來越復雜,對于視頻監(jiān)控的需求越來越大,因此具有一定智能的計算機視覺系統(tǒng)成為監(jiān)控技術(shù)的發(fā)展方向。智能監(jiān)控的目的是使計算機對通過圖像采集裝置采集到的圖像及其他輔助信息進行處理,輔助人們對環(huán)境進行感知、解釋和理解。
2.總體方案設(shè)計
2.1算法實現(xiàn)
本流程主要包括攝像頭視頻采集部分,視頻轉(zhuǎn)化成幀格式并存儲指定文件夾,然后對每一幀圖像進行處理,完成灰度轉(zhuǎn)化、二值化、膨脹腐蝕處理、連通區(qū)域檢測與標記等過程,識別出目標區(qū)域并計算出人數(shù)。方向識別主要是通過檢測中心坐標的位置變化判斷進入還是出去,或者是前后兩幅圖像進行差分,判斷中心點坐標。軟件主要運用MATLAB進行編寫程序,實現(xiàn)該算法,其過程如圖1所示。
2.2軟件的選擇
MATLAB有豐富的數(shù)據(jù)庫,MATLAB用法簡單,程式結(jié)構(gòu)強大,不像c語言等代碼冗長,具有方便直觀的特點,因此更加符合人們的編程思維。
2.3MATLAB與圖像處理
圖像處理的主要內(nèi)容是根據(jù)主要的處理目標,其處理流程大致可以分為圖像信息的描述、圖像信息的處理、圖像信息的分析、圖像信息的編碼以及圖像信息的顯示等主要內(nèi)容。
3.視頻采集與圖像處理
3.1視頻采集
目前視頻采集多用攝像頭進行采集數(shù)據(jù),視頻采集的目的就是將模擬量轉(zhuǎn)換為數(shù)字量,不僅使視頻存儲更加方便,而且將視頻按照數(shù)字文件的格式進行保存,壓縮了存儲空間,在后期處理中數(shù)字量比模擬量更加容易操作。本設(shè)計采用了攝像頭采集視頻,用于統(tǒng)計人流量。
3.2圖像處理
圖像格式是指存儲圖像的文件格式,包括.jpeg.bmp,.tiff.gif.png等。與圖像格式的定義不同,圖像類型是以圖像數(shù)組中數(shù)值與顏色之間的關(guān)系不同而對圖像進行的分類。圖像類型主要分為4種:灰度圖像、索引圖像、二值圖像以及RGB圖像。
3.2.1灰度圖像
灰度圖像是一個數(shù)據(jù)矩陣,該矩陣的每一個元素對應圖像中的一個像素點(pixel),元素的值代表一定范圍的灰度值。矩陣中的元素可以是浮點類型或是8位16位無符號整數(shù)值,而且由于存儲類型不同,其取值范圍有所不同。uint8類型的圖像,取值范圍為[0,255];uintl6類型的圖像,取值范圍為[0,65 535],double類型的圖像,取值為浮點數(shù)?;叶葓D像很少和顏色映射表一起保存,因此一般不自帶調(diào)色板,而使用系統(tǒng)默認的系統(tǒng)調(diào)色板。
3.2.2二值化
二值化圖像的過程一般用于將目標從圖像中分割出來,這種方法的使用有一定的限制,最適用的情況是圖像中目標的顏色和背景的顏色有較大區(qū)別。待處理的圖像必須要先轉(zhuǎn)化為灰度圖像,像素點的灰度值分布在0-255之間。常用的方法是設(shè)置一個合適的閾值T,根據(jù)閾值將圖像數(shù)據(jù)0-255的灰度空間劃分為兩部分:大于T的像素群和小于T的像素群,將兩部分像素群用0和1進行表示,分別表示目標和背景,這就是二值化的過程。二值化的結(jié)果是使圖像呈現(xiàn)只有黑和白的視覺效果。
3.2.3形態(tài)學處理
數(shù)學形態(tài)學是新型的圖像處理與分心的方法,1964年法國和德國的科學家在研究巖石的結(jié)構(gòu)時建立的;形態(tài)學的應用幾乎涵蓋了圖像處理的所有領(lǐng)域,在圖像檢測、生物醫(yī)學圖像分析、機器視覺等方面取得了非常成功的應用。
(1)結(jié)構(gòu)元素(structure element)。設(shè)有兩幅圖像B,x。若x是被處理的對象,而B是用來處理x的,則稱B為結(jié)構(gòu)元素,又被稱為刷子。結(jié)構(gòu)元素通常是比較小的圖像。分為B包含于x,B擊中x,B擊不中x,如圖2所示。
(2)形態(tài)學操作時由一組形態(tài)學代數(shù)運算字組成的,它的基本運算有4個:
腐蝕(或侵蝕)-Eroding:把結(jié)構(gòu)元素B平移a后,得到Ba,如果Ba包含于x,所有滿足上述條件的a點組成的集合稱作x被B腐蝕的結(jié)果。
膨脹(或擴張)-Dilating:可以看作腐蝕的對偶運算。把結(jié)構(gòu)元素B平移a后,得到Ba,如果Ba擊中x,所有滿足上述條件的a點組成的集合稱作x被B膨脹的結(jié)果。
開啟(開運算)-Opening:先腐蝕后膨脹的過程成為開運算。它具有消除細小物體,在纖細出分離物體和平滑較大物體邊界的作用。
閉合(閉運算)-Closing:先腐蝕后膨脹的過程稱為閉運算。它具有填充物體內(nèi)細小空洞,連接臨近物體和平滑邊界的作用。
3.2.4連通區(qū)域檢測及標記
二值化的圖像中包含多個黑白塊時,需要選取其中感興趣的部分進行分析。這時就需要對其中的各個部分進行標記,并以此為根據(jù)分理處索要分析的部分。MATLAB中連通區(qū)域檢測與標記函數(shù)為L=bwlabel(BW,n)。
4.目標識別與計算
對于運動目標的檢測首先要確定場景中存在運動的目標,這就要檢測視頻序列圖像中的場景圖像是否有變化??紤]到不同環(huán)境的檢測方法不同,目前大多數(shù)目標識別算法是針對某一個確切問題而提出的,這樣就簡化了算法編程。
4.1目標識別的基本方法
區(qū)分視頻目標檢測算法的標準是被監(jiān)測的場景與攝像頭之間是否存在相對運動。當視頻監(jiān)視中的背景與攝像頭之間位置保持不變時,可以運用背景差分的方法,并提取目標:當視頻監(jiān)視中的背景與攝像頭之間位置相對變化時,背景差分的方法失效,可以用幀間差分的方法。另一種情況下,如果背景和目標在顏色等方面差別較大時,可以運用合適的閡值分割的方法,將目標提取出來,但是這種方法有一定的局限性。
4.2幀間差分法
幀間差分主要是對視頻圖像中相鄰的兩幀圖像差分運算來獲得運動目標的方法。當場景中出現(xiàn)異常物體時,幀與幀之間的差距較大,通過減法運算,得到兩幀圖像的亮度差,然后通過設(shè)定閾值來提取圖像中的運動目標,通過判斷前后幀的互相減法運算,判斷物體移動方向。這種方法的優(yōu)點是:算法簡單容易實現(xiàn),易于實施實時監(jiān)控,程序設(shè)計簡單易行?;谙噜張D像的差分方法,由于間隔較短,因此對于光線的變化不明顯。
4.3背景差分法
背景差分法是一種常用的運動檢測的方法,原理是利用當前圖像與背景圖像的差分來檢測運動目標。背景消減法的主要特點是:它適用于攝像機靜止的情況,需要得到當前視頻的背景圖像或者為靜止背景建立模型;可以獲得關(guān)于目標運動區(qū)域完整精確的描述,提取的目標圖像較為精確。
雖然這種方法可以提取完整的目標圖像,但是在實際應用中存在許多問題。實際應用中不容易得到一副標準的圖像背景。有一種簡單的方法是,當場景中無任何目標時捕獲圖像作為背景,但是隨著時間的變化,外界環(huán)境會發(fā)生變化,比如光照、噪聲等。鑒于這種非自適應的背景圖像估計方法的缺點,研究人員目前致力于開發(fā)不同的背景模型,進行背景的動態(tài)更新,以減少動態(tài)場景對目標檢測帶來的影響。本文主要是運用靜止背景下的差分法,當然這種方法存在一定的局限性。本設(shè)計處理圖像過程如圖3所示。
4.4目標識別
將原始圖像進行背景差分、二值化處理、連通區(qū)域檢測并標記后,圖像向豎直方向做投影,黑色區(qū)域在矩陣中用0表示,白色區(qū)域在矩陣中用1表示。判斷中心線處為0時,表示出現(xiàn)目標,當d的范圍小于一定值時計數(shù),因此d的取值需要根據(jù)具體的圖像序列選取,如果取值不恰當,可能會出現(xiàn)同一個目標重復計數(shù),或者有的人通過門口沒有計入。因此這種方法受到行走速度等方面的影響,存在一定的局限性。
5.圖形界面設(shè)計GUI
5.1GUI簡介
計算機可以實現(xiàn)圖形圖像顯示和音頻輸出等功能,MATLAB的圖像用戶界面可以實現(xiàn)用戶與計算機之間的人機交互。在一個功能完整的GUI上,可以實現(xiàn)圖像顯示、音頻、視頻輸出等功能,很好地實現(xiàn)人機交互,其原理是先要編寫相關(guān)組件的回調(diào)函數(shù),這樣在生成后的界面上,通過按鍵操作、光標定位、文字說明等實現(xiàn)對相關(guān)回調(diào)函數(shù)的調(diào)用,這樣就選擇了或者激活對象,控制計算機完成相關(guān)操作,例如,實現(xiàn)計算、繪圖等功能。
5.2GUI界面設(shè)計
MATLAB提供了用于界面設(shè)計的工具箱GUIDE,完成一次界面設(shè)計需要完成兩個過程,一方面是界面的組件布局,用戶通過新建GUI文件,將需要的各種組件添加到窗口,并保存,這樣就自動產(chǎn)生了FIG文件,文件中包括組件資源;另一個就是對組件進行編程,編寫函數(shù)觸發(fā)相應的過程,實現(xiàn)相應的功能,程序一般在M文件中進行初始化和編輯。
6.實驗結(jié)果與分析
本設(shè)計應用MATLAB對攝像頭采集的視頻進行處理,可以檢測特定情況下學生出入以及人流量的檢測,但是還存在一些不足之處,比如使用范圍單一,圖像處理過程中存在誤差,這些都會對統(tǒng)計結(jié)果造成影響。人流量統(tǒng)計是大型商場、購物中心、車站、展覽館、機場等公共場所在管理和決策方面不可缺少的數(shù)據(jù)。隨著現(xiàn)代科技的發(fā)展,智能監(jiān)控在生活中的應用越來越廣泛,人們借助其對環(huán)境進行更深刻的認知和理解。相信隨著計算機技術(shù)的不斷發(fā)展,智能監(jiān)控系統(tǒng)的智能化程度將越來越高。