張 華,劉宏立,徐 琨,馬子驥
湖南大學 電氣與信息工程學院,長沙 410082
基于RGB-D相機的實時人數統計方法
張 華,劉宏立,徐 琨,馬子驥
湖南大學 電氣與信息工程學院,長沙 410082
人數統計系統在智能監控中有著廣泛的應用價值。地鐵站和火車站等重要公共場所的人數統計為控制客流提供精確的客流數據管理;公交車,電梯口等區域的客流量統計對公共安全防范和交通配置都有著重要的參考價值;大型超市和商場等企業在人數統計的基礎上進行相關商業分析和數據挖掘可以輔助企業指導市場決策。因此,潛在的社會意義和市場應用價值使人數統計成為當前國內外智能視頻監控領域的研究熱點之一。
采用計算機視覺的人數統計方法主要分為2類:(1)基于可見光的人數統計;(2)基于深度傳感器的人數統計。基于可見光的人數統計具體可分為3種[1]:基于檢測的計數[2]、基于聚類的計數[3]和基于回歸的計數[4]。基于檢測的計數利用圖像的局部特征訓練出的檢測器檢測圖像中是否有行人;基于聚類的計數采用非監督的學習方法把運動場或者視覺特征相似的對象的相干特性軌跡聚類成一個運動的子集,通過統計子集的數量進行行人計數;基于回歸的計數通過機器學習直接從底層圖像特征到人群密度的映射關系來統計行人數目。這幾種方法在實際應用中容易受到運動人群遮擋、隨身物干擾、光線變化和目標紋理變化等環境因素影響,導致計數準確率低和魯棒性差。基于深度傳感器的人數統計主要采取的技術有飛行時間法(Time-Of-Flight,TOF)[5]、激光掃描和結構光3種,前2種設備價格昂貴且精度沒有采用結構光技術的RGB-D傳感器高,后者隨著微軟Kinect的推出逐漸成為研究的熱點。面對不同的應用需求,基于RGB-D傳感器的人數統計方法的視角可分為頂視[6-8]和斜視[9-10]2個方向,頂視安裝簡單,能直觀地解決人群遮擋問題。
本文受模擬降水的分水嶺算法[11-12]啟發,提出了一種新的D-RWS人數統計算法。傳統的模擬降水分水嶺變換目的是找到分水嶺,本方法處理的對象是包含行人的深度圖,目的是通過模擬降落的雨滴在深度地形圖找到指示行人頭部區域的集水盆地。在頂視深度圖上采用模擬降水的思路,解決了ROI分割的難題。本方法相對傳統基于視覺的方法具有以下優點:(1)算法復雜度低,實時性能好,統計準確率高;(2)魯棒性強,不受人群遮擋、光照變化、陰影等環境因素影響。
本方法采取的RGB-D設備為以色列3D傳感技術公司PrimeSense推出的PrimeSensor,其輸出深度圖像分辨率為640×480,最大輸出幀率為60 f/s[13]。設備安裝如圖1(a)所示 ,使用垂直向下視角拍攝行人獲取頂視深度圖。不失一般性,行人的頭部相對身體其他部位總是距離PrimeSensor最近,即行人的頭部深度值是局部最小值。由圖1(b)和實際視頻分析可知,人群在擁擠時只有人頭之間不存在遮擋,由此定義ROI為深度圖中行人的頭部區域,檢測行人的數目等同于檢測行人頭部的數目。準確檢測分割出行人的頭部后,對頭部質心進行簡單的跟蹤和軌跡判斷可實現人數統計。系統的示意圖如圖1,其中圖1(a)是PrimeSensor頂視安裝場景,圖1(b)是PrimeSensor獲取的RGB圖和原始深度圖,深度圖的像素值等于以毫米為單位的深度值,圖1(c)是本文的總體流程圖。

