熊壽禹 陶青川 戴亞峰
(四川大學電子信息學院 四川 成都 610065)
社會的快速發展和城市的高度建設,給社會、城市的安全管理帶來了難題。傳統的視頻監控系統將前端視頻信息實時傳送至中心端,呈現在顯示屏上,再通過人工來對視頻進行內容分析、監控警報。由于城市的建設,安防監控區域的不斷擴大、攝像頭的數目日益增長,通過人工進行視頻監管成本急劇升高,導致實時監控報警得到不到保障。因此采用智能分析系統對監控視頻進行實時、有效、穩定的監控具有重大意義[1]。
行人檢測是視頻智能監控的關鍵應用領域之一。由于人體各部分有極高的自由度,做出不同動作時,人體姿態會發生較大變化。其次,由于行人身上所穿衣物款式、顏色以及帽子、挎包等裝飾品的不同,使人體目標的外觀有著極大的差異。針對這些問題,前人做出了不同的嘗試:在特征提取方面,提出了Haar-like特征[2]、梯度直方圖(Histogram of Oriented Gradient,HOG)[3]特征等;在分類器選擇方面,具有代表性的有支持向量機(Support Vector Machine,SVM)[4]、隨機森林(Random Forest,RF)[5]等。但這些方法均存在著泛化能力差、需要手工設計提取特征等缺點,在實際應用中效果較差[6]。
如今,人工智能發展迅速,在機器視覺、語音識別以及自然語言處理等方面獲得了顯著效果。深度學習作為人工智能的重要分支之一,在計算機視覺中的目標檢測方面有著重大突破[7]。深度學習使用卷積神經網絡來對目標進行特征提取,再利用提取的特征信息,對圖像中的目標進行定位與分類[8]。卷積神經網絡模型的準確率與模型堆疊的層數以及每一層網絡的寬度成正比。由于卷積神經網絡復雜度過大,導致卷積神經網絡在前端部署時受到嵌入式設備計算速度、計算能力、內存空間諸多方面的限制。
本文將前端嵌入式與人工智能相結合,將智能分析系統由中心端移至前端“邊緣”設備中,極大減小了中心端對多路視頻信號的計算壓力;使用深度學習方法來對行人進行檢測定位,代替傳統方法所使用的HOG特征提取器加SVM分類器所結合的方法,改善了在行人在較大形變,與背景較為復雜的環境下準確率低、穩定性差的問題;提出一種輕量級目標檢測網絡框架,減少大量的神經網絡參數個數,降低了卷積神經網絡對前端嵌入式設備計算能力、內存空間的需求[9]。
文獻[10]提出了YOLO網絡結構,該網絡結構將物體檢測作為一個回歸問題進行求解,輸入圖像經過一次處理,便能得到圖像中所有對象的位置和其所屬類別及相應的置信度,檢測速度可達到45幀/s,使得實時檢測成為可能。但YOLO的mAP僅有63.4%[10],存在著檢測精度較低以及小目標檢測效果較差的問題。
文獻[11]提出SSD網絡結構,該網絡結合了YOLO的回歸思想以及Faster RCNN的anchor機制。與YOLO算法不同,SSD算法沒有使用完整的特征圖的信息來回歸所有位置信息,而是使用了大量的3×3卷積核計算小區域特征來回歸各個檢測框的坐標信息,提高了定位的準確性。SSD使用了5個大小不同的卷積層來對尺寸不同的物體進行檢測,在不同的特征圖上使用長寬比不同的anchor,以適應特征圖不同的分辨率,最終達到了72.1%的mAP和58幀/s的速度[11]。但是SSD網絡框架的參數個數依舊較多,將其移植進前端嵌入式設備還存在較大差距。
文獻[12]針對移動端和嵌入式深度學習網絡提出一類稱為MobileNets的高效模型。MobileNets模型基于深度可分解的卷積,它可以將標準卷積分解成一個深度卷積和一個點卷積(1×1卷積核),這種分解可以有效減少參數量,降低計算量[12]。SSD結合深度可分解卷積得到Mobile-SSD,該網絡在SSD的基礎上將網絡權值減小了90%,計算速度也大大提升。但在條件較為苛刻的嵌入式前端,該網絡依舊很難達到實時檢測的效果。
對于簡單堆疊的卷積神經網絡,由于網絡的不斷加深,梯度消失問題會越來越嚴重,導致網絡很難收斂甚至無法收斂。針對這一問題文獻[13]提出深度殘差網絡(Deep Residual Network, Resnet),該模型更容易優化,且性能提升明顯[14]。
深度殘差網絡的基本結構由圖1(a)表示,設最優映射為H(x)=x,而殘差網絡的映射關系為H(x)=F(x)+x,殘差網絡將擬合目標由H(x)=x轉化為F(x)=0[7]。為了進一步減少網絡參數以及加快訓練的收斂速度,本文提出一種瓶頸殘差塊的結構塊來代替常規的殘差塊。如圖1(b)所示:先通過1×1的卷積來巧妙地縮減feature map(特征圖)維度從而使得3×3卷積計算量降低,再通過1×1的卷積將維度提升到與輸入一致。

