邱博,劉翔,*,石蘊玉,尚巖峰
(1.上海工程技術大學 電子電氣工程學院,上海 201620; 2.公安部第三研究所 物聯(lián)網(wǎng)技術研發(fā)中心,上海 200031)
視頻監(jiān)控系統(tǒng)作為當前城市公共安全的基礎設施,視頻圖像信息已成為支撐治安防控、維護社會穩(wěn)定的重要手段。隨著監(jiān)控系統(tǒng)朝著智能化方向發(fā)展,視頻檢測手段更加成熟、完善,檢測精度逐漸增高。行人與車輛作為公共安全監(jiān)控過程中重要的檢測目標,精準性和實時性變得愈發(fā)重要。然而現(xiàn)實中復雜場景下,尤其在車輛堵塞的地區(qū)、行人匯集地域,行人與車輛檢測的精度、速度受到了極大的影響。合理均衡模型處理速度、檢測精度,成為視頻監(jiān)控系統(tǒng)中亟待解決的問題。
目前,針對目標檢測算法主要有2個研究方向。一是利用傳統(tǒng)的方法提取特征并進行檢測,使用 的 特 征 包 括HOG、SURF[1]、SIFT[2]、Haar[3]等。該類算法都是在候選區(qū)域內(nèi)提取特征,最后使用支持向量機[4]、隨機森林、自適應增強[5]等方法進行檢測與識別。二是利用深度學習進行目標檢測,可以細分為二階段與一階段檢測網(wǎng)絡。二階段模型中,Girshick等基于RCNN[6],利用selective search方法輸入整張圖片生成2 000個候選區(qū)域,隨后將包含目標區(qū)域的圖片送入網(wǎng)絡中訓練,經(jīng)過一系列卷積操作提取特征,最后進行檢測,生成的候選區(qū)域中包含大量重疊部分,導致RCNN模型訓練速度慢,處理效率低下。Girshick提出的Fast-RCNN[7]改進了RCNN先提取候選區(qū)域后訓練的機制,直接對整張圖像進行訓練,模型將候選區(qū)域映射到最后一層特征圖上,該做法使得卷積層輸出的候選區(qū)域經(jīng)過ROI Pooling后得到固定的尺度,該方法減少了大量的重復計算,在訓練速度、檢測速度與訓練空間上都進一步地減少。盡管如此,F(xiàn)ast-RCNN也未能達到實時檢測的性能。Ren等提出的Faster-RCNN[8]中,取代了selective search提取候選區(qū)域的手段,創(chuàng)造性地采用卷積網(wǎng)絡RPN自行產(chǎn)生建議框,并且和目標檢測網(wǎng)絡共享卷積網(wǎng)絡,極大地提升了候選框的質(zhì)量,進一步提升了檢測的精準度。
雖然二階段網(wǎng)絡的檢測精度不斷地提高,但訓練繁瑣、檢測速度不佳等情況時常發(fā)生。YOLO[9]、SSD[10]等 算 法 的 出 現(xiàn) 大 大 縮 短 了 檢 測 時間。YOLO預定義預測區(qū)域,在每個指定區(qū)域內(nèi)中生成若干個不同大小、比例的潛在邊界框,將候選區(qū)邊界框尺度調(diào)整到更接近真實的目標尺度。SSD則設計特征金字塔結構提取不同尺度特征,不同卷積塊負責預測不同大小的物體。模型訓練過程中采用大尺度特征圖檢測小物體,小尺度特征圖檢測大物體的策略。一階段模型使得目標檢測更加具有實時性,但精度卻受到了不小的影響。
Anchor-free是一種新型的無邊框檢測方法。網(wǎng)絡不需要設定預選框來限定實際感受野,通過學習一些關鍵點的特征或者密集區(qū)域特征來實現(xiàn)檢測目的。例如CornerNet[11]學習了真值框的左上與右下2個角點,利用內(nèi)嵌向量分組進行角點匹配。ExtremeNet在熱力圖上對每個目標預測TOP 4個點,并且預測中心點,通過幾何方法進行分組。FoveaBox[12]使用特征金字塔網(wǎng)絡(FPN)作為主干網(wǎng)絡,通過比例壓縮真值的中心區(qū)域,形成中心區(qū)域的正樣本集,對區(qū)域內(nèi)每個像素預測分類與偏移量。CenterNet[13]對真值熱力圖進行高斯核處理,網(wǎng)絡學習高斯核后的真值的中心點坐標,預測偏移量與類別信息,并且在訓練過程中摒棄了非極大值抑制手段,實現(xiàn)了真正意義上的端到端。
本文提出了一種基于CenterNet模型的輕量化行人車輛等多目標實時檢測算法,考慮了復雜場景中目標的大小與目標距離的遠近對模型精度造成的影響。同時對模型進行壓縮、剪枝,在精度與速度方面進行權衡,實現(xiàn)了占用內(nèi)存量低、精準性高、檢測速度快的目的,適用于日常監(jiān)控場景。
CenterNet是一種端到端的無邊框目標檢測算法。Zhou等[13]分 別 使 用ResNet-18[14]、hourglass[15]、dla34作為網(wǎng)絡主干。主干網(wǎng)絡輸出的特征圖傳入檢測模塊,該模塊擁有3個分支,每個分支都由3×3的卷積層與1×1的卷積層相連。模型簡圖如圖1所示。