圖1 系統概述
3.1 算法準備
3.1.1 深度圖像修復
PrimeSensor深度攝像頭用CMOS紅外傳感器采集由投射器投射出的散斑結構光,交由PS1080芯片進行計算后得到最終的景深數據。基于主動結構光測量方法獲取的深度圖在目標的邊緣區域和平滑區域存在空洞現象,如圖1(b)黑色區域所示(像素值為0),這些丟失深度信息的空洞區域會影響ROI分割效果,因此需對其進行修復。
本文從實時性考慮出發提出了一種簡單的從圖像邊緣到中心逐層填充像素的自適應開關均值濾波處理方法,避免了傳統非線性濾波算法[14]復雜度大的問題。首先判斷深度圖I的像素點是否為噪聲點,將空洞像素的坐標并放入集合Φ,非空洞區域的像素值保持不變。然后以Φ中的元素為中心,求出邊長L=2BRsize+1的矩形濾波窗內非空洞像素的個數,如式(1)中N所示。最后按式(2)求得濾波輸出值V,即矩形窗內非空洞像素的平均值。保存本次計算的結果并作為有效像素參與Φ中下個空洞像素的均值填充計算,直到深度圖中沒有空洞像素,修復后的深度圖如圖2(c)所示。實驗效果表明此輕量級的自適應開關均值濾波修復方法能達到良好的修復效果。

3.1.2 前景提取
視頻中運動目標的檢測常用背景差分法,背景差分法具有實時性能好和目標檢測準確的優點,其最關鍵的部分是背景建模。經典的背景模型包括混合高斯分布模型(Mixture of Gaussian,MoG)[15-16]、Kalman濾波器模型和視覺背景提取(Visual Background Extractor,VIBE)模型[17]。本文采取精度和魯棒性強的混合高斯背景建模方法,使用3個高斯分布模型對視頻中每個像素點的像素值序列建模,獲取的前景二值圖如圖2(a)所示。受攝像機噪聲的影響,圖2(a)存在大量雜散小塊噪聲區域,采用融合面積濾波的形態學開運算處理,具體步驟如下:
(1)執行形態學腐蝕操作,消除雜散的噪點區域。
(2)進行區域面積濾波,即對腐蝕后的二值圖進行4連通標記,統計被標記的區域個數和每個區域的像素個數,濾除區域像素個數小于閾值的小區域。
(3)對面積濾波后保留的大區域進行形態學膨脹操作,得到去噪后平滑的前景二值圖,如圖2(b)所示。
(4)將去噪后的前景二值圖2(b)與前景修復的深度
P=1圖2(c)相乘,得到場景中的行人區域即前景深度圖,如圖2(d)所示。
對分辨率為160×120的視頻混合高斯背景建模實驗每幀的處理時間約10 ms,能夠適應復雜的場景變化,可有效、快速地提取前景目標。

圖2 前景提取過程
3.2 ROI分割
根據深度圖像的地形學理解,深度值高的地方為山脊,深度值低的地方為盆地,隨機降落在地貌模型上的雨滴受重力的影響由地勢高的地方向地勢低的方向流動。如圖3所示,假設依次降落的理想雨滴大小相等且互不影響,當離散雨滴隨機降落在模型上,必將沿著山坡最陡峭路徑流入谷底,形成一個“集水盆地”。“集水盆地”就是深度圖中行人的頭部區域,從而實現了ROI的粗分割。設 I(x,y)為前景區域(x,y)位置的深度值,M(x,y)為(x,y)位置的水滴數量。為遵循地形學約束保持集水盆地水面平坦,M(x,y)滿足:

如果 I(p1)≤ I(p2),則 M(p1)≥ M(p2),且 I(p1)+M(p1)≤I(p2)+M(p2)。
在此約束下,通過M(x,y)的分布可間接找出I(x,y)的局部極小值區域。

圖3 模擬降水示意圖
3.2.1 模擬降水分水嶺過程
ROI分割詳細過程見圖4。算法開始時先初始化雨滴分布函數 M(x,y)為0。然后用前景最大像素值的2倍填充背景區域,以方便處理前景與背景過渡的邊界區域。