圖1 殘差網絡結構
如圖2所示,SSD算法特征提出采用VGG16框架,并將VGG16的fc6、fc7層使用兩個卷積層來代替。SSD采用了特征金字塔結構進行檢測,即檢測時利用了多個大小不同的特征圖,在多個特征圖上沿用Faster RCNN中的anchor機制,大量使用先驗框來提升識別準確率,后續通過Softmax進行目標分類和先驗框回歸獲得真實目標的位置。

圖2 SSD網絡結構


圖3 SSD候選框選取
正如上述所討論的:傳統HOG+SVM算法準確率較低、穩定性不高;基于深度學習的YOLO算法,準確率較低、計算量過大、權值參數過多,不適用于前端嵌入式設備的移植;SSD目標檢測方法,也存在著計算量過大、權值參數過多的問題;Mobile-SSD雖然將權值進一步的縮減,但對于前端視頻監控設備所能接受的性能指標依舊有著較大差距。因此本文提出一種可移植至前端嵌入式的輕量級網絡,該網絡在較低的準確率變化范圍內,提高16~132倍不等的檢測速度,并降低了93%以上的存儲空間,能更好地結合人工智能與前端嵌入式設備。
本文沿用SSD多尺度檢測以及使用不同形狀候選框來以針對目標長寬比例的不確定性的思想。SSD中預測層數與候選框個數的選取是通過經驗值進行人為選取,針對行人檢測問題,本文提取PASCAL VOC數據集中所有行人樣本共6 095幅圖片,包含13 256個行人樣本,并對行人長寬比例以及行人所占圖片比例進行統計。由圖4可知,行人目標寬長比集中分布在0.2~0.5范圍內,則本文每個預測層aspect_ratio參數設置為0.3、0.4,并取消寬大于長的anchor,最終選取6 920個候選框。具體結構如圖5所示。

圖4 行人長寬比例分布

圖5 本文網絡候選框選取
由圖6可知,行人所占原始圖像比例集中分布在0~0.1范圍內。特征圖的大小決定了每個特征點的感受野范圍,也影響了目標檢測能檢測目標的大小的能力。因此,本文分別將38×38、19×19、10×10、5×5四種不同尺寸特征圖作為目標檢測與識別分支網絡的輸入,計算目標的位置信息與類別信息。

