胡亞洲, 周亞麗, 張奇志
(北京信息科技大學 自動化學院,北京 100192)
當今社會,城市發展十分迅速,大量人口不斷地涌入城市,給城市的治理造成了很大的困難。尤其一些人流量比較密集的地方,極易發生擁堵或踩踏等事故,比如火車站廣場等。人流過于密集為工作人員的管理帶來很大的困難,同時智慧城市的建設也在如火如荼的進行中,智能監控統計人流量也屬于智慧城市建設的一部分,因此,一套安全有效的高點行人檢測方案對智慧城市的建設是很有幫助的。
行人檢測的方法主要有方向梯度直方圖(Histogram of Oriented Gradient, HOG)和支持向量機(Supported Vector Machine,SVM)、AdaBoost和Haar分類器訓練行人檢測模型、DPM行人檢測[1]和近幾年廣泛使用的深度學習行人檢測算法。2005年在IEEE國際計算機視覺與模式識別會議(IEEE Conference on Computer Vision and Pattern Recognition,CVPR)上,Dalal等[2]提出利用HOG進行特征提取。HOG特征是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子,它通過計算和統計圖像局部區域的梯度方向直方圖來構成特征。提取的HOG特征結合SVM分類器組成的算法,已經被廣泛的在圖像處理目標識別領域應用,尤其在行人檢測中獲得了很好的效果,在工程項目上也廣泛使用[3]。雖然Papageorgiou等在人臉檢測上最先應用Haar-like特征,但是在2001年Viola等[4]在Adaboost迭代算法的基礎上,使用Haar-like小波特征和積分圖方法進行人臉檢測[5],提取了關于人臉更好的特征,而且對AdaBoost迭代算法訓練出的弱分類器進行級聯,組成一個更好的強分類器,因而達到了更好的檢測效果,這次飛躍,在人臉檢測的歷史進程中具有重大的意義。同樣Haar-like特征[6]在行人檢測上同樣適用。上述算法實現過程都是提取大量樣本的特征,通過學習記憶,到達再次出現行人的時候可以準確地檢測出來,前提是人物的特征比較明顯。深度學習的概念由Hinton等于2006年提出,近幾年深度學習應用非常廣泛,在計算機視覺,語音識別,自然語言處理方面都有廣泛的應用。深度學習行人檢測的主要算法有Faster-Rcnn、SSD、Yolo,這些算法在目標檢測領域都有很好的效果。2015年Ross Girshick團隊在Fast-Rcnn基礎上提出了Faster-Rcnn,簡單網絡目標檢測(ZF模型)速度可以達到幀率17 f/s,在PASCAL VOC數據集上的準確率為59.9%;復雜網絡幀率在5 f/s左右,準確率可以達到78.8%[7]。雖然該算法速度慢,但是Faster-Rcnn是通過大量樣本自己去學習目標的特征,在檢測效果上比傳統算法有了很大的提升,但是該算法需要在配置GPU顯卡的電腦上運行,對計算機硬件的要求比較高,很多應用場景不可能配置高性能的計算機,而且針對本文的高點行人檢測應用場景,雖然樣本也足夠多,但是目標物很小,特征不明顯,當新的行人出現時分不清是目標物還是噪聲。綜合分析,以上算法不適合現在的應用場景,本文中處理的行人目標很小,根本不能提取足夠的特征來進行學習,所以排除了一些主流的行人檢測算法。
由于場景比較特殊,行人占據的像素很小,本文通過運動的特征來統計人數,常見的方法有加權平均背景建模、混合高斯背景建模、幀間差分法、背景差分法?;旌细咚贡尘敖J腔谙袼貥颖窘y計信息的背景表示方法,利用像素在較長時間內大量樣本值的概率密度等統計信息(如模式數量、每個模式的均值和標準差)表示背景[8],然后通過視頻流中的當前幀與背景幀做差分得到運動目標,但是該算法的計算量比較大,因而對機器的性能要求較高,而且對于小物體檢測的效果不太理想。背景差分法是利用當前輸入幀和背景差來獲取運動目標,算法優點是簡單、處理速度快,且差分結果能直接提取運動目標,不足是背景圖像會受到天氣和光線等外界因素的影響,需要對背景進行動態更新[9]。加權平均背景建模是一種簡單、計算速度快但對環境光照變化和背景的多模態性比較敏感的一種背景建模算法。其基本思想是:計算每個像素的平均值作為它的背景模型。檢測當前幀時,只需要將當前幀像素值I(x,y)減去背景模型中相同位置像素的平均值u(x,y),得到差值d(x,y),將d(x,y)與一個閾值T進行比較,得到輸出。幀間差分法是一種通過對視頻圖像序列中相鄰兩幀作差分運算來獲得運動目標輪廓的方法,它可以很好地適用于存在多個運動目標和攝像機移動的情況[10]。當監控場景中出現異常物體運動時,幀與幀之間會出現較為明顯的差別,兩幀相減,得到兩幀圖像亮度差的絕對值,但是大型廣場行人的像素很小,單純的用幀間差分法很難判斷運動物體屬于噪聲還是目標。
針對上述算法分析,結合高點行人檢測的具體應用場景,本文提出采用加權平均背景建模和幀間差分法相結合的算法實現高點行人檢測。背景建模實時更新背景與當前幀進行比較,同時幀與幀之間采用幀間差分法比較,對兩次比較的結果做差分,最后得出檢測的結果。
高點攝像頭可以實現大面積布控,但是很多區域并不是我們感興趣的區域,本文通過繪制虛擬線圈,可以有效地檢測對應的感興趣區域。
虛擬線圈的設置主要有兩點目的,①手動繪制檢測區域,實現只檢測目標區域的行人;②由于處理數據的減少,提高了背景建模的效率,實時性更好。
1.2.1背景提取
在統計運動物體時必須先建立場景的背景,這樣才可以準確地統計出有用的前景信息,僅使用單幀圖片是無法獲得足夠的信息,因此需要在實時統計行人數量前先進行背景建模。本文使用了多幀圖像平均的方法[11],其原理是:背景圖像的灰度值和運動物體灰度值有很大的差異,當運動物體經過背景圖像上的特定點時,這就會引起該位置像素的變化,所以通過計算一段時間的圖像的平均像素值,以此來獲得該場景的背景圖。本文中提取前N(N= 300)幀圖像進行前期的背景建模,N取值越大,背景提取的效果越好。多幀平均算法的表達式如下:
(1)
式中:Bn為采集到第n幀圖像時系統建立的加權平均背景模型,存儲為灰度圖格式;N為加權平均的幀數;fn,fn-1,fn,…,fn-N+1為系統所保留的連續N幀圖像。圖1為背景建模效果圖。

