宋坤駿 林建輝 丁建明 西南交通大學
基于特征篩選和輪廓分析的快速防遮擋視頻人數(shù)分區(qū)統(tǒng)計算法
宋坤駿 林建輝 丁建明 西南交通大學
提出一套結合子區(qū)域劃分、特征篩選和輪廓檢測的綜合算法用于視頻人數(shù)統(tǒng)計。該算法能夠很好地克服攝像頭拍攝角度和距離對于面積、形狀、顏色等特征提取的影響,也能在一定程度上控制人頭重疊和背景光照變化等多種情形造成的誤計數(shù)。算法實時響應好,內(nèi)存開銷少,能獲得各個分區(qū)的人數(shù)統(tǒng)計結果且無需預先訓練樣本,實驗證明本方法具有良好效果。
區(qū)域劃分;特征篩選;輪廓分析;人頭識別;遮擋
目前國內(nèi)外基于軟件的視頻人數(shù)統(tǒng)計方法主要可以分為下面幾種:一是基于傳統(tǒng)的圖像處理方法,二是基于機器學習的方法,三是基于區(qū)域估計統(tǒng)計模型的方法。機器學習方法由于需要事先訓練大量有不同代表性的樣本,實用上并不方便。區(qū)域估計的方法,僅僅適用于人流密度較大的場合,準確率也有限。有鑒于此,本文立足于傳統(tǒng)計算機視覺方法,提出了一套綜合算法,結合了子區(qū)域劃分和特征篩選兩種方法,具有較高的實用價值。
傳統(tǒng)計算機視覺方法中,基于人體輪廓模板識別人數(shù)的方法需提取大量不同姿勢下的人體輪廓的模板,且無法對前后人體重疊遮擋的情況提供有效解決方案。本文提出的劃分子區(qū)域的方法可避免同一個攝像頭監(jiān)控視野過大造成監(jiān)控區(qū)域出現(xiàn)前后人頭重疊的現(xiàn)象,同時還可實現(xiàn)分區(qū)人數(shù)統(tǒng)計。
本文按清晰度來決定一個特定子區(qū)域的多張照片中究竟采用哪個攝像頭拍攝的照片。由于清晰度只需相對大小在各個攝像頭之間進行排序即可,所以本文簡單定義清晰度Q為距離和拍攝角度的函數(shù):
其中距離d是拍攝目標離開攝像頭的像素距離。c是一個同攝像頭離開目標物理距離有關的閾值距離,單位為像素數(shù)。θ是攝像頭鏡面法線在天花板上投影同區(qū)域座椅正前方朝向(從講臺指向黑板)的夾角,取值從0到180,單位為度。α是攝像頭鏡面法線同鉛垂線的夾角,范圍從0到90,單位為度。距離含有平方項反映出清晰度對于距離更敏感,并且考慮到了側面(θ為90角)拍攝時左右座椅的遮擋現(xiàn)象將十分嚴重。也考慮了攝像頭在正上方(α為0)時對于特征采集不利。算出的Q是一個無量綱的純數(shù),其絕對數(shù)值不重要,每一個子區(qū)域選用Q值相對最大的攝像頭拍攝的照片。
基于圓形度特征篩選人頭的方法,利用的是圓形在所有周長相等的平面圖形中擁有最大面積這一事實。實用中其準確度較差,因為人頭的形狀同姿勢,性別,拍攝角度等都有較大關系,況且正常人頭也不完全是圓形的,僅當攝像頭從正上方拍攝時,基于圓形度的方法才有一定實際意義。作為改進,作者發(fā)現(xiàn)使用連通域面積同外圍最小矩形面積的比值作為特征有較好的分辨能力??捎行懦T多不相關的類矩形區(qū)域如桌子上放置的黑色筆記本電腦等。此特征同人頭面積特征配合可以取得很好的效果。
作為篩選黑色連通域的標準,采用NTSC彩色模型中的亮度分量
當Y值小于給定閾值時二值化為前景。這種二值化方法可免受背景光照變化和陰影的影響。相比HSV彩色模型,避免了轉化到 HSV空間中色調在紅色的兩邊有數(shù)值上的不連續(xù)性,以及色調在飽和度為零時沒有定義等問題。
目前很多視頻人數(shù)統(tǒng)計的算法都沒有考慮攝像頭角度的問題,實際上攝像頭在正上方和在斜上方這兩種情況下人頭的特征是不同的,例如攝像頭在正上方時人頭下方并不露出膚色,但圓形度較好。而當攝像頭在斜上方時,人頭下方則會露出膚色,但圓形度不佳。本文提出的算法適用于攝像頭在前后方各種角度的拍攝,因為其未用到上述隨攝像頭位置變化敏感的特征。
2.1 基于特征篩選的快速算法
本文提出的基于劃分子區(qū)域后特征篩選的算法可以克服攝像頭距離過遠或拍攝角度不佳造成的前后人頭重疊遮擋以及人頭形狀參數(shù)隨距離改變等問題,且可獲得除總人數(shù)外各子區(qū)域的人數(shù)分布信息。
所說的特征篩選過程,其框圖見圖1,其大意為,由黑發(fā)色篩選人頭候選連通域后依人頭面積不能過大或過小以及形狀不能十分接近矩形過濾所得黑色連通區(qū)域。這種方法受背景,光照等影響小,且能很好地區(qū)分人和物,其包含一個只需進行一次的全局初始化過程,主要就是根據(jù)清晰度劃分子區(qū)域及掩膜版的制作。相比機器學習算法所需的訓練量和人工統(tǒng)計量來說,此初始化步驟開銷小得多。
圖1 特征篩選法框圖
子區(qū)域劃分完畢后,對每一個子區(qū)域:按(1)式定義的清晰度為該子區(qū)域選定一個攝像頭。對每一攝像頭,在它拍攝的圖片中找出其管轄的所有像素區(qū)域。按找出的像素區(qū)域制作長期保存的專屬該攝像頭的掩膜版。
全局初始化完成后,每次啟動算法時,對每一攝像頭,執(zhí)行如下步驟:
(1)掩模板同原圖相“與”得到屬于本攝像頭的子區(qū)域,將原RGB圖拷貝一份,備份圖轉到YIQ顏色空間,單獨提取Y分量形成灰度圖。
(2)用給定的黑色閾值二值化灰度圖后用廣度優(yōu)先遍歷找出黑白圖中所有連通域。相比遞歸洪泛算法和深度優(yōu)先洪泛算法,廣度優(yōu)先算法所需內(nèi)存空間較小。
(3)進行數(shù)學形態(tài)學膨脹操作,結構元素選為圖2所示正方形,目的是去除頭頂心處的亮漩渦。
(4)用掩膜版提取ROI子區(qū)域,剔除面積小于人頭面積下界和大于人頭面積上界的連通域及同外圍最小矩形面積比大于給定閾值的連通域。
(5)對剩下的每一連通域,進一步篩選可選運動檢測和膚色特征。
(6)返回剩下的連通域數(shù)作為子區(qū)域人數(shù)。
2.2 快速算法評述
上述算法還有一個細節(jié)值得注意,那就是在頭頂心處可能出現(xiàn)非黑色的漩渦區(qū)域造成頭部連通區(qū)域計數(shù)錯誤(偏多和偏少都有可能。偏多因為頭頂心將頭分為了兩個區(qū)域了,偏少因為分出來的兩個區(qū)域都小于人頭面積下界,則都會被過濾掉)事實上由于人頭頂心處毛發(fā)稀疏的原因,黑色閾值判據(jù)在頭頂心處可能不適用。針對這個問題,在剔除黑白圖中少像素連通域之后,用數(shù)學形態(tài)學進行濾波修補,填充頭頂心處的偏亮區(qū)域。采用如圖2所示的正方形結構元素,在二值化并剔除黑白圖中少像素連通域之后進行形態(tài)學膨脹運算以填補較大的頭頂心處孔洞。
圖2 (放大的)形態(tài)學結構元素用于填補頭頂心處偏亮區(qū)域
2.3 基于輪廓檢測的修正
應該指出,盡管2.1節(jié)所述算法已完全可以勝任一般的人數(shù)統(tǒng)計任務,但實際運用中仍可能出現(xiàn)一些誤判情形:例如人戴了非黑色帽子,女生頭發(fā)較長且穿黑衣服造成頭部同衣服連成一片很大的黑色連通域,人頭區(qū)域前后重疊導致將兩個人計數(shù)為一個人等。本節(jié)中提出的輪廓檢測算法可對此情況進行修正和確認。
仔細分析上述基于人特征篩選進行人數(shù)統(tǒng)計的算法不難發(fā)現(xiàn),其使用的顏色特征同光照,對比度等關系甚為密切,而其使用的形狀特征又受到拍攝角度,拍攝距離的不少影響。要想減少此方法的誤判率就應該使用一種同光照和幾何參數(shù)關系不大的算法加以修正,輪廓檢測算法就是這樣一種方法,其大意在于檢測子區(qū)域中每兩個座椅交界處的輪廓線朝向和后排座椅上可能的由前排人頭留下的輪廓來判斷一個人的輪廓除占據(jù)本座椅外是否還占據(jù)了旁邊和后邊的座椅。
其具體實施如下:
(1)首先在2.1節(jié)劃分子區(qū)域的基礎上進一步劃分原胞,每個原胞基本上對應一個座椅,但是原胞的背景也完全可以是空的空間。劃分完畢后,對每一個原胞記錄一組數(shù)據(jù),關于所有原胞的數(shù)據(jù)構成了本子區(qū)域的一張表。
(2)然后從原胞的左邊界開始向右邊界畫一條截線,視攝像頭的角度,截線可能不是水平的,考慮到學生普遍有駝背的現(xiàn)象,其應該在座椅偏下方的位置。統(tǒng)計截線同輪廓的交點坐標,若任兩交點間距離比較小,或交點個數(shù)較多,說明有不同于無人時輪廓的其他輪廓存在。
(3)至此只能驗證這個原胞上可能有人,如果進一步通過特征篩選檢測到此原胞上方附近有人頭,則能以很大可能確證人的存在。
(4)若確證本座椅上有人,則還要判斷本座椅上人的輪廓是否占據(jù)了兩個座椅,具體方法是從本原胞右邊界開始到右側原胞的左邊界為止(同攝像頭方位有關,如果攝像頭在右前方,那么應該檢測本原胞左邊界到左邊原胞的右邊界),檢測其上輪廓朝向,如果是向右上方的,則說明座位上人前傾較為嚴重,輪廓遮住了兩個座位。若進一步由特征篩選得出兩原胞附近僅此一個人頭,則更說明是“一人占兩位”。
(5)找出離本原胞距離最近的人頭質心坐標后,判斷其是否落入本原胞后方或后右方的原胞范圍內(nèi),如果是,那么在后方原胞左邊界到右邊界畫一條截線,如果截線的與輪廓兩個最外側交點的距離僅僅為座椅寬度的1/2不到,那么說明后排座位上除了前面本座椅的人頭輪廓外沒有其他的輪廓,即本座椅上人的輪廓占據(jù)了前后兩個座椅。
顯然本小節(jié)開頭提到的特征篩選的誤檢測情形中,前兩個完全可以被輪廓檢測所校正。而針對第三種人頭重疊的誤判情形,只要頭重疊的兩個人身體重疊部分不大,仍可被輪廓檢測判定為兩個人。
因此,輪廓檢測可以很好地規(guī)避掉特征篩選方法的誤計數(shù),但由于其要求在子區(qū)域劃分基礎上進一步劃分原胞,并記錄一些關于原胞的數(shù)據(jù),因此2.1節(jié)中算法初始化開銷也增加了,所幸這些關于原胞的數(shù)據(jù)仍然是一次性的,以后算法啟動時無需重復記錄。
實驗平臺為 Intel(R)Core(TM)i7-4710HQ 2CPU @2.5GHz內(nèi)存16G,64位 Windows7系統(tǒng),采用matlab平臺編寫代碼后轉為可運行的jar包以便與后臺對接。在matlab平臺下程序運行時間為600 ms左右,打包為可運行jar包后運行時間在1 s左右,完全可以滿足實時性的要求。
驗證工作準備了4張教室圖片(圖3、圖4、圖9、圖10),作者同時指出了圖3和圖4兩張圖片中可能引起錯誤統(tǒng)計的注意點,這些可能的錯誤由于本文采取的劃分子區(qū)域和原胞以及雙重糾正的辦法得到了最大程度的避免和校正。圖3和圖4是同一教室的左前方攝像頭拍攝的,像素數(shù)為720× 1280,其管轄的兩個子區(qū)域已經(jīng)單獨劃分出來,如圖5至圖8所示。圖9和圖10則將整個教室作為一個大的分區(qū),即便如此,統(tǒng)計的結果也是相當準確了。其中,圖5至圖8所劃分子區(qū)域的原胞數(shù)據(jù)表如表1和表2所示。
圖3 測試樣例圖片1
(1)人戴了非黑顏色的帽子;
(2)非ROI(走道非座位)上出現(xiàn)人且其頭部進入ROI;
(3)頭頂心上出現(xiàn)白色漩渦且與后面黑色筆記本電腦連成一片連通域;
(4)兩個人頭重疊成一個人頭。
實際人數(shù) 75,算法統(tǒng)計結果74。
圖4 測試樣例圖片2
(1)人完全低下頭,黑色頭部區(qū)域下發(fā)無膚色區(qū)域;
(2)拍攝角度較偏造成遮擋,一個人的輪廓占據(jù)左右兩個座位;
(3)距離較遠造成遮擋,一個人的輪廓占據(jù)前后兩個座位;
(4)女生頭發(fā)較長且穿著黑衣服,造成頭發(fā)與衣服連成一片很大的黑色連通域;
(5)拍攝角度較偏造成遮擋,一個人的輪廓占據(jù)左右三個座位。
實際人數(shù) 58,算法統(tǒng)計結果 63。
圖5 測試樣例圖1中左前方攝像頭管轄的子區(qū)域之一(實際人數(shù) 10,算法統(tǒng)計人數(shù) 9)
圖6 測試樣例圖1中左前方攝像頭管轄的子區(qū)域之二(實際人數(shù) 8,算法統(tǒng)計人數(shù) 8)
圖7 測試樣例圖2中左前方攝像頭管轄的子區(qū)域之一(實際人數(shù) 5,算法統(tǒng)計人數(shù) 5)
圖8 測試樣例圖2中左前方攝像頭管轄的子區(qū)域之二(實際人數(shù) 5, 算法統(tǒng)計人數(shù) 5)
表1 測試樣例圖片1中子區(qū)域原胞數(shù)據(jù)表
表2 測試樣例圖片2中子區(qū)域原胞數(shù)據(jù)表
圖9 實際人數(shù)12,算法統(tǒng)計結果12
圖10 實際人數(shù)40,算法統(tǒng)計結果40
圖9和圖10未劃分子區(qū)域,而是將整個教室作為一個大的子區(qū)域,但是算法仍然給出了全局統(tǒng)計的準確結果,之所以能達到這樣的準確度,同這兩幅圖片中攝像頭角度較好,重疊和遮擋現(xiàn)象較少是分不開的。
本文首先引進了子區(qū)域和原胞劃分的思想,其對于視頻人數(shù)統(tǒng)計實際應用中容易出現(xiàn)的目標重疊遮擋,以及人頭大小隨攝像頭距離而變等問題具有很好的預防作用,且可以獲得除總人數(shù)外各個分區(qū)的人數(shù)信息。
其次介紹了視頻人數(shù)統(tǒng)計的特征篩選法,所述特征包括人頭的顏色,面積以及同最小包圍矩形的面積比。然后歸納了特征篩選方法可能出現(xiàn)的人頭重疊等誤計數(shù)情形,針對這些誤計數(shù)情形,設計了輪廓檢測法,該方法受環(huán)境光照變化和攝像頭距離角度參數(shù)影響較小,同特征篩選法結合可彼此聯(lián)合糾正雙方的誤計數(shù)情形。所述算法經(jīng)實際檢驗很好地滿足了準確性和實時性的要求,不失為一種低成本、易實施的視頻人數(shù)統(tǒng)計方法。
[1]Xu L Q.Segmentation and tracking of multiple moving objects for intelligent video analysis[J].BT Technology Journal.2004.22(3):140~149.
[2]Conde C,Moctezuma D,Martin D D.Gabor and Ho G-based human detection for surveillance in non-controlled environment [J].Neuro Computing.2013(100):19~30.
[3]Paisitkriankrai S,Shen C,Zhang J.Fast pedestrian detection using a cascade of boosted covariance features[J].Circuits and Systems for Video Technology.IEEE Transactions on.2008.18(8):1140~1151.
[4]Kilambl P, Bibnick E, Joshi A J. Estimating pedestrian count in groups[J].ComputerVision and Image Understanding. 2008.110(1):43~59.
[5]Antonini G,Thiran J P.Counting pedestrians in video sequences using trajectory clustering[J].Circuits and Systems for Video Technology. 2006.16(8):1008~1020.
[6]Gavrila D M,Davis L S.3-D model-based tracking of humans in action:A multi-viewapproac[C]Computer Vision and Pattern Recognition. 1996.Proceedings CVPR'96.1996 IEEE Computer Society Conference on.IEEE.1996:73~80.
[7]利用輪廓特征進行人頭識別的方法 [J].計算機工程與應用.2010.49 (29):164~166.
[8]Practical Image and Video Processing Using MATLAB.Oge Marques. 2013.John Wiley&Son.
責任編輯:許耀元
來稿日期:2016-08-31