李俊杰,劉成林,朱 明
(中國科學技術大學 信息科學技術學院,合肥 230027)
隨著社會經濟水平和人們安全意識的提高,視頻監控的使用已經變得越來越普及,如今在商場、校園、街道等公共區域,我們能夠很輕易的發現很多監控探頭.與此同時,近年來人們對社會公共安全的關注度越來越高,每當發生公共場所傷害事件都會在社會上引起廣泛討論.在這種情況下,以監控視頻為載體的異常行人檢測技術就成為了一個熱門且重要的課題.異常行人檢測技術是指通過圖像處理、機器學習等方法在視頻中檢測是否有異常行人的存在并給出其位置,其中異常行人是指與普通行人在外觀上有明顯異常性區別的人,例如低頭躲避攝像頭或用帽子口罩等物品大面積遮擋住面部,如圖1所示.該技術能夠讓管理者更容易的注意到監控視頻中的異常行人,更好的預防和應對各種突發情況,同時節省了人力成本,減輕了管理者的工作負擔.

圖1 監控場景中的異常行人示例
考慮到異常行人的異常特征大都集中在頭面部,本文針對頭面部區域進行討論,提出了一個異常行人快速檢測方法,首先檢測監控視頻中的頭面部區域,然后使用多任務卷積神經網絡提取頭面部區域的特征,最后用單類支持向量機進行異常行人的判別.檢測系統整體架構如圖2所示.

圖2 異常行人檢測系統架構
本文提出的異常行人檢測方法可分為以下兩步:(1)確定行人頭面部區域位置,(2)判斷每個位置對應的行人是否為異常行人.
行人頭面部區域檢測的方法有兩種: (1)通過人臉檢測得到人臉位置,進一步擴充得到頭面部區域,(2)直接進行頭面部區域檢測.
人臉檢測方法很多,最經典的是Viola和Jones提出的基于Haar-like特征和級聯AdaBoost分類器的方法[1],但在實際場景中由于表情、遮擋、光照等因素的影響,很多傳統檢測方法效果并不理想,近年來針對非約束人臉提出了很多新的方法,如基于NPD特征的方法[2]以及基于深度學習的方法[3,4],這些方法都取得了很好的效果.與人臉檢測相比,頭面部區域檢測的研究較少,現有的一些方法如基于FDF特征[5]以及基于HOG特征[6]的方法,在實際場景中效果也往往并不十分理想.
綜合考慮,本文選擇了適用范圍廣、準確率高且檢測速度快的NPD特征方法進行頭面部區域的檢測.通過NPD特征方法獲得人臉位置,進而得到頭面部區域位置.
異常行人判別的研究主要有三個難點: (1) 異常行人樣本非常稀少; (2) 可能出現的異常情況無法窮舉;(3) 應用于實際場景中需要保證算法的實時性.
目前對頭面部區域異常情況的討論主要集中在遮擋問題上,提出了很多面部遮擋檢測方法,例如用膚色比例判斷遮擋[7,8],或通過檢測眼睛、嘴巴來間接判斷遮擋情況[9–11].但是基于膚色比例的方法受光照等環境因素的影響較大,而對眼睛、嘴巴的檢測對圖像的分辨率要求又很高,此外實際場景中的異常情況也無法窮舉,因此這些針對性的方法用于實際場景中的異常行人檢測往往無法取得令人滿意的效果.
考慮到異常行人樣本較少且無法列舉出所有可能情況,傳統的分類模型無法應用于該問題,本文針對性的使用了圖像特征與單分類算法相結合的方法進行異常行人的判別.
常見的圖像特征,如LBP[7],Haar-like[1],HOG[12]都經常用于行人相關的研究,此外近年來隨著深度學習方法的興起,用卷積神經網絡提取圖像特征也成為了一種有效手段[13].
單分類算法是指只用一類樣本訓練分類器,進而該分類器能夠判斷輸入是否屬于該類.本文中使用正常行人的頭面部樣本訓練單分類器,進而實現對異常行人的判別.常見的單分類算法有單類支持向量機[14]、FAST-MCD算法[15]和孤立森林算法[16].
本文設計了一個多任務卷積神經網絡用于行人頭面部區域的特征提取,該網絡初級模型如圖3所示.

圖3 多任務卷積神經網絡初級模型(輸入以120×100為例)
該網絡包括數據輸入部分、三個卷積層模塊、一個全連接層和數據輸出部分.其中全連接層即作為輸入圖像的特征向量表示,用于后續進一步操作.
上述卷積層模塊是由一個卷積層、一個池化層和一個ReLU激活函數層組成,其中前兩個使用了最大值池化,而第三個使用了空間金字塔池化(SPP)[17],通過使用空間金字塔池化層,網絡輸入不再要求大小相同,不需對輸入圖片進行剪切或非等比縮放,可以盡可能的保留圖像特征,提高網絡的特征提取能力.
與普通網絡相比,多任務網絡在全連接層之后連接了多個不同的分類任務,這些分類任務共同使用卷積網絡輸出的特征向量,在訓練過程中聯合更新網絡參數.因此多任務網絡提取出的特征向量對所有輸出屬性都有很好的代表性,具體到頭面部特征提取問題,將是否戴眼鏡、是否戴帽子等多個任務作為網絡輸出,可以讓該網絡提取出的特征向量對整個頭面部各部分細節都能進行很好的描述.此外,在網絡訓練過程中,每一個頭面部樣本都對應多個標簽,如戴眼鏡、不戴帽子等,這種多標簽樣本也更適合多任務網絡.因此,多任務卷積神經網絡是最合適有效的頭面部特征提取模型.
為了保證算法的實時性,本文通過拆分卷積核的方法減少卷積網絡的參數和計算次數,加快特征提取速度.
本文參考GoogLeNet[18]和MobileNets[19]對卷積核進行了多個維度上的拆分,示意圖如圖4所示.
圖4中M為輸入特征圖通道數,N為輸出特征圖通道數,拆分前共有N個維度為k×k×M的卷積核,將其拆分成兩個深度卷積和一個點卷積.深度卷積將卷積核分別應用到單個輸入通道,點卷積對不同通道進行組合,顯然最終輸出維度不會發生改變.