圖4 ROI分割流程圖
在整個模擬降水分水嶺過程中降落的雨滴總數定義如式(3):

式中,sizef為前景區域的像素個數,K是控制雨滴總數的常數取經驗值50。所有雨滴隨機降落在前景區域,服從均勻分布。降落在同一個小區域的雨滴走過的路徑和最終停留的局部極小值區域基本相同,為加速算法執行,設迭代時每次降落RN個雨滴。整個算法執行過程可分為外循環和內循環,外循環中雨滴按均勻分布隨機降落,直到RainNum個雨滴全部撒落在前景區域。內循環則為降落的雨滴迭代尋找局部最小值的過程。
則外循環次數為:

雨滴倍數:

定義位置(x,y)各方向坡度:

式中,(xn,yn)是當前位置(x,y)的8鄰域點,坡度表示當前位置的總高度(I(x,y)+M(x,y))與其8鄰域點的高度差,坡度越大則該方向的重力勢能越大,優先選擇該方向。當8鄰域上網坡度都小于或等于閾值RD,表示該點為局部最小值點。
雨滴下降坡度最大方向:

每次內循環都先初始化R=RN,求出各方向坡度。
當D(x*,y*)-RD>0,即最大坡度大于坡度閾值時,則當前位置不是局部極小值區域,執行坐標跳轉x=x*,y=y*且R保持不變。
當 D(x*,y*)-RD≤0,即當前位置8鄰域的最大坡度小于等于坡度閾值RD時,則判斷是局部極小值區域,當前位置雨滴數目按公式(8)更新。

同時內循環迭代執行時雨滴按公式(9)遞減。

更新的R個水滴從位置(x,y)繼續選擇坡度最大的方向移動,直到R小于或者等于0時內循環結束。當外循環次數iter執行完畢,得到粗糙的ROI如圖5(a)所示。

圖5 D-RWS算法后處理
3.2.2 加速方法
在算法的迭代過程中,考慮到D(x*,y*)存在多個,采取智能選擇和前向優化加速方法。此方法在內循環中把雨滴分為2種:第一種是初始雨滴即外循環iter每次更新時隨機產生的未移動位置的雨滴;另外一種是已經移動過的非初始雨滴。在初始雨滴移動過程中,沒有上一步移動方向參照,如果D(x*,y*)存在多個則從中隨機選擇一個作為雨滴的移動方向。非初始雨滴選擇的移動方向可分兩類:
(1)D(x*,y*)唯一存在則選擇僅有的最大值方向。
(2)當多個 D(x*,y*)存在時,引入權值矩陣 A,如圖6(a)所示,參考上一步移動方向,優先選擇權重較大的靠前方向,具體過程如下:
如圖6(b)所示,定義中心點8鄰域的方向S1到S8設雨滴從 O 沿著方向 i移動到 O*,i=(1,2,…,8)。令O*各方向 j=(1,2,…,8)分別對應S1到S8。對任意方向j

雨滴移動時從多個D(x*,y*)方向中選擇權值最大的方向dir為:

圖6(b)列舉了O沿著方向3移動到O*的權重分配情況,帶*號數字為權重。