圖1 CenterNet模型結構Fig.1 CenterNetmodel structure
網(wǎng)絡對輸入圖片進行高斯核處理,提升真值中心位置的響應熱度。隨后將熱力圖進行卷積操作,模型學習不同類別的峰值點坐標(目標的中心點)。每個類別僅有一個局部峰值點,此時局部峰值點作為正樣本,其余為負樣本。主干網(wǎng)絡由若干個卷積層組成,主要功能是提取圖像特征。與其他檢測模型進行32倍下采樣不同,CenterNet只進行4倍下采樣。使用更大分辨率的特征圖作為主干網(wǎng)絡的輸出,能有效降低特征點的損失,避免特征過小導致后續(xù)網(wǎng)絡無法學習有效特征。
大部分檢測網(wǎng)絡學習真值框的位置,Center-Net則學習真值中心點坐標,進一步降低了學習成本。Heatmap分支輸出形狀為(C,H,W),其中C為類別數(shù),H為輸出圖片的高度,W為輸出圖片的高度。類別中最高的響應分數(shù)即為該物體的類別。由于負樣本數(shù)與正樣本比例過大,因此采用Focal-loss函數(shù)平衡正負樣本,計算公式為

式中:Lk為中心點與分類損失函數(shù),下標k為第k張輸入圖像;N為圖片中關鍵點的數(shù)量;下標xyc為圖像中的正負樣本;Yxyc為真值的標簽;為預測標簽;α、β為超參數(shù)。當Yxyc=1時,(1-)α充當了矯正作用。當=1時,表示樣本容易被分辨,此時應該減少loss比重,相應地對難分類的樣本增加權重。當Yxyc接近1時,應該預測為0。此時使用()α增加loss權重,加大訓練。
但由于Yxyc接近1,于是利用(1-)β進行補償。當Yxyc接近0時,則補償與懲罰互相替換,起到雙方制約的作用,弱化了實際中心點周圍的負樣本的比重,進一步處理正負樣本的不平衡。位置損失函數(shù)采用了L1 loss:輸入圖片在主干網(wǎng)絡中進行4倍下采樣后,模型將特征圖重新映射到原圖時會發(fā)生像素偏移從而產(chǎn)生精度誤差。目標中心位置損失函數(shù)為

回歸損失L1:網(wǎng)絡預測出中心點坐標,對每個目標尺度進行回歸得出寬高,與位置損失一樣使用L1 loss,如下:

式中:Lsize為回 歸 損 失 函 數(shù);Sk為 原 圖 尺 度為回歸后的尺度。
3類損失函數(shù)相加,乘以參數(shù),整個訓練過程的目標損失函數(shù)為