(a)原始幀

(b)100幀背景建模

(c)200幀背景建模

(d)300幀背景建模
從圖1(a)可以看到很多行人;圖1(b)是通過100幀的背景建模,行人已經模糊,可以隱約看到行人,對于一直站著不動的行人,會把這些行人當作背景處理;圖1(c)是經過200幀連續圖像背景建模的效果,實際背景效果比圖1(b)有一定的提升;圖1(d)是經過300幀背景建模,可以發現背景的效果更加顯著,雖然還有瑕疵,這是因為背景建模的幀數影響,通過后續實時背景更新,背景效果會有更好的提升。
1.2.2背景差分
背景差分[12]是運動目標檢測中一種常見的方法,它是利用當前幀圖像與背景圖像的差分運算來檢測出運動區域的一種算法。該算法實現的具體過程:①建立背景圖像;②當前幀與背景圖像做差分運算;③選擇一個合適的閾值,對差分圖像進行二值化。
背景差分的公式表達為:
式中:Ck(x,y)為當前幀圖像;Bk(x,y)為背景建模之后產生的背景圖像;Dk(x,y)為當前幀圖像與背景圖像做差分得到的差分圖像。通過式(3)可以把差分圖像轉化為二值化圖像,若Dk(x,y)>T(T為二值化的閾值),則Rk(x,y)=0,為運動的行人;Rk(x,y)=1為背景圖像。
該算法原理及實現過程較簡單,根據高點檢測場景,通過調節參數及相關閾值可以準確地檢測到運動目標的位置、大小和形狀等相關信息,但是該算法受光線、天氣等外界條件變化的影響較大。
1.2.3背景更新
前期采集300幀圖像作為背景建模的樣本,但是外部的環境也是在緩慢變化的,如光線等,這些變化會對差分的結果產生影響,所以需要實時更新背景[13],以適應場景的變化,達到更好的檢測效果。背景實時更新是通過獲取的當前幀與背景的加權平均所得,更新計算式如下:
(4)
式(4)說明新的1幀背景模型Bn可以由上一次計算得到的背景模型Bn-1,當前fn以及fn-N幀遞推得到,這樣就實現了背景模型的更新。顯然,N值越大,得到的背景模型Bn就越接近于真實背景。
幀間差分法[14]是一種通過對視頻圖像序列中相鄰兩幀作差分運算來獲得運動目標輪廓的方法,它可以很好地適用于存在多個運動目標和攝像機移動的情況。幀間差分法的優點是:算法實現簡單,程序設計復雜度低。對光線等場景變化不太敏感,能夠適應各種動態環境,穩定性較好。其缺點是:該算法容易受到噪聲的干擾,如果消除不了噪聲,會產生很多的誤檢,對輸出結果有很大的影響。
單獨使用背景建模算法會受光線和天氣等的影響,尤其光線變化時背景建模的前景檢測方法易將背景檢測為前景,形成大片陰影或者大的“斑點”的缺陷,造成行人定位坐標不準確和產生誤檢。幀間差分法對光線不敏感,能夠適用各種動態,可以有效克服光線的影響,但是對噪聲不敏感,由于行人目標比較小,單獨使用幀間差分法會把噪聲誤判為行人,造成誤檢,使得統計結果不準確。鑒于以上算法的優缺點,本文將背景建模和幀間差分法結合起來,可以有效去除光線,噪聲等的影響,降低誤檢率,統計結果更為準確。
人數統計是行人檢測的核心,本文中使用輪廓檢測計算虛擬線圈內連通區域的數量來統計人流量。具體實現過程如下:①背景建模后經過背景差分輸出的圖像與幀間差分法輸出的圖像通過矩陣的與運算得到最后的輸出;②對上述背景建模和幀間差分法輸出差分圖進行二值化操作,并且使用形態學的方法處理連通域的邊緣噪聲和內部無黏連區域,從而使得目標區域的行人組成一個連通區,更好地檢測到輪廓;③通過計算輪廓的個數來統計人數。
為了驗證文中所提算法,在VS2013環境下進行了實驗驗證,并與原算法進行比較。對監控視頻進行檢測,目標是能準確計算出行人數,不受周圍噪聲的影響。
本實驗采用CPU2.5GHz、2GB內存的計算機。采用的視頻分辨率為1 920×1 080,幀率為24幀/s。如圖2所示,截取視頻中的一幀,選取400×400作為原始圖像。