圖6 權重矩陣和前向加速示意圖
3.3 算法后處理
D-RWS算法ROI分割部分執行完畢后的雨滴分布結果如圖5(a),由圖可知頭部區域的面積和灰度值(深度)大,非ROI區域面積和灰度值小。為濾除部分非頭部局部極小值區域的噪聲影響,只有當某個位置的雨滴數目(深度)和連通域像素個數(面積)大于閾值的像素點才最終保留為ROI。因此需采取形態學濾波后處理方法濾除非ROI區域,只保留頭部區域。具體過程如下:
(1)對原始雨滴分布圖進行形態學腐蝕運算,消除邊界點和噪聲區域。
(2)對腐蝕后的圖進行深度濾波,濾除所有深度小于深度閾值的區域,即雨滴數目大于此閾值的區域才當作頭部,深度濾波結果如圖5(b)所示。
(3)對步驟(2)處理后的圖片進行4連通標記,濾除區域像素點數小于面積閾值的小區域,結果如圖5(c)。
目標跟蹤常用卡爾曼濾波和粒子濾波等算法,以上算法雖然魯棒性較好,但復雜度大,在多目標的點跟蹤場景并不適用。根據待處理圖像幀的特點和實時性的要求,本文采用基于質心空間歐氏距離最短法的運動目標跟蹤算法[18]。算法將運動目標的形心坐標視為視頻運動對象的質心坐標,用空間歐氏距離最短法對視頻幀中各運動目標質心進行關聯匹配,并跟蹤相鄰各幀匹配目標繪制軌跡,如圖7左上角分圖。根據標號判斷當前幀中是否有目標消失,若有目標消失則判斷有行人進出,且消失目標數目為進出人數總和。由目標出現的起始點質心坐標、消失點質心坐標以及起始點與消失點之間的距離可判斷目標的進出方向并統計數目。
本文實驗環境為:MacBook Air筆記本,1.8 GHz Intel Core i5 CPU和4 GB內存,通過C++語言在Visual Studio 2010編程平臺下實現算法。PrimeSensor采用OpenNI軟件開發包。算法的執行時間主要消耗在混合高斯背景建模和雨滴降落迭代的過程,為加速算法把原始640×480大小的深度圖片降采樣為160×120。實驗系統界面及參數設置如圖7所示,其中n表示當前幀的人數,t是以秒為單位的當前幀全部處理時間,右下角紅色數字為區分不同目標而設置的標號。

圖7 系統界面及參數設置
5.1 性能測試與比較
表1是三組代表性場景現場測試的結果。設置PrimeSensor安裝高度為3 m,測試時間1 h,只統計出現在PrimeSensor視野中的人數。從表1中可看出,在普通場景電氣院中統計的正確率高達100%,而圖書館和某大型超市因客流量大且隨身干擾物多其準確率稍有下降。例如在超市測試時有小孩的頭部緊靠著大人的肩膀,小孩被當作了大人的一部分。雖然整個過程存在漏檢和誤檢,其總體正確率也維持在98%以上。

表1 實驗結果
表2顯示了本文算法與當前效果較好的文獻[7-8]方法的比較結果(表中文獻的數據均來自原作者論文中),從表中可知本方法的平均幀率可達40 f/s,平均計數準確率達99.1%,速度和準確率均優于以上兩種算法,是目前處理速度和準確率最好的算法之一。

表2 人數統計準確率和速度比較
5.2 魯棒性測試
圖8、圖9和圖10分別為算法在人群密集場景、人頭粘連場景和復雜隨身物干擾場景的測試效果。在圖8中,行人不僅擁擠而且部分行人的手搭在其他人肩上形成交叉干擾。場景中共有8人,但只有7人的頭部出現,實際準確檢測到7人,右下角行人因為只有肩部出現在場景中沒有統計。圖9是3個行人頭部倆倆粘連情況測試,D-RWS算法執行結果中頭部沒有完全分離,但通過后處理步驟得到的最終ROI完全分離,準確檢測到3個行人。如果行人的頭部緊密的挨在一起,使之融合成一個連通域則本文算法會漏檢,但這種特殊的情況發生的概率十分小,所以不會影響算法的整體性能。圖10是算法在復雜隨身物的場景下測試,行人的隨身物包括棒球帽,大書包,拉桿箱和籃球,從圖中可看出本方法能夠排除隨身物干擾準確檢測到行人,算法的魯棒性較強。此外,本文算法采取的結構光技術,能適應室內環境任意光照環境變化。由以上測試可知,本方法的魯棒性較強,綜合性能出色。

圖8 人群密集場景測試

圖9 頭部粘連場景測試