圖4 卷積核拆分
假定特征圖尺寸在卷積前后不變,始終為n×n,因為每次卷積操作特征圖尺寸減小量為k–1,遠遠小于特征圖大小,且在實際工程中可以通過像素填充方法實現,故該假定不影響對計算代價的討論.
卷積核拆分后各層的計算代價依次為n×n×M×1×k×1、n×n×M×k×1×1 和n×n×N×1×1×M,與拆分前相比得:

相比結果小于1,拆分操作成功降低了計算代價.以初級網絡模型中k為3,N依次為16、32和64為例,三個卷積層的計算代價分別降低為拆分前的15.3%、13.2%和12.2%.最終得到網絡模型如圖5所示.
該網絡的訓練過程分為兩步:

圖5 改進后的多任務卷積神經網絡模型
1) 使用公開人臉屬性數據集CelebA[20]進行網絡預訓練,選用了其中十二個屬性作為多任務網絡模型的輸出屬性,分別為眼袋、光頭、劉海、黑發、金發、眼鏡、性別、年齡段、嘴巴張開、胡子、帽子和領帶.部分屬性及對應樣本如圖6所示.
2) 在預訓練得到的參數基礎上,用實際監控視頻中的樣本進行微調,多任務網絡的輸出部分改為如下四個分類任務: 是否戴眼鏡、是否戴帽子、是否露出嘴巴和人臉方位(正面、側面和背面),如圖7所示.

圖6 CelebA數據集部分樣本示例

圖7 實際監控視頻部分樣本示例
單分類算法中應用最廣泛的是單類支持向量機.單類支持向量機是基于支持向量機提出的算法,與支持向量機相同,核函數[21]的選擇是影響其性能的關鍵.
目前常用的核函數有高斯核函數、Sigmoid核函數、多項式核函數、線性核函數和三角核函數[22]等.本文實驗部分將對不同單分類算法以及不同核函數的性能進行詳細的比較.
本文系統實現部分使用了深度學習框架Caffe[23]和基于Python的機器學習工具sklearn[24].
首先,我們在CelebA人臉屬性數據集上進行網絡預訓練,該數據集包含202 599張人臉圖片,并為每張圖片提供了多達40種屬性的標注.在進行了一定程度的等比例縮放后,隨機選取2萬張作為測試集,其他作為訓練集.之后,我們在實際監控場景的頭面部樣本集上進行參數微調,共使用了1萬張圖片,人工對分類屬性進行標注后,隨機選取其中2千張作為測試集,其他作為訓練集.
我們分別訓練了卷積核拆分前后的網絡模型,計算了所有分類任務的平均準確率和處理100張圖片所需的平均耗時,結果如表1所示.

表1 卷積核拆分前后效果對比
實驗結果表明,本文設計的網絡結構在多分類問題上有較高的準確率,提出的卷積核拆分方法也明顯的降低了計算代價,減少了網絡分類耗時.此外我們發現隨著進行微調時分類任務數的減少,耗時也會相應減少,因此用該網絡提取特征時只計算到全連接層會進一步降低耗時.
我們在實際監控場景的樣本集上評估了不同圖像特征與不同單分類器的組合效果.我們使用了1萬張正常行人頭面部樣本進行訓練,各2千張正常樣本和異常樣本進行測試.準確率對比如表2所示.

表2 不同組合準確率對比(%)
可以看出,本文提出的多任務卷積神經網絡特征提取模型與單類支持向量機的組合準確率明顯高于其他方法.
在此基礎上,我們評估了不同核函數的分類速度(Frames Per Second,FPS)和召回率,這兩者很大程度上影響著系統的實用性.其中,召回率是指單分類器正確判別為異常行人的樣本在總異常行人樣本中的比例,在異常檢測問題中是一個十分重要的性能指標.結果如表3所示.

表3 不同核函數相應分類速度和召回率
表3中,線性核的分類速度和召回率都明顯好于其他核函數,并且準確率只略低于高斯核和三角核.因此,我們選擇基于線性核的單類支持向量機作為異常行人檢測系統的單分類器.
如前文所述,本文設計的異常行人檢測系統的實現主要依賴于人臉檢測、多任務卷積神經網絡特征提取模型和單類支持向量機三個算法.
我們評估了三個典型的人臉檢測算法在本系統中的效果.在分辨率為960×540的監控視頻中測試,相應檢測速度(FPS)和異常行人召回率如表4所示.

表4 異常行人檢測系統性能
綜合考慮檢測速度和召回率,我們選擇了基于NPD特征的人臉檢測算法來實現頭面部區域的檢測.最終異常行人檢測效果如圖8所示.

圖8 異常行人檢測示例
本文設計了一個用于快速提取頭面部特征的多任務卷積神經網絡,并結合NPD人臉檢測算法和基于線性核的單類支持向量機,實現了監控視頻場景中異常行人的快速檢測,取得了令人滿意的效果.
下一步的研究工作將致力于設計召回率高且檢測速度快的頭面部檢測算法,以使得整個異常行人檢測系統更加的快速且有效.