式中:λsize、λoff為參數(shù)。
綜上所述,網(wǎng)絡模型對每個真值進行預測,輸出(C+4)維的矢量,分別對應物體的類別、寬高、中心偏差。
模型檢測時采用最大池化思想,對8聯(lián)通區(qū)域的響應點數(shù)值進行比較。如果中心點響應大于其他位置的響應,則判斷該點為峰值點,反之則舍棄。最后設置閾值,選取TOP 100個結果,作為目標的中心點坐標,如圖2所示。另外兩個分支根據(jù)目標中心坐標回歸到邊界框,調(diào)整回歸損失。

圖2 峰值響應可視化Fig.2 Peak response visualization
公安監(jiān)控系統(tǒng)對固定區(qū)域進行實時監(jiān)控和信息記錄,主要在交通要道、公共聚集場所以及治安復雜場所安裝視頻監(jiān)控設備。環(huán)境變化成為影響監(jiān)控系統(tǒng)精度的主要原因。處于十字路口、商業(yè)區(qū)等復雜環(huán)境中,人流車流明顯增多,此時攝像頭不能根據(jù)行人遠近、車輛大小調(diào)整拍攝角度、高度。行人的增加、重疊現(xiàn)象會加大主干網(wǎng)絡特征提取的難度,造成漏檢,同時車輛經(jīng)常會對后方行人形成遮擋,此時模型會過分關注于大型車輛而忽略小目標。ResNet-18對輸入圖片進行8倍下采樣,兩個重疊的行人經(jīng)過下采樣后處于同一個像素點中,難以提取到行人信息。隨著網(wǎng)絡深度加深,模型的表征能力增強,但相應也造成模型計算冗余。ResNet-101層級太多,在公安監(jiān)控系統(tǒng)中不能起到實時檢測的效果。本文提出了一種基于CBNet[16]級聯(lián)差級交互的hourglass模型,主要針對主干網(wǎng)絡(ResNet-18)做出如下修改:首先增加殘差塊與hourglass模塊的錯級級聯(lián)結構。第一個殘差塊輸出的特征與第一個hourglass的輸入特征進行堆疊,第二個殘差塊的輸出的特征與第一個hourglass的輸出特征進行堆疊,以此類推。網(wǎng)絡提取細條狀的目標特征時,通過減少下采樣的倍數(shù)來減少特征丟失,同時加深網(wǎng)絡層數(shù)增強網(wǎng)絡學習困難標簽的能力。如果目標區(qū)域面積占比較大時,網(wǎng)絡提取目標特征時,相應地增加下采樣倍數(shù),降低像素點過多對視覺造成的影響,將模型注意力轉(zhuǎn)移到其他目標。本文提出的主干網(wǎng)絡模型如圖3所示。

