王均成 ,賀超 ,趙志源 ,鄒建紋
(1.重慶郵電大學 通信與信息工程學院,重慶 400065;2.先進網(wǎng)絡與智能互聯(lián)技術重慶市高校重點實驗室,重慶 400065;3.泛在感知與互聯(lián)重慶市重點實驗室,重慶 400065)
近年來,目標檢測算法已經(jīng)廣泛應用于各個視頻監(jiān)控場景,包括車輛檢測[1]、行人檢測[2]、農(nóng)業(yè)檢測[3]、人類異常行為檢測[4]等,越來越復雜的目標檢測網(wǎng)絡展示了最先進的目標檢測性能。但在實際應用中,往往需要在視頻監(jiān)控中一些計算能力及內(nèi)存有限的設備上進行實時目標檢測。例如,嵌入式平臺視頻監(jiān)控,其可用計算資源一般僅限于低功耗嵌入式圖形處理單元(Graphic Processing Unit,GPU)。這極大地限制了此類網(wǎng)絡在相關領域的廣泛應用,使得在資源受限設備上實現(xiàn)實時目標檢測非常具有挑戰(zhàn)。
為了實現(xiàn)資源有限設備上目標檢測這一挑戰(zhàn),人們對研究和設計低復雜度的高效神經(jīng)網(wǎng)絡體系架構越來越感興趣。而著名的YOLO[5](You Only Look Once,YOLO)則是圍繞效率設計的一階段目標檢測算法,它可以在高端圖形處理器上實現(xiàn)視頻監(jiān)控目標高效檢測。然而對于許多資源受限監(jiān)控設備來說,這些網(wǎng)絡架構參數(shù)量大且計算復雜度較高,使得在嵌入式等監(jiān)控設備上運行時推理速度大幅下降。YOLOv3[6]是YOLO 系列應用在各領域最普遍的算法,YOLOv3-tiny 則是在該算法的基礎上簡化的,雖然精度顯著下降但具有了更少計算成本,這大大增加了在資源受限監(jiān)控設備上部署目標檢測算法的可行性。
本文提出了一種基于YOLOv3-tiny 的目標檢測算法YOLOv3-SF,將改進的ShuffleNetV2[7]網(wǎng)絡與YOLOv3-tiny架構進行結合,并加入設計的注意力機制模塊使神經(jīng)網(wǎng)絡能學習到更豐富的空間位置信息。實驗表明,該方法能夠有效優(yōu)化模型的資源占用與檢測精度,更適合資源有限的視頻監(jiān)控設備部署。
YOLOv3 架構是目標檢測領域中最優(yōu)的算法之一。該架構通過調(diào)整骨干網(wǎng)結構、多尺度預測等改進方法在保持原系列優(yōu)勢的同時,提高了識別準確率。但是,該架構檢測精度提升的同時也導致了相應計算復雜度的提高,而YOLOv3-tiny 則是其較為輕量級的精簡版本。顯然,對于時效性及存儲要求高的監(jiān)控設備,輕量級架構才是首要的目標檢測算法選擇。
本文所使用的YOLOv3-tiny 網(wǎng)絡架構如圖1 所示。骨干網(wǎng)絡作為目標檢測任務的特征提取器,以圖像作為輸入,輸出對應輸入圖像的多個不同尺度特征映射,隨后通過對不同特征進行處理來獲取多個預測結果,使模型更好地檢測不同大小的目標物體,以此來取得更高的識別準確率。
圖1 YOLOv3-tiny 網(wǎng)絡架構
YOLOv3-tiny 網(wǎng)絡架構參考特征金字塔網(wǎng)絡的思想,將低級特征與高級特征拼接融合,并從不同尺度提取特征。與YOLOv3 不同,該網(wǎng)絡架構只保留了兩種不同尺度的網(wǎng)絡輸出,目的同樣是預測不同尺度的對象。預測分支不僅在骨干網(wǎng)絡末端輸出特征上獨立預測,還通過將該特征圖上采樣到與前期特征圖相同大小,然后與大特征圖通道堆疊做進一步預測。每個預測框的坐標為tx、ty、th、tw,若預測框中心點相對于特征網(wǎng)格左上角坐標相對偏移量(cx,cy),先驗框長寬為pw及ph,則預測框的位置有以下表示:
對于深度卷積神經(jīng)網(wǎng)絡,高級特征包含低空間分辨率的分類信息,低級特征包含高空間分辨率的位置信息。而為了獲得更準確的位置信息,許多工作將低級特征與高級特征相結合。然而這些工作一般都是直接將其相加或者拼接在一起,而不考慮通道之間的差異。受SENet[8]的啟發(fā),本文認為卷積特征通道之間的相互依賴性很重要。因此,針對圖1 中特征融合預測分支部分,本文參考SENet 中利用注意力機制來學習通道間的關聯(lián)性,提出了將低級特征和高級特征結合的全連接注意力混合模塊(Fully-connected Attention Mix Module,F(xiàn)CAMM),如圖2 所示。
圖2 YOLOv3-SF 網(wǎng)絡架構
通過向預測分支中添加全連接注意力混合模塊可以更自適應地融合多層次特征,得到具有更高識別能力的特征。具體來說,F(xiàn)CAMM 先將低級特征和高級特征拼接在一起后使用3×3 卷積層來進行通道縮減;然后利用兩個全連接層學習不同通道間的非靜態(tài)、非線性相互內(nèi)在聯(lián)系,通道間乘法為通道重新加權生成調(diào)制權重;最后,向全連接層輸出添加低級特征來執(zhí)行特征融合。
與文獻[8]中標準的SE 注意力模塊相比,全連接注意力混合模塊則僅保留兩個全連接層來學習不同通道特征重要程度,在擁有相似性能的同時進一步降低運算量,能更好利用有限模型容量。另外,注意力模塊輸出的高級特征再次與骨干網(wǎng)絡階段的低級特征混合,形成類殘差結構,能更好地保護特征信息完整性。簡而言之,本文所提出的全連接注意力混合模塊在計算成本和特征表達之間實現(xiàn)了更有力的平衡。
從YOLOv1[5]到YOLOv3,每一代性能的提升都與骨干網(wǎng)絡的改進密切相關。本文所采用的骨干網(wǎng)絡基于ShuffleNetV2 網(wǎng)絡模型,是由曠視在2018 年提出的輕量級卷積神經(jīng)網(wǎng)絡。本文將改進后的ShuffleNetV2 網(wǎng)絡作為骨干網(wǎng)絡與YOLOV3-tiny 架構進行結合,來用于視頻監(jiān)控系統(tǒng)資源受限設備上的目標檢測任務。
ShuffleNetV2 網(wǎng)絡模型根據(jù)衡量模型復雜度的指標,并聯(lián)系理論與實際得到了相關適用的改進策略:(1)使用1×1 卷積核均衡輸入輸出通道大??;(2)減少組卷積使用;(3)減少網(wǎng)絡分支;(4)減少元素級運算。
根據(jù)這些策略,引入了圖3 所示單元進行網(wǎng)絡的構建,其中的S1 即表示步幅為1。即,在開始時先將特征映射在通道維度分離為兩個分支,一分支做同等映射,另一分支使用1×1 卷積來使輸入輸出通道相同,滿足策略(1);而且其中的兩個1×1 卷積不再是組卷積,滿足策略(2);只有兩個分支的輸出進行拼接及通道混合,符合策略(3);同時通道混合可以和下一個通道分離合并成一個元素級運算,符合策略(4)。
圖3 ShuffleNetUnit 結構
ShuffleNetV2 的結構主要是由圖3 中的單元堆疊而成的3 個不同的階段組成,實現(xiàn)了高效卷積。ShuffleNetV2同樣可以設定每個模塊的通道數(shù),如1.5×、1×,進而調(diào)整網(wǎng)絡的復雜程度。
本文所使用的骨干網(wǎng)絡ShuffleNetV2-S 是ShuffleNetV2的改進版。ShuffleNetV2 在網(wǎng)絡的前期結構開始時就利用步幅為2 的卷積及最大池化層來縮小特征圖的大小,雖然有效降低了計算成本,但早階段的低級特征對視覺任務非常重要,過早減小特征圖的大小會損害特征表征力,不利于目標檢測。受到密集連接[9]和并行結構[10]的啟發(fā),重新設計了早期結構StemBlock,如圖4 所示。在原有結構的基礎上,添加分支以用于加強后期結構前的低級特征傳播,鼓勵特征重用,然后與原結構使用Add操作連接來滿足后續(xù)階段的輸入要求。
圖4 StemBlock 結構
其中,相較于文獻[9]網(wǎng)絡中的每個層都會與前面所有層在通道維度上連接,本文所設計的StemBlock 中的每個層則僅與前面的兩層跳連。這樣的設計不僅同樣加強了特征傳播,而且在一定程度上保證了計算量。然后,并行連接原有結構來保證原網(wǎng)絡完整性,并與特征復用分支進行元素級相加實現(xiàn)特征融合。本文所改進的骨干網(wǎng)絡與ShuffleNetV2 網(wǎng)絡相比,不僅獲得了更豐富的低級特征信息,而且維持了網(wǎng)絡計算復雜度。
本實驗所使用的計算機配置為:Intel-Xeon E5-2678 v3 的CPU,GTX1060 的GPU,Windows 10 操作系統(tǒng),程序在PyTorch 框架下運行。
本實驗使用來自PASCAL 可視化對象分類挑戰(zhàn)2007的數(shù)據(jù)集,該數(shù)據(jù)集中有20 個分類,圖片大小不一,共包含9 963 張用于訓練和驗證的圖像,其中訓練集圖片5 011 張,測試集圖片4 952 張。在本實驗中,所有圖片被轉(zhuǎn)換成416×416 大小作為網(wǎng)絡輸入。
本文中神經(jīng)網(wǎng)絡的主要超參數(shù)設置如表1 所示。本文主要使用每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)、均值平均精度(mean Average Precision,mAP)、參數(shù)量(parameters,Param)以及模型大小4 個評價指標評判所提出YOLOv3-SF 算法的檢測效果。
表1 超參數(shù)設置
為了將目標檢測運用在資源有限的視頻監(jiān)控設備上,本文所提出的方法是基于YOLOv3-tiny 模型架構,因此本文中的網(wǎng)絡模型實驗結果主要與YOLOv3-tiny進行了比較。而為了體現(xiàn)YOLOv3-SF 的改進提升效果,同樣加入了與1.5×、1×不同復雜度的ShuffleNetV2 的性能對比,如表2 所示。
表2 不同網(wǎng)絡模型的性能對比
本文所提算法與YOLOv3-tiny 相比參數(shù)量降低39.8%的同時,mAP 提高了2.7%,模型體積降低39.2%,而且FPS 基本不變;與對應復雜度的ShuffleNetV2 直接作為骨干網(wǎng)相比,mAP 則有效提升了5.5%。
本文主要采用改進的復雜度為1.5 的ShuffleNetV2作為特征提取網(wǎng)絡,以下對比實驗均基于ShuffleNetV2-1.5×網(wǎng)絡。圖5 中展示了VOC 數(shù)據(jù)集中每個類別目標的具體AP 測試結果。可以看出,本文所改進提出的YOLOv3-SF 算法的檢測能力明顯高于YOLOv3-tiny 及YOLOv3-ShuffleNetV2。實驗結果在共20 個目標類別中僅有瓶子、沙發(fā)兩類的AP 結果略低于YOLOv3-tiny,但全部高于直接將ShuffleNetV2 作為骨干網(wǎng)絡。
圖5 每類別目標的測試AP 值
為了驗證所提改進之處的有效性,本文通過刪除部分網(wǎng)絡結構來研究網(wǎng)絡的性能。通過表3 所示的消融實驗結果可以看出,本文改進后的ShuffleNetV2-S 網(wǎng)絡在保持低模型復雜度的同時,mAP 比原始的骨干網(wǎng)絡提高了3.7%。再結合FCAMM 融合多層次特征后,總體比ShuffleNetV2 提高了5.5%。因此,本文所改進的骨干網(wǎng)絡及提出的全連接注意力混合模塊都能有效提升性能,同時保證了輕量級模型規(guī)模。
表3 消融實驗
本文還測試了在YOLOv3-tiny 架構下不同骨干網(wǎng)絡的性能,測試結果如表4 所示。結果表明,ShuffleNetV2-S骨干網(wǎng)絡不僅更輕量級,而且同時滿足了檢測精度及實時性要求。本文算法中改進后的骨干網(wǎng)絡相較其他卷積神經(jīng)網(wǎng)絡在降低計算復雜性以及提高模型表達性之間實現(xiàn)更有力的平衡。
表4 不同骨干網(wǎng)絡的性能對比
本文針對資源受限視頻監(jiān)控系統(tǒng)中傳統(tǒng)目標檢測算法復雜度高、資源占用大的問題,提出了一種基于YOLOv3-tiny 架構和ShuffleNetV2 網(wǎng)絡的輕量級算法。通過對特征傳播方式進行研究,本文對架構中的Shuffle-NetV2 骨干網(wǎng)絡結構進行了重新設計以加強低級特征復用;并提出了一種基于注意力機制的多層次特征融合模塊來豐富目標空間位置信息,最后將該算法在VOC 數(shù)據(jù)集上進行訓練、測試。實驗結果表明,本文設計的目標檢測算法較YOLOv3-tiny 的檢測精度有一定提升,且對于低算力低存儲的監(jiān)控平臺,本文方法具有更強的適用性。本文目標檢測任務是在資源極其有限的監(jiān)控設備上運行,檢測速度也會更有限,因此下一步還可通過稀疏、量化等修剪方法對網(wǎng)絡模型進行優(yōu)化,提高檢測速度。