圖6 行人占圖片大小比例分布
SSD與Mobile-SSD目標檢測網絡框架中特征提取框架權值占總共權值比例較大。由于這類目標檢測算法大多用于自然場景下的多目標檢測,故特征提取器中使用的卷積核個數較多。但對于行人檢測單類目標檢測的特征提取,該特征提取器過于冗余復雜。對于特征提取器后半部分,SSD與Mobile-SSD均采用直筒形卷積,即先使用1×1卷積進行降維再使用3×3卷積進行計算,減少了3×3卷積的計算量。本文采用瓶頸殘差網絡代替其特征提取部分,將卷積核通道數進行了相應的裁剪,將直筒形結構替換為殘差結構。通過減小卷積核個數以達到加快計算速度的目的。在原始的瓶頸殘差塊的基礎上,本文在主干網絡中額外添加一層3×3的卷積層,如圖7中ResnetBlock2的conv3所示。通過增加卷積層的個數,一定程度上改善了網絡寬度減小帶來的檢測精度下降的問題。本文在ResnetBlock2中conv3層步長設置為2,替換原始網絡中通過池化進行下采樣的效果。將步長設置為2能夠一定程度上減少計算量,但這也帶來了殘差網絡兩路分支的輸出特征圖大小不匹配的問題。為了解決這一問題,本文將殘差網絡分支中加入了池化操作,將輸入特征圖進行下采樣,保證了最終疊加的特征圖大小一致。具體結構設計如圖7所示。

圖7 本文網絡結構
本文網絡通過端到端訓練實現行人檢測,不僅需要預測行人的位置信息,還需要預測候選框中行人的置信度。模型的損失函數分為置信度損失Loss(conf)與定位損失Loss(loc)兩部分,損失函數L(x,c,l,g)可表示為:
(1)
式中:N為默認候選框個數,本文網絡為6 920;α為概率損失與位置損失比例因子,本文網絡設置為1。位置損失定義為:
(2)

(3)
(4)

置信度損失可表示為:
(5)
(6)
(7)

在深度神經網絡訓練過程中,一般會在卷積層后添加BN層,BN層將數據歸一化之后,能夠有效地防止梯度消失和梯度爆炸的問題,并且能夠加速網絡的收斂,很好地控制過擬合現象[14]。BN層輸出如下:
(8)
式中:conv為卷積層輸出;mean為均值;var為方差;γ為縮放因子;β為偏移。mean、var、y、β均為訓練參數,在前向推理時為常數。
但BN操作在進行前向推理時,會帶來額外的計算量,對前向傳播速度有一定的影響。本文網絡中采用了大量的BN操作,在進行前向推理前,將BN層與卷積層進行合并,使得前向推理時不需要再進行BN層的計算,提高了前向推理的速度。卷積層輸出如式(9),x為輸入特征圖,w為權值,b為偏移量。將式(8)代入式(9)中得到式(10),由式(10)與式(8)對比可得合并BN層之后的卷積權值wnew與偏移bnew為:
conv=x×w+b
(9)
(10)
(11)
本實驗所使用的平臺包括本地計算機以及實際應用的前端嵌入式開發板,其基本配置如下:
本地計算機:處理器為英特爾酷睿 I5-7400;CPU頻率為 3.0 GHz;內存8 GB;GPU為 NVIDIA GeForce GTX1080 Ti,顯存11 GB;操作系統為ubuntu16.04。
嵌入式開發板:主板AIO-3399J;芯片RK3399;處理器為ARM Cortex-A72(雙核)及Cortex-A53(四核)主頻2.0 GHz,內存2 GB;操作系統為ubuntu16.04。
本文使用誤檢率(Miss Rate,MR)與平均漏檢率(False Positive Per Image,FPPI)作為評判指標,來對行人檢測網絡框架的有效性進行對比驗證。MR、FPPI越低,表明網絡框架性能更優,漏檢率和平均誤檢率計算方法分別如下:
式中:FN(False Negative) 表示實際為行人,被判定非行人的個數;TP(True Positive) 表示實際為行人,被判定行人的個數;FP(False Positive) 表示實際非行人,被判定行人的個數;Ntest_data表示測試集圖片張數。
PASCAL VOC數據集作為知名目標數據集[16],共有33 043幅圖片,其中包括20種目標。本文從中挑選出所有包含行人的樣本圖片共8 102幅,并對圖片中目標進行標注。INRIA行人數據集是目前被應用最多的公開數據集[3],其場景種類多樣;TUD行人數據庫包含手持攝像機與車載攝像機拍攝行人,具有很好的場景特征;ETH行人數據庫作為基于雙目視覺的行人數據庫[17],能夠有效地代表以行人角度的視角。本文使用樣本數較多的VOC數據集進行特征提取網絡的預訓練,將預訓練得到的權值進行遷移學習。由于公開的行人數據集對于行人遮擋以及非站立姿勢的目標均未進行標注,本文重新對行人樣本進行標注。如圖8所示,左邊為原有的數據集標注結果,右邊是本文將小目標、遮擋目標、非站立目標添加后進行標注的結果。在此基礎上,使用不同的行人檢測樣本集進行再次的訓練,并與其他行人檢測算法進行準確率的對比。本文將算法移植至瑞芯微公司旗下的RK3399核心開發板中進行速度測試,對算法在嵌入式開發板中的實際應用效果進行對比分析。