圖3 主干網(wǎng)絡簡圖Fig.3 Backbone network illustration
輸入圖片尺度為320×192,經(jīng)過第1個卷積層與最大池化層后,圖片分辨率已經(jīng)縮小4倍。傳統(tǒng)的模型通常進行16倍下采樣。當行人重疊或目標過小時,經(jīng)過下采樣后,重疊行人往往聚集在同一個像素中。即使之后進行反卷積,特征也已被破壞,因此一般模型難以分辨目標重疊情況。為防止此現(xiàn)象的發(fā)生,本文新增了一個并行分支網(wǎng)絡ResNet-18。分支網(wǎng)絡包含4個基本模塊,每個基本模塊都由2個殘差塊組成,殘差塊中不使用下采樣,保證了尺度不變性。圖片經(jīng)過分支網(wǎng)絡后,尺度變成80×48,通道數(shù)增加至256。
主干網(wǎng)絡采用hourglass的漏斗狀結構,對下采樣的特征圖雙線性插值返回到原有尺度。碰到大目標時,該結構能夠“轉(zhuǎn)移”網(wǎng)絡的注意力,防止對大型目標過多“關注”,從而產(chǎn)生過擬合現(xiàn)象。本文提出的主干網(wǎng)絡結構結合了SSD[10]的思想:大尺度的特征圖檢測小的目標,小尺度的特征圖檢測大的目標。但是SSD并沒有使用特征融合,僅僅在每層預設邊界框的個數(shù)。將主干網(wǎng)絡與分支網(wǎng)絡最后輸出的特征進行通道疊加,促使網(wǎng)絡的通道響應更加靈敏。本文利用CBNet結構錯級連接ResNet-18與hourglass。分支之間的前一個殘差塊經(jīng)過下采樣與主干網(wǎng)絡的后一個殘差塊進行差級相連,相連之前保證了兩者輸出尺度一致性,進而進行通道疊加。對不同尺度,不同層級的特征進行復用回傳,以便獲得更強的特征學習能力。傳統(tǒng)的級聯(lián)融合模型類似于FPN網(wǎng)絡進行下采樣后使用反卷積與相同尺度的特征進行融合。這種做法使得參數(shù)量快速增加,推理時間隨之大幅度增加。使用FPN的形式去訓練一個端到端的模型,增加了收斂難度。FPN本身有利于多尺度的特征提取,但是分支網(wǎng)絡需要保證尺度不變,因此主干網(wǎng)絡與分支網(wǎng)絡存在意義相悖。實驗表明,CBNet特征融合結構與原有模型所占內(nèi)存的大小相近,并沒有增加模型的參數(shù)量。在不破壞分支網(wǎng)絡尺度不變性的前提下,融合主干網(wǎng)絡特征與分支網(wǎng)絡提取的特征后進行下采樣。該級聯(lián)方式讓并行網(wǎng)絡進行互補,對各自分支并無損失,提高了在訓練速度與檢測精度。
圖像送入模型進行訓練,4倍下采樣后密集目標尺度進一步縮小。不同類別的質(zhì)心相互重合,熱力圖峰值差異縮小。網(wǎng)絡在所有通道上進行特征提取,按照通道響應的大小來判斷所提取的特征對應的物體種類。后續(xù)卷積層又將這些特征映射到后續(xù)的通道中。因此,主干網(wǎng)絡需要增加通道數(shù)來減少通道響應重合的可能性。通道數(shù)的增加使得分類的準確率、召回率明顯上升,但是導致模型參數(shù)量越來越大。針對該問題本文采取2種減少參數(shù)量方法:深度可分離卷積[17]和模型壓縮。
2.2.1 深度可分離卷積
深度可分離卷積[17]是一種能有效減少參數(shù)的方法,其能將傳統(tǒng)的卷積分解為一個深度卷積(Depthwise Convolution)和一個逐點卷積(Pointwise Convolution),如圖4所示,F(xiàn)和G分別為輸入特征圖和輸出特征圖。

圖4 深度可分離卷積原理Fig.4 Depthwise separable convolution principle
輸入特征圖的尺寸為Df×Df×M,Df和M分別為特征圖的邊長和通道數(shù)量。傳統(tǒng)卷積核尺寸為Dk×Dk,Dk為卷積核的邊長,經(jīng)過N個卷積核,輸出特征圖尺寸為Dt×Dt×N,N為通道數(shù)量。同樣是輸出相同尺度的特征圖,2種卷積的參數(shù)量相差很大。傳統(tǒng)卷積的計算量為Dk×Dk×M×N×Dt×Dt,深度可分離卷積的計算量為