圖2 原始圖像
圖3為背景建模算法檢測結果。其中,預處理階段所用參數:背景建模幀數N=300,閾值T=120,學習率α=0.01。從圖3可以看出,檢測效果受光線的影響使得框出的目標區域變大,多個行人被同一個框圈住,導致人流計數產生較大的誤差,同時產生誤檢,把無人的區域誤判為行人。

圖3 背景建模算法效果
該算法首先連續獲取兩幀原始圖片,并且經過灰度變換轉化為單通道圖像,然后做差分,對差分后圖像進行二值化,最后對二值化圖像做膨脹和腐蝕,輸出結果。相應的處理參數:原始圖像的像素為400×400,二值化閾值T=20,實驗結果如圖4所示。從圖4可以得到,幀間差分法對光線不敏感,可以有效克服光線的影響,但是受噪聲的影響很大,導致誤檢較多。

圖4 幀間差分法法效果
在圖像二值化預處理階段,將背景建模后的差分圖和幀間差分法得到的差分圖相比較,既可以克服光線的影響也可以有效地減少由于噪聲因素產生的誤檢,可以更加準確地統計人數,檢測效果如圖5所示。從圖中可以發現,誤檢明顯減少,人物的位置框選也相對準確,統計的人數的效果也有一定程度的提升。圖6為本實驗的軟件界面及實驗效果圖。

圖5 本文算法效果

圖6 軟件界面及統計結果
表1給出了單獨使用一種算法和算法結合后的實驗結果??梢园l現,本文所采用的算法誤檢率最低。

表1 不同算法統計效果對比 個
本文提出了基于背景建模和幀間差分法相結合的的高點行人檢測方法。實驗證明采用背景建模和幀間差分法相結合的算法要優于單純使用一種算法,可以充分濾除噪聲,去除光照等影響。本文所設計的算法已經被鄭州市火車站所采用,在誤差允許的范圍內可以準確地統計出人數,起到人數自動預警的作用,同時也節省了大量的人力物力,為智慧城市建設作出貢獻。