圖10 復雜隨身物干擾測試
5.3 關鍵參數選擇
圖11為每次降落雨滴數RN與坡度閾值RD兩個參數對算法處理速度的影響曲線,測試對象為某超市視頻幀序列。從圖11中可知,當RN固定不變時平均每幀處理時間隨著RD的增加而顯著減少。因為RD越大,內循環迭代速度越快,但人數統計的準確率也相應地降低了。如果RD太小,算法迭代速度太慢,影響執行效率,并且容易受到噪聲的影響。總體上,當RD不變時,平均每幀處理時間隨著RN的增加而增加,當RN增加時雖然外循環次數變少了,但是內循環迭代步數增加了,而且內循環迭代的過程主導了算法的執行時間。

圖11 RD和RN與時間復雜度關系曲線圖
由圖12中可知,當RN固定為25,RD在3~10范圍內變化時,正確率能保持在98%以上。當RD繼續變大時,內循環迭代太快,以至于未能找到最佳極小值區域就停止迭代,導致準確率緩慢下降。即使RD增大到與RN相等時正確率依然能保持在90%以上。由上述實驗分析可知,本文方法對參數變化不敏感,泛化能力強。如果PrimeSensor高度相差不大,RD值可以保持不變。權衡算法的速度和精度,實驗時最終選擇RN為25,RD 為8。

