朱金銘 邰陽 鄒劉磊 范洪輝 朱洪錦
摘 ? ?要:基于YOLOv3和YOLOv3-Tiny網(wǎng)絡試驗了人臉數(shù)據(jù)集WiderFace和CelebA的人臉檢測。并針對檢測結果進行分析,認為神經(jīng)網(wǎng)絡權重中具備大量的參數(shù)冗余,將深度可分離卷積與通道裁剪方法應用于深度神經(jīng)網(wǎng)絡的模型壓縮,并結合模型量化方法,最終實現(xiàn)輕量級的人臉檢測模型。試驗結果表明,改進后的模型滿足移動端部署的實時性要求,并表現(xiàn)出良好的檢測效果。
關鍵詞:YOLOv3;深度可分離卷積;通道裁剪;模型壓縮
中圖分類號:TP391.41 ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? 文章編號:2095-7394(2020)02-0030-09
YOLO系列算法是One-Stage目標檢測算法的主要代表算法之一,YOLOv1[1]提出以網(wǎng)格劃分作為檢測器的分配方式,YOLOv2[2]在網(wǎng)格約束的基礎上提出了先驗框約束,通過為每個網(wǎng)格單元預先設置幾個不同尺度的檢測器,使檢測器專注于某種物體的形狀而負責檢測與先驗框形狀近似的物體。
YOLOv3[3]算法的處理流程如圖1所示,在YOLOv2的基礎上,借鑒特征金字塔網(wǎng)絡[4]的思想,設計了三個不同尺度的檢測層,采用多維度特征輸出方式,并為每個檢測層分配3個先驗框。YOLOv3通過邊框回歸預測的方式預測物體位置,解決了先驗框機制線性回歸的不穩(wěn)定性問題,同時,吸收了ResNet中的殘差結構并加以改進,設計了DarkNet-53結構作為神經(jīng)網(wǎng)絡的主干部分。針對416×416的圖像,算法分別對特征映射尺度為52×52、26×26、13×13的三個尺度,共計10 647個不同位置、不同大小的目標進行預測,從而達到對各類尺度的目標均有較好的魯棒性。
1 訓練數(shù)據(jù)集
采用WiderFace數(shù)據(jù)集和CelebA數(shù)據(jù)集作為人臉目標檢測的訓練樣本。WiderFace數(shù)據(jù)集的數(shù)據(jù)更貼近自然狀況下的人臉數(shù)據(jù)分布情況,含有大量的遮擋、側臉、小臉,而CelebA數(shù)據(jù)集更接近受限情況下的人臉數(shù)據(jù)分布,以正臉居多,且大多光照穩(wěn)定、噪聲較少。本文選擇在WiderFace數(shù)據(jù)集中收集人臉尺度,并在兩個數(shù)據(jù)集中混合訓練。
1.1 ?尺寸分布
考慮到不計算小臉的檢測方式,在去除WiderFace數(shù)據(jù)集中長寬小于20像素的小臉后,對WiderFace數(shù)據(jù)集人臉數(shù)據(jù)分布情況進行統(tǒng)計。分布情況如圖2所示,其中,橫縱坐標均為原始數(shù)據(jù)的對數(shù)。
1.2 維度聚類
YOLO算法為加快邊框收斂,通過在訓練集上應用k-means聚類方法對數(shù)據(jù)集標注框進行聚類,以使先驗框和臨近的真實標注框具有更大的IoU,考慮到圖像的特殊性,在聚類中使用距離度量公式
[d(box,centroid)=1-(IoU(box,centroid)。]
對WiderFace數(shù)據(jù)集中的人臉尺寸進行聚類,如圖3所示,統(tǒng)計了k-means方法中k從2至15的聚類結果,并通過平均IoU評價聚類結果。
圖4表明k=6和k=9情況下聚類數(shù)據(jù)的詳細結果,k=6情況下的6個先驗框用于YOlOv3-Tiny網(wǎng)絡訓練,k=9情況下的9個先驗框用于YOLOv3網(wǎng)絡訓練。其中:k=6下得到的6個先驗框尺度分為[22,27], [29,36], [39,50], [58,75], [99,132], [228,304]; k=9情況下得到的9個先驗框尺度分為[21,25],[23,31], [27,32],[31,40],[40,50], [53,67],[74,98],[120,160],[260,344]。
2 YOLOv3訓練與性能測試
2.1 ?數(shù)據(jù)集與隨機增強
以聚類得到的人臉尺度作為YOLOv3算法的檢測層先驗框。為增強網(wǎng)絡的魯棒性,對訓練數(shù)據(jù)實施了大量的數(shù)據(jù)增強,具體方式如表1所示。
2.2 ?模型訓練
分別訓練YOLOv3和YOLOv3-Tiny兩套網(wǎng)絡,其中:YOLOv3采取在WiderFace數(shù)據(jù)集上以固定416尺度訓練225個epoch之后,再使用CelebA數(shù)據(jù)集隨機多尺度微調(diào)5個epoch;YOLOv3-tiny采取在WiderFace數(shù)據(jù)集上以320~608隨機尺度訓練60個epoch之后,再使用CelebA數(shù)據(jù)集隨機尺度微調(diào)20個epoch。以IoU=0.5作為評測指標,最終兩個網(wǎng)絡在CelebA測試集上獲得Precision、Recall均超過99%的好成績。表2給出在WiderFace測試集上的結果。其中,F(xiàn)P32表示網(wǎng)絡參數(shù)為32位浮點型。表2給出YOLOv3和YOLOv3-Tiny模型在32位浮點型下的性能,精度數(shù)據(jù)均是在WiderFace數(shù)據(jù)集下的測試數(shù)據(jù)。然而,即使是目前表現(xiàn)最差的YOLOv3-Tiny-416模型,在CelebA測試集下IoU=0.5的測試結果仍為mAP 100%,Precision 99%,Recall 100%。部分檢測結果如圖5所示。
考慮到16位浮點型在神經(jīng)網(wǎng)絡推理中的優(yōu)勢,進一步在GeForce RTX 2080Ti下測試網(wǎng)絡在16位浮點型下的性能。
對比表2和表3可知,將模型轉換為16位浮點型對模型精度影響較小,相反,由于硬件對16位浮點型計算支持,反而只需要大致一半的計算時間和顯存占用,因而16位浮點型量化是一種極其實用的神經(jīng)網(wǎng)絡量化方法。
3 ? 模型壓縮
神經(jīng)網(wǎng)絡的模型壓縮方法主要解決在設備資源受限情況下的神經(jīng)網(wǎng)絡應用問題,本文探究了以darknet19為主干的多種神經(jīng)網(wǎng)絡模型壓縮方法,以構建輕量級的神經(jīng)網(wǎng)絡模型。
3.1 ?深度可分離卷積
深度可分離卷積[5]分為深度卷積和點卷積。其中深度卷積利用分組卷積的思想,改善了常規(guī)卷積對輸入特征映射的每個通道都進行卷積操作的方法,其每個濾波器僅對輸入特征映射的特定通道進行卷積。而點卷積指通過卷積核尺寸為[1×1]實現(xiàn)的卷積操作,它既能等效于全連接層,又相比[3×3]卷積有參數(shù)數(shù)量上的優(yōu)勢,因此適用于整合輸入通道,此處用于將分組卷積的輸入整合為常規(guī)卷積。
考慮深度可分離卷積的計算成本,首先對于標準卷積,假定輸入尺度為[DF×DF],輸入通道數(shù)[M],輸出通道數(shù)[N],卷積核大小為[Dk],則計算代價為
[costconv=Dk×Dk×M×N×DF×DF,]
那么對于深度可分離卷積,易知組卷積和點卷積的計算代價分別為
[costgroup=Dk×Dk×M×DF×DF,]
[costpoint=M×N×DF×DF,]
將兩者比較,則有
[costdepthwisecostconv=1N+1Dk2。]
針對卷積神經(jīng)網(wǎng)絡,一般卷積核大小[Dk]選值以[3×3]居多,至多不超過[7×7],而輸出通道數(shù)[N]則以64,128,256,512,1 024居多,可見將一個標準卷積替換為深度可分離卷積后,參數(shù)大約可下降至原來的1/9,顯然有利于參數(shù)減少、模型壓縮。
MobileNet[6]提出了以深度可分離卷積為主干的神經(jīng)網(wǎng)絡,指出深度可分離卷積相比全常規(guī)卷積的網(wǎng)絡架構可以達到以精度下降1%為代價,而將參數(shù)降低85%的效果,同時指出了深度可分離卷積下,深度網(wǎng)絡比寬度網(wǎng)絡更具優(yōu)勢。
MobileNetv2[7]改進了文獻[6]中的深度可分離卷積模塊,指出使用線性激活函數(shù)替代點卷積之后的非線性激活函數(shù),從而更多地保留局部特征。同時,提出逆殘差塊的設計,使用先升維、再降維的卷積塊實現(xiàn)卷積操作。
將改進的深度可分離卷積模塊應用于darknet19網(wǎng)絡,darknet19網(wǎng)絡通過卷積層和最大池化層堆疊而成,考慮到組卷積的性質(zhì),將除第一卷積層外的其他非點卷積層替換為深度可分離卷積層,同時,表2表明darknet19網(wǎng)絡對WiderFace數(shù)據(jù)集擬合能力較差,故本文使用CelebA下的[mAP0.75]指標作為評價標準。記此網(wǎng)絡模型為D-1-0-Tiny,該網(wǎng)絡在訓練集中訓練15epoch后進行測試。
表4及圖6表明將深度可分離卷積引入原網(wǎng)絡模型后,網(wǎng)絡精度略有下降,但仍然可以保持一個客觀的準確度,證明了深度可分離卷積確實可以起到模型壓縮、參數(shù)減少的作用。
3.2 ?通道剪枝
神經(jīng)網(wǎng)絡模型剪枝是指在剔除模型中不重要的參數(shù)對于模型效果沒有太大影響的前提下,再重新微調(diào)模型以恢復模型性能的一種方式。本文僅探究神經(jīng)網(wǎng)絡模型剪枝中的結構性通道剪枝[8-9]方法,即通過減去某一層卷積層的濾波器數(shù)量進而去除該層產(chǎn)生的部分特征圖與下一層的部分卷積核。
通過在神經(jīng)網(wǎng)絡層中引入寬度因子[α]的方式實現(xiàn)通道剪枝調(diào)整模型大小,即使用寬度因子[α]控制輸入和輸出的通道數(shù),使輸入通道數(shù)由[M]轉變?yōu)閇αM],輸出通道數(shù)由[N]轉變[αN],則此時公式的結果即等價于:
[cost(α)=costdepthwisecostconv=αN+α2Dk2。]
同時,引入最低通道參數(shù)[γ],即讓經(jīng)剪枝的卷積層通道數(shù)為[max(γ,αM)]。記模型格式為D-[[α]]-[[γ]]-Tiny-[Size],圖7和表5為訓練過程loss曲線與相關數(shù)據(jù)。
模型性能如表6所示,此處特別說明,以下所有模型mAP0.5指標均在99%以上,不再單獨列出。
3.3 ?模型量化
神經(jīng)網(wǎng)絡權重量化是一種通過減少表示每個權重所需的比特數(shù)來降低存儲空間、提升運算效率的神經(jīng)網(wǎng)絡壓縮方式??紤]到移動端部署的便捷要求,進一步測試16位整型和8位整型量化[10]的應用效果。
受限于前端瀏覽器對于文件大小及堆棧空間大小的限制,本文在原有驗證集19 672張圖片下隨機選取1 000張圖片作為驗證子集驗證性能,表7記錄量化后的模型性能指標,Model列參數(shù)與表3、表4、表6相同,mAP0.75(8)表示原模型8位整型量化后的性能指標,mAP0.75(16)表示原模型16位整型量化后的性能指標,mAP0.75(32)為32位浮點型性能指標,其參數(shù)與表3、表4、表6相同,Size(8/16)表示8位整型與16位整型量化后的模型大小。
對比表6和表7,易推斷神經(jīng)網(wǎng)絡模型經(jīng)8位整型量化后精度產(chǎn)生了一定的浮動,其中416分辨率下的測試結果出現(xiàn)了大幅度跌落,288分辨率下精度出現(xiàn)了小幅下降,352分辨率下精度出現(xiàn)了一定程度的上升。綜合評估下,D-12.5%-32參數(shù)的模型在352分辨率下,分辨率精度未下降,模型大小僅為81 KB,能夠滿足前端瀏覽器的部署需要。
4 ? 結論
筆者認為神經(jīng)網(wǎng)絡具備大量的參數(shù)冗余,故而探究了以深度可分離卷積和通道剪枝為代表的神經(jīng)網(wǎng)絡壓縮方法,并結合模型量化,對YOLOv3進行優(yōu)化。試驗表明深度可分離卷積引入YOLOv3后,能起到模型壓縮、參數(shù)減少的作用,檢測精度雖略有下降,但仍可以保持較高的精準度。使用結構性通道剪枝方法,通過減去某一層卷積層的濾波器數(shù)量進而去除該層產(chǎn)生的部分特征圖與下一層的部分卷積核,以達到壓縮模型的效果。結合模型量化,試驗表明D-12.5%-32參數(shù)的模型在352分辨率下,分辨率精度未下降,其模型大小僅為81 KB。通過將模型壓縮方案引入YOLOv3,有效地減少了運行時的開銷,并保持了較高的檢測精度,從而滿足了前端瀏覽器中的部署要求。
參考文獻:
[1] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
[2] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
[3] REDMON J, FARHADI A. YOLOv3: An incremental improvement[J]. ?arXiv,2018:1804.02767.
[4] LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.
[5] CHOLLET F. Xception: Deep learning with depthwise separable convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017:1251-1258.
[6] HOWARD A G, ZHU M, CHEN B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv,2017:1704.04861.
[7] SANDLER M, HOWARD A, ZHU M, et al. Mobilenetv2: Inverted residuals and linear bottlenecks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4510-4520.
[8] LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient convnets[J]. arXiv,2016:1608.08710 .
[9] HU H, PENG R, TAI Y W, et al. Network trimming: A data-driven neuron pruning approach towards efficient deep architectures[J]. arXiv,2016:1607.03250.
[10] DETTMERS T. 8-bit approximations for parallelism in deep learning[J]. arXiv,2015:1511.04561.
責任編輯 ? ?祁秀春
An YOLOv3 Improvement Method Based on Depth Separable
Convolution and Channel Clipping
ZHU Jinming1,TAI Yang2,ZOU Liulei1,F(xiàn)AN Honghui1,ZHU Hongjin1
(1.School of Computer Engineering,Jiangsu University of Technology,Changzhou 213001,China;2.School of Computer Science,F(xiàn)udan University,Shanghai 200120,China)
Abstract: This paper implements face detection on the YOLOv3 and YOLOv3-Tiny networks based on the face datasets WiderFace and CelebA. Based on the analysis of the detection results,it is considered that the neural network weights have a large number of parameter redundancy. We apply the deep separable convolution and channel clipping method to the model compression of the deep neural network,combined with the model quantization method,and finally achieve lightweight level face detection model. Experimental results show that the improved model meets the real time requirements of mobile terminal deployment and shows good detection effect.
Key ?words: YOLOv3;depth separable convolution;channel clipping;model compression
收稿日期:2019-12-23
基金項目:大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目“基于人臉識別的校園新生迎新系統(tǒng)”(201911463034Y);國家自然科學基金 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 項目“基于改進稀疏表示與多特征融合的道路監(jiān)控視頻中車輛信息感知”(61806088)
作者簡介:朱金銘,本科生,主要研究方向為圖像處理、模式識別。
指導教師:范洪輝,教授,博士,主要研究方向為圖像處理、機器視覺;朱洪錦,副教授,博士,主要研究方向為模式識別、 ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器視覺。