從參數(shù)量看,2個不同卷積的參數(shù)量之間相差一個數(shù)量級。從原理看,傳統(tǒng)卷積直接對通道與區(qū)域同時進行卷積,深度可分離卷積首先對每個通道做區(qū)域卷積,再用的卷積核合并通道卷積。不僅提高了網(wǎng)絡的檢測速度,還實現(xiàn)了通道和區(qū)域的分離。
本文對分支網(wǎng)絡的4個模塊都進行了深度可分離卷積操作,實驗表明模型的推理速度提升了13%,較好地解決了模型因為參數(shù)量大而導致推理緩慢的問題。
2.2.2 模型壓縮
目前深度學習的模型壓縮方法主要分為以下4個方向:設計更加精致的主干網(wǎng)絡、模型剪枝、核的稀疏化及模型量化。
本文考慮現(xiàn)有的4種方法優(yōu)缺點,核的系數(shù)化與模型量化都需要平臺上稀疏矩陣操作庫的支持,對模型的框架、移植的系統(tǒng)都有嚴格的要求。優(yōu)化主干網(wǎng)絡[18]提升模型效果最大,剪枝可以更好地降低模型的復雜度。因此本文選取了較為成熟的2種方法,優(yōu)化主干網(wǎng)絡和模型剪枝。Zhou等[13]使用ResNet-18作為主干網(wǎng)絡,網(wǎng)絡的深度和寬度較大,在訓練過程中易造成參數(shù)冗余,且精度、召回率均不高。由于通道數(shù)量較大,上采樣耗時嚴重,本文裁剪掉最后一層上采樣。為了保證最后的輸出尺度是4倍下采樣,對應刪除前面一層下采樣的基礎塊。所有的ResNet-18支路保留原有尺度參數(shù),而在hourglass支路中,保持下采樣,并且在下采樣過程中成倍增加通道數(shù)量,提高精度與召回率。
模型壓縮方面主要進行了通道壓縮[19]與蒸餾操作。通道剪枝的核心思想是移除一些冗余的通道,同時裁剪與這些通道對應的卷積核,減少模型前向計算所需的FLOPs。本文受到L1稀疏化的啟發(fā),對hourglass 4個卷積模塊的通道增加縮放因子gamma,訓練后得到4個縮放系數(shù)gamma。此時模型的檢測精度、召回率損失最低。ResNet-18分支則增加了空間注意力機制。利用全局均勻池化將上一層輸出的值歸一化作為權重系數(shù),下一層特征圖中的每個位置像素與該位置權重做乘積操作。其次對預訓練的模型進行剪枝,分析每層的稀疏性對精度的影響,第二層卷積層稀疏性對精度影響如圖5所示。當卷積層的稀疏性不斷上升,分類準確性波動。稀疏性為20%時,準確性達到最低;當稀疏性接近25%,精度最高。因此這個卷積層選擇25%的稀疏性。

圖5 稀疏性與精度關系Fig.5 Relationship between sparsity and precision
CenterNet中Heatmap分支利用最大池化機制預測出中心點坐標,再由損失函數(shù)分支預測的寬度、高度計算出邊界框。
實際應用場景中,同一類別目標在空間尺度上的變化很大,針對如何設定閾值適應場景中目標尺度變化的問題,本文進行如下處理:首先,構建掩模矩陣,預測的邊界框超出原圖坐標則設置為0,這樣大大減少了邊界框的個數(shù)。其次,對每個類別設置IOU協(xié)同過濾。根據(jù)W、H計算出邊界框的面積。本文根據(jù)人眼的可見范圍的對每個類別手動設置最小的面積閾值,即感興趣區(qū)域的最小的邊緣范圍面積。當某個目標的面積小于該類別設定的閾值時,則自動忽略目標。劃分檢測區(qū)域過濾大目標,當目標超過圖像原尺度或者預測框的坐標超過預設的檢測區(qū)域?qū)⑦M行過濾。實際系統(tǒng)中經(jīng)常會使用多攝像頭協(xié)同工作,此時可以利用本文策略根據(jù)實際需求對各個攝像頭劃分檢測區(qū)域。當檢測目標的左上角、右下角坐標任意一點越過檢測區(qū)域,及時過濾,確保單個目標能被最清晰地捕捉。最后,在熱力圖分支中對響應分數(shù)做非極大值抑制,加上可視化閾值,減少過小物體顯示。
本實驗以Pytorch為框架,操作系統(tǒng)為W indows7,實驗環(huán)境為4塊Nvida-1080Ti顯卡,batchsize設置為16,初始學習率為5×10-4,訓練500個epochs。本文采用交叉訓練方式,首先訓練殘差支路,增加網(wǎng)絡結構并加載預訓練權重訓練hourglass結構。最后結合CBNet模塊進行訓練,學習率降為9×10-4。
本文從COCO數(shù)據(jù)集中挑選出400張車輛、行人圖片,結合來自廣角監(jiān)控攝像頭的1 600張數(shù)據(jù)構成新的數(shù)據(jù)集。為了保證兩者數(shù)據(jù)同分布,都選擇了白天的街景。使用上下翻轉(zhuǎn),均值漂移等數(shù)據(jù)增強手段,設置80個種子隨機進行數(shù)據(jù)增強,最后獲得12 000張圖片。部分圖片如圖6所示,(a)、(b)來自COCO數(shù)據(jù)集街景圖,(c)、(d)來自監(jiān)控攝像頭街景圖。