圖12 正確率與RD關系曲線圖(RN=25)
針對傳統相機及其采用的人數統計方法遇到的遮擋、光照變化、顏色和紋理等環境因素導致計數準確率低的問題,提出一種基于RGB-D傳感器的D-RWS算法。D-RWS算法解決了人群前后遮擋的問題,增強了環境適應的魯棒性,能高效準確處理深度圖中ROI的局部極小值的特性。實際場景測試表明,本方法在精度、速度和魯棒性上比傳統方法都有顯著提高。但是,RGB-D傳感器采用結構光技術也導致其視野范圍以及有效距離都較小,受太陽光中的紅外成分影響而不能適應室外環境,在今后的工作中考慮利用雙目立體匹配獲取深度圖實現人數統計。
[1]Loy C C,Chen K,Gong S,et al.Crowd counting and profiling:methodology and evaluation[M]//Modeling,simulation and visual analysis of crowds.New York:Springer,2013:347-382.
[2]Dollar P,Wojek C,Schiele B,et al.Pedestrian detection:an evaluation of the state of the art[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(4):743-761.
[3]Rabaud V,Belongie S.Counting crowded moving objects[C]// IEEE Conference on Computer Vision and Pattern Recognition,2006:705-711.
[4]Chan A B,Vasconcelos N.Counting people with low-level features and Bayesian regression[J].IEEE Transactions on Image Processing,2012,21(4):2160-2177.
[5]TannerR,StuderM,Zanoli A,etal.Peopledetection and tracking with TOF sensor[C]//IEEE 5th International Conference on Advanced Video and Signal Based Surveillance,2008:356-361.
[6]Fu H,Ma H,Xiao H.Scene-adaptive accurate and fast vertical crowd counting via joint using depth and color information[J].Multimedia Tools and Applications,2013:1-17.
[7]Zhu L,Wong K H.Human tracking and counting using the KINECT range sensor based on Adaboost and Kalman filter[M]//Advances in visual computing.Berlin:Springer,2013:582-591.
[8]Lin D T,Jhuang D H.A novel layer-scanning method for improving real-time people counting[C]//HCI,2013:661-665.
[9]Hsieh C T,Wang H C,Wu Y K,et al.A Kinect-based people-flow counting system[C]//2012 International Symposium on Intelligent Signal Processing and Communications Systems(ISPACS),2012:146-150.
[10]Fu H,Ma H,Xiao H.Real-time accurate crowd counting based on RGB-D information[C]//2012 19th IEEE International Conference on Image Processing(ICIP),2012:2685-2688.
[11]刁智華,趙春江,郭新宇,等.分水嶺算法的改進方法研究[J].計算機工程,2010,36(17):4-6.
[12]De Bock J,De Smet P,Philips W.A fast sequential rainfalling watershed segmentation algorithm[C]//Advanced Concepts for Intelligent Vision Systems.Berlin:Springer,2005:476-482.
[13]Min R,Choi J,Medioni G,et al.Real-time 3D face identification from a depth camera[C]//2012 21st InternationalConferenceonPatternRecognition(ICPR),2012:1739-1742.
[14]Camplani M,Salgado L.Efficient spatio-temporal hole filling strategy for kinect depth maps[C]//Proceedings of SPIE,2012,8920.
[15]Stauffer C,Grimson W E L.Adaptive background mixture models for real-time tracking[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1999,2.
[16]宋佳聲.動態場景的自適應高斯混合模型的研究[J].計算機工程與應用,2012,48(1):8-12.
[17]Barnich O,Van Droogenbroeck M.ViBe:a powerful random technique to estimate the background in video sequences[C]//IEEE International Conference on Acoustics,Speech and Signal Processing,2009:945-948.
[18]孫志海,朱善安.多視頻運動對象實時分割及跟蹤技術[J].浙江大學學報:工學版,2008,42(9):1631-1635.
ZHANG Hua,LIU Hongli,XU Kun,MA Ziji
College of Electrical and Information Engineering,Hunan University,Changsha 410082,China
To solve problems such as occlusion and illumination changes that lead to low accuracy on conventional methods, a novel method D-RWS(Depth map based Rainfalling Watershed Segmentation)is proposed.Depth map is inpainted and foreground is extracted with the help of mixture of Gaussian background model.D-RWS algorithm is used to segment head area as Region Of Interest(ROI).People are tracked and counted by analyzing trajectories,which associated by minimal Euclidean distance between the centers.Experimental results show that proposed people counting system can,on average, count people with an accuracy of 98%and operate at approximately 25 milliseconds per frame(40 f/s).The accuracy and real-time performance fully meet the requirements of practical application.
RGB-D camera;PrimeSensor;people counting;Depth map based Rainfalling Watershed Segmentation(D-RWS); centroid tracking
針對傳統人數統計方法因遮擋、光照變化導致準確率低的問題,提出一種適用于深度圖的模擬降水分水嶺算法(Depth map based Rainfalling Watershed Segmentation,D-RWS)。修復深度圖并用混合高斯背景建模提取前景。利用D-RWS算法分割深度圖中感興趣的行人頭部區域(Region Of Interest,ROI)。采用質心歐式距離最短法關聯各幀中同一目標并跟蹤計數。實驗結果表明:提出的方法準確率能夠達到98%以上,平均每幀處理時間為25 ms(40 f/s),準確率和實時性可滿足實際應用的要求。
RGB-D相機;PrimeSensor;人數統計;D-RWS算法;質心跟蹤
A
TP391.4
10.3778/j.issn.1002-8331.1404-0284
ZHANG Hua,LIU Hongli,XU Kun,et al.Real-time method for people counting based on RGB-D cameras.Computer Engineering and Applications,2014,50(23):156-162.
國家自然科學基金(No.61172089);湖南省科技廳資助項目(No.2014WK3001)。
張華(1989—),男,碩士研究生,研究方向為計算機視覺、圖像處理;劉宏立(1963—),男,教授,博士生導師,研究方向為無線傳感網絡、移動通信系統與軟件無線電、智能信息處理與傳輸技術;徐琨(1979—),男,博士研究生,研究方向為無線傳感網絡;馬子驥(1978—),男,講師,研究方向為無線通信技術、數字信號處理。E-mail:zh20923@163.com
2014-04-17
2014-06-13
1002-8331(2014)23-0156-07
CNKI網絡優先出版:2014-09-18,http://www.cnki.net/kcms/doi/10.3778/j.issn.1002-8331.1404-0284.html