圖8 原始樣本與重新標注后樣本
訓練的實驗參數設置如下:批大小設置為64,最大迭代步數設置為150 000。識別部分的學習率為0.01,權重衰減設置為0.001。采用開源深度學習框架caffe作為網絡的訓練平臺。如圖9所示,網絡經過20 000次迭代,損失趨于穩定,根據驗證集選取第29 800次迭代作為最終權重模型。

圖9 網絡訓練損失圖
為了驗證本文網絡的準確率與實時性,本文在INRIA、TUD、ETH三種公開行人檢測數據集上,分別從MR、FPPI、參數量、計算量、計算速度5種評判標準對比了HOG+SVM 、YOLO、SSD、Mobile-SSD以及本文網絡的優劣性。具體實驗結果如表1-表2所示。

表1 行人算法檢測速度對比

表2 行人算法檢測率對比(%)
本文將算法統一移植至AIO-3399J嵌入式開發平臺進行檢測速度測試。由表1可看出:本文相較于YOLO、SSD、Mobile-SSD參數分別減少了99.4%、98.6%、93.8%;在嵌入式開發平臺上,本文所搭建的網絡框架的檢測速度達到每幅圖片67 ms;將網絡中的BN層進行合并后,速度進一步提升,達到62 ms/幅。相較于以往基于神經網絡的行人檢測算法,速度提升了16~132倍不等。由表1可以看出:由于本文在訓練樣本中添加了大量的小目標與遮擋目標,導致HOG+SVM算法MR、FPPI較高,也證明HOG+SVM算法在實際應用中存在著魯棒性差、不可靠等問題;由于YOLO對于小目標檢測的效果不佳,使得該算法的MR也略高于其他算法;本文網絡繼承SSD中使用多尺度特征圖做目標檢測的思想,對于多尺度行人的檢測明顯優于YOLO與HOG+SVM;本文網絡MR、FPPI略高于SSD、Mobile-SSD。由于本文主要工作是基于嵌入式平臺進行算法開發,考慮到嵌入式平臺與算法相結合,本文算法具有更大的優勢,能夠在準確率下降不明顯的情況下,提升算法的計算速度,大大降低了對嵌入式開發板內存空間,計算能力的要求。
行人檢測在前端智能設備監控中有巨大的應用價值,本文提出一種能夠部署于嵌入式設備中的輕量級神經網絡行人檢測方法。本文通過聚類分析得到行人目標長寬比例,以此重新設計候選框尺寸比例,加強了對行人定位的效果,也一定程度上減少了神經網絡的參數與計算量;另外,本文提出一種輕量級神經網絡框架,該框架參數量小、計算量小,使基于深度學的目標檢測算法在嵌入式設備計算速度大大提升。實驗結果表明:通過在不同的樣本集中測試,本文算法MR、FPPI指標均低于HOG+SVM與YOLO算法,略高于SSD與Mobile-SSD算法,但單幅圖片檢測速度有16~132倍不等的提升。綜合考慮,本文算法在基于嵌入式設備行人檢測中有著良好的綜合性能。本文對網絡結構的設計還在初始階段,如何保證在計算量不變或者減少的情況下,進一步提升算法的準確性是下一步工作的研究方向。