圖6 數(shù)據(jù)集部分圖片F(xiàn)ig.6 Partial pictures of dataset
3.2.1 主干網(wǎng)絡對比
本文使用CenterNet模型進行精度測試。嘗試多個版本的主干網(wǎng)絡,并與主流的框架SSD、slim YOLOV3進行實驗對比。結果如表1所示。

表1 主流模型精度對比Table 1 M ainstream m odels'precision com parison
與SSD、slim YOLOV3相比,CenterNet本身并不具備優(yōu)勢。主干網(wǎng)絡經(jīng)過改進后,模型沒有增加參數(shù)量,但是精度、召回率均提高到了90%。實驗表明,CBNet對hourglass與ResNet交互級聯(lián)很好地提升了模型的學習能力。
3.2.2 模型壓縮對比
本文對卷積層通道剪枝,按比例減少通道數(shù)。并且對每個卷積層進行蒸餾,測試稀疏性與準確性的關系。該方法在模型精度沒有大幅下降的前提下有效地壓縮了80%的內(nèi)存,壓縮前后的模型精度變化如表2所示。

表2 模型壓縮前后精度變化Tab le 2 M odel's accuracy before and after com pression
3.2.3 模型推理速度對比
本文對壓縮前后的模型進行性能分析,實驗環(huán)境為單塊Nvida-1080Ti顯卡。實驗結果如表3所示。模型重新設計以后,推理速度提升了50%,證明了主干網(wǎng)絡有助于模型加速。其次將部分模型的卷積模塊替換成深度可分離卷積,模型速度提升了13%。經(jīng)過蒸餾與剪枝后模型推理速度大約為原模型速度的3倍,驗證了本文壓縮、加速方法的有效性。

表3 模型推理速度對比Tab le 3 M odel's in ference speed com parison
3.2.4 協(xié)同過濾可視化結果
由圖7協(xié)同過濾對比可以看出,本文算法很好地排除了小目標的干擾。馬路對面的車輛無需進行檢測便可以排除,并且右側(cè)靠近攝像頭的人與車輛并沒有漏檢與誤檢。

圖7 協(xié)同過濾對比Fig.7 Collaborative filtering comparison
本文提出了一個基于CenterNet模型的輕量化的多目標實時檢測算法,使用了學習能力更強的CBNet差級級聯(lián)融合結構進行特征提取,并對原有模型進行壓縮及蒸餾。
1)模型準確率與召回率均可達到90%,解決了復雜的交通場景下,對于行人車輛密集的區(qū)域檢測精度過低的問題。
2)模型壓縮、蒸餾后,召回率下降2%,準確率下降2%,但內(nèi)存占用量僅為原來的15%,增強了模型的普適性。
3)模型進行重新設計與加速,彌補了原始模型推理過程中速度過慢的缺陷,使得檢測具有實時性,極大地提高了監(jiān)控服務實時作戰(zhàn)能力。