朱金銘 邰陽(yáng) 鄒劉磊 范洪輝 朱洪錦
摘 ? ?要:基于YOLOv3和YOLOv3-Tiny網(wǎng)絡(luò)試驗(yàn)了人臉數(shù)據(jù)集WiderFace和CelebA的人臉檢測(cè)。并針對(duì)檢測(cè)結(jié)果進(jìn)行分析,認(rèn)為神經(jīng)網(wǎng)絡(luò)權(quán)重中具備大量的參數(shù)冗余,將深度可分離卷積與通道裁剪方法應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的模型壓縮,并結(jié)合模型量化方法,最終實(shí)現(xiàn)輕量級(jí)的人臉檢測(cè)模型。試驗(yàn)結(jié)果表明,改進(jìn)后的模型滿足移動(dòng)端部署的實(shí)時(shí)性要求,并表現(xiàn)出良好的檢測(cè)效果。
關(guān)鍵詞:YOLOv3;深度可分離卷積;通道裁剪;模型壓縮
中圖分類號(hào):TP391.41 ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? ? ? ? 文章編號(hào):2095-7394(2020)02-0030-09
YOLO系列算法是One-Stage目標(biāo)檢測(cè)算法的主要代表算法之一,YOLOv1[1]提出以網(wǎng)格劃分作為檢測(cè)器的分配方式,YOLOv2[2]在網(wǎng)格約束的基礎(chǔ)上提出了先驗(yàn)框約束,通過為每個(gè)網(wǎng)格單元預(yù)先設(shè)置幾個(gè)不同尺度的檢測(cè)器,使檢測(cè)器專注于某種物體的形狀而負(fù)責(zé)檢測(cè)與先驗(yàn)框形狀近似的物體。
YOLOv3[3]算法的處理流程如圖1所示,在YOLOv2的基礎(chǔ)上,借鑒特征金字塔網(wǎng)絡(luò)[4]的思想,設(shè)計(jì)了三個(gè)不同尺度的檢測(cè)層,采用多維度特征輸出方式,并為每個(gè)檢測(cè)層分配3個(gè)先驗(yàn)框。YOLOv3通過邊框回歸預(yù)測(cè)的方式預(yù)測(cè)物體位置,解決了先驗(yàn)框機(jī)制線性回歸的不穩(wěn)定性問題,同時(shí),吸收了ResNet中的殘差結(jié)構(gòu)并加以改進(jìn),設(shè)計(jì)了DarkNet-53結(jié)構(gòu)作為神經(jīng)網(wǎng)絡(luò)的主干部分。針對(duì)416×416的圖像,算法分別對(duì)特征映射尺度為52×52、26×26、13×13的三個(gè)尺度,共計(jì)10 647個(gè)不同位置、不同大小的目標(biāo)進(jìn)行預(yù)測(cè),從而達(dá)到對(duì)各類尺度的目標(biāo)均有較好的魯棒性。
1 訓(xùn)練數(shù)據(jù)集
采用WiderFace數(shù)據(jù)集和CelebA數(shù)據(jù)集作為人臉目標(biāo)檢測(cè)的訓(xùn)練樣本。WiderFace數(shù)據(jù)集的數(shù)據(jù)更貼近自然狀況下的人臉數(shù)據(jù)分布情況,含有大量的遮擋、側(cè)臉、小臉,而CelebA數(shù)據(jù)集更接近受限情況下的人臉數(shù)據(jù)分布,以正臉居多,且大多光照穩(wěn)定、噪聲較少。本文選擇在WiderFace數(shù)據(jù)集中收集人臉尺度,并在兩個(gè)數(shù)據(jù)集中混合訓(xùn)練。
1.1 ?尺寸分布
考慮到不計(jì)算小臉的檢測(cè)方式,在去除WiderFace數(shù)據(jù)集中長(zhǎng)寬小于20像素的小臉后,對(duì)WiderFace數(shù)據(jù)集人臉數(shù)據(jù)分布情況進(jìn)行統(tǒng)計(jì)。分布情況如圖2所示,其中,橫縱坐標(biāo)均為原始數(shù)據(jù)的對(duì)數(shù)。
1.2 維度聚類
YOLO算法為加快邊框收斂,通過在訓(xùn)練集上應(yīng)用k-means聚類方法對(duì)數(shù)據(jù)集標(biāo)注框進(jìn)行聚類,以使先驗(yàn)框和臨近的真實(shí)標(biāo)注框具有更大的IoU,考慮到圖像的特殊性,在聚類中使用距離度量公式
[d(box,centroid)=1-(IoU(box,centroid)。]
對(duì)WiderFace數(shù)據(jù)集中的人臉尺寸進(jìn)行聚類,如圖3所示,統(tǒng)計(jì)了k-means方法中k從2至15的聚類結(jié)果,并通過平均IoU評(píng)價(jià)聚類結(jié)果。
圖4表明k=6和k=9情況下聚類數(shù)據(jù)的詳細(xì)結(jié)果,k=6情況下的6個(gè)先驗(yàn)框用于YOlOv3-Tiny網(wǎng)絡(luò)訓(xùn)練,k=9情況下的9個(gè)先驗(yàn)框用于YOLOv3網(wǎng)絡(luò)訓(xùn)練。其中:k=6下得到的6個(gè)先驗(yàn)框尺度分為[22,27], [29,36], [39,50], [58,75], [99,132], [228,304]; k=9情況下得到的9個(gè)先驗(yàn)框尺度分為[21,25],[23,31], [27,32],[31,40],[40,50], [53,67],[74,98],[120,160],[260,344]。
2 YOLOv3訓(xùn)練與性能測(cè)試
2.1 ?數(shù)據(jù)集與隨機(jī)增強(qiáng)
以聚類得到的人臉尺度作為YOLOv3算法的檢測(cè)層先驗(yàn)框。為增強(qiáng)網(wǎng)絡(luò)的魯棒性,對(duì)訓(xùn)練數(shù)據(jù)實(shí)施了大量的數(shù)據(jù)增強(qiáng),具體方式如表1所示。
2.2 ?模型訓(xùn)練
分別訓(xùn)練YOLOv3和YOLOv3-Tiny兩套網(wǎng)絡(luò),其中:YOLOv3采取在WiderFace數(shù)據(jù)集上以固定416尺度訓(xùn)練225個(gè)epoch之后,再使用CelebA數(shù)據(jù)集隨機(jī)多尺度微調(diào)5個(gè)epoch;YOLOv3-tiny采取在WiderFace數(shù)據(jù)集上以320~608隨機(jī)尺度訓(xùn)練60個(gè)epoch之后,再使用CelebA數(shù)據(jù)集隨機(jī)尺度微調(diào)20個(gè)epoch。以IoU=0.5作為評(píng)測(cè)指標(biāo),最終兩個(gè)網(wǎng)絡(luò)在CelebA測(cè)試集上獲得Precision、Recall均超過99%的好成績(jī)。表2給出在WiderFace測(cè)試集上的結(jié)果。其中,F(xiàn)P32表示網(wǎng)絡(luò)參數(shù)為32位浮點(diǎn)型。表2給出YOLOv3和YOLOv3-Tiny模型在32位浮點(diǎn)型下的性能,精度數(shù)據(jù)均是在WiderFace數(shù)據(jù)集下的測(cè)試數(shù)據(jù)。然而,即使是目前表現(xiàn)最差的YOLOv3-Tiny-416模型,在CelebA測(cè)試集下IoU=0.5的測(cè)試結(jié)果仍為mAP 100%,Precision 99%,Recall 100%。部分檢測(cè)結(jié)果如圖5所示。
考慮到16位浮點(diǎn)型在神經(jīng)網(wǎng)絡(luò)推理中的優(yōu)勢(shì),進(jìn)一步在GeForce RTX 2080Ti下測(cè)試網(wǎng)絡(luò)在16位浮點(diǎn)型下的性能。
對(duì)比表2和表3可知,將模型轉(zhuǎn)換為16位浮點(diǎn)型對(duì)模型精度影響較小,相反,由于硬件對(duì)16位浮點(diǎn)型計(jì)算支持,反而只需要大致一半的計(jì)算時(shí)間和顯存占用,因而16位浮點(diǎn)型量化是一種極其實(shí)用的神經(jīng)網(wǎng)絡(luò)量化方法。
3 ? 模型壓縮
神經(jīng)網(wǎng)絡(luò)的模型壓縮方法主要解決在設(shè)備資源受限情況下的神經(jīng)網(wǎng)絡(luò)應(yīng)用問題,本文探究了以darknet19為主干的多種神經(jīng)網(wǎng)絡(luò)模型壓縮方法,以構(gòu)建輕量級(jí)的神經(jīng)網(wǎng)絡(luò)模型。
3.1 ?深度可分離卷積
深度可分離卷積[5]分為深度卷積和點(diǎn)卷積。其中深度卷積利用分組卷積的思想,改善了常規(guī)卷積對(duì)輸入特征映射的每個(gè)通道都進(jìn)行卷積操作的方法,其每個(gè)濾波器僅對(duì)輸入特征映射的特定通道進(jìn)行卷積。而點(diǎn)卷積指通過卷積核尺寸為[1×1]實(shí)現(xiàn)的卷積操作,它既能等效于全連接層,又相比[3×3]卷積有參數(shù)數(shù)量上的優(yōu)勢(shì),因此適用于整合輸入通道,此處用于將分組卷積的輸入整合為常規(guī)卷積。
考慮深度可分離卷積的計(jì)算成本,首先對(duì)于標(biāo)準(zhǔn)卷積,假定輸入尺度為[DF×DF],輸入通道數(shù)[M],輸出通道數(shù)[N],卷積核大小為[Dk],則計(jì)算代價(jià)為
[costconv=Dk×Dk×M×N×DF×DF,]
那么對(duì)于深度可分離卷積,易知組卷積和點(diǎn)卷積的計(jì)算代價(jià)分別為
[costgroup=Dk×Dk×M×DF×DF,]
[costpoint=M×N×DF×DF,]
將兩者比較,則有
[costdepthwisecostconv=1N+1Dk2。]
針對(duì)卷積神經(jīng)網(wǎng)絡(luò),一般卷積核大小[Dk]選值以[3×3]居多,至多不超過[7×7],而輸出通道數(shù)[N]則以64,128,256,512,1 024居多,可見將一個(gè)標(biāo)準(zhǔn)卷積替換為深度可分離卷積后,參數(shù)大約可下降至原來的1/9,顯然有利于參數(shù)減少、模型壓縮。
MobileNet[6]提出了以深度可分離卷積為主干的神經(jīng)網(wǎng)絡(luò),指出深度可分離卷積相比全常規(guī)卷積的網(wǎng)絡(luò)架構(gòu)可以達(dá)到以精度下降1%為代價(jià),而將參數(shù)降低85%的效果,同時(shí)指出了深度可分離卷積下,深度網(wǎng)絡(luò)比寬度網(wǎng)絡(luò)更具優(yōu)勢(shì)。
MobileNetv2[7]改進(jìn)了文獻(xiàn)[6]中的深度可分離卷積模塊,指出使用線性激活函數(shù)替代點(diǎn)卷積之后的非線性激活函數(shù),從而更多地保留局部特征。同時(shí),提出逆殘差塊的設(shè)計(jì),使用先升維、再降維的卷積塊實(shí)現(xiàn)卷積操作。
將改進(jìn)的深度可分離卷積模塊應(yīng)用于darknet19網(wǎng)絡(luò),darknet19網(wǎng)絡(luò)通過卷積層和最大池化層堆疊而成,考慮到組卷積的性質(zhì),將除第一卷積層外的其他非點(diǎn)卷積層替換為深度可分離卷積層,同時(shí),表2表明darknet19網(wǎng)絡(luò)對(duì)WiderFace數(shù)據(jù)集擬合能力較差,故本文使用CelebA下的[mAP0.75]指標(biāo)作為評(píng)價(jià)標(biāo)準(zhǔn)。記此網(wǎng)絡(luò)模型為D-1-0-Tiny,該網(wǎng)絡(luò)在訓(xùn)練集中訓(xùn)練15epoch后進(jìn)行測(cè)試。
表4及圖6表明將深度可分離卷積引入原網(wǎng)絡(luò)模型后,網(wǎng)絡(luò)精度略有下降,但仍然可以保持一個(gè)客觀的準(zhǔn)確度,證明了深度可分離卷積確實(shí)可以起到模型壓縮、參數(shù)減少的作用。
3.2 ?通道剪枝
神經(jīng)網(wǎng)絡(luò)模型剪枝是指在剔除模型中不重要的參數(shù)對(duì)于模型效果沒有太大影響的前提下,再重新微調(diào)模型以恢復(fù)模型性能的一種方式。本文僅探究神經(jīng)網(wǎng)絡(luò)模型剪枝中的結(jié)構(gòu)性通道剪枝[8-9]方法,即通過減去某一層卷積層的濾波器數(shù)量進(jìn)而去除該層產(chǎn)生的部分特征圖與下一層的部分卷積核。
通過在神經(jīng)網(wǎng)絡(luò)層中引入寬度因子[α]的方式實(shí)現(xiàn)通道剪枝調(diào)整模型大小,即使用寬度因子[α]控制輸入和輸出的通道數(shù),使輸入通道數(shù)由[M]轉(zhuǎn)變?yōu)閇αM],輸出通道數(shù)由[N]轉(zhuǎn)變[αN],則此時(shí)公式的結(jié)果即等價(jià)于:
[cost(α)=costdepthwisecostconv=αN+α2Dk2。]
同時(shí),引入最低通道參數(shù)[γ],即讓經(jīng)剪枝的卷積層通道數(shù)為[max(γ,αM)]。記模型格式為D-[[α]]-[[γ]]-Tiny-[Size],圖7和表5為訓(xùn)練過程loss曲線與相關(guān)數(shù)據(jù)。
模型性能如表6所示,此處特別說明,以下所有模型mAP0.5指標(biāo)均在99%以上,不再單獨(dú)列出。
3.3 ?模型量化
神經(jīng)網(wǎng)絡(luò)權(quán)重量化是一種通過減少表示每個(gè)權(quán)重所需的比特?cái)?shù)來降低存儲(chǔ)空間、提升運(yùn)算效率的神經(jīng)網(wǎng)絡(luò)壓縮方式??紤]到移動(dòng)端部署的便捷要求,進(jìn)一步測(cè)試16位整型和8位整型量化[10]的應(yīng)用效果。
受限于前端瀏覽器對(duì)于文件大小及堆??臻g大小的限制,本文在原有驗(yàn)證集19 672張圖片下隨機(jī)選取1 000張圖片作為驗(yàn)證子集驗(yàn)證性能,表7記錄量化后的模型性能指標(biāo),Model列參數(shù)與表3、表4、表6相同,mAP0.75(8)表示原模型8位整型量化后的性能指標(biāo),mAP0.75(16)表示原模型16位整型量化后的性能指標(biāo),mAP0.75(32)為32位浮點(diǎn)型性能指標(biāo),其參數(shù)與表3、表4、表6相同,Size(8/16)表示8位整型與16位整型量化后的模型大小。
對(duì)比表6和表7,易推斷神經(jīng)網(wǎng)絡(luò)模型經(jīng)8位整型量化后精度產(chǎn)生了一定的浮動(dòng),其中416分辨率下的測(cè)試結(jié)果出現(xiàn)了大幅度跌落,288分辨率下精度出現(xiàn)了小幅下降,352分辨率下精度出現(xiàn)了一定程度的上升。綜合評(píng)估下,D-12.5%-32參數(shù)的模型在352分辨率下,分辨率精度未下降,模型大小僅為81 KB,能夠滿足前端瀏覽器的部署需要。
4 ? 結(jié)論
筆者認(rèn)為神經(jīng)網(wǎng)絡(luò)具備大量的參數(shù)冗余,故而探究了以深度可分離卷積和通道剪枝為代表的神經(jīng)網(wǎng)絡(luò)壓縮方法,并結(jié)合模型量化,對(duì)YOLOv3進(jìn)行優(yōu)化。試驗(yàn)表明深度可分離卷積引入YOLOv3后,能起到模型壓縮、參數(shù)減少的作用,檢測(cè)精度雖略有下降,但仍可以保持較高的精準(zhǔn)度。使用結(jié)構(gòu)性通道剪枝方法,通過減去某一層卷積層的濾波器數(shù)量進(jìn)而去除該層產(chǎn)生的部分特征圖與下一層的部分卷積核,以達(dá)到壓縮模型的效果。結(jié)合模型量化,試驗(yàn)表明D-12.5%-32參數(shù)的模型在352分辨率下,分辨率精度未下降,其模型大小僅為81 KB。通過將模型壓縮方案引入YOLOv3,有效地減少了運(yùn)行時(shí)的開銷,并保持了較高的檢測(cè)精度,從而滿足了前端瀏覽器中的部署要求。
參考文獻(xiàn):
[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.
責(zé)任編輯 ? ?祁秀春
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
基金項(xiàng)目:大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目“基于人臉識(shí)別的校園新生迎新系統(tǒng)”(201911463034Y);國(guó)家自然科學(xué)基金 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 項(xiàng)目“基于改進(jìn)稀疏表示與多特征融合的道路監(jiān)控視頻中車輛信息感知”(61806088)
作者簡(jiǎn)介:朱金銘,本科生,主要研究方向?yàn)閳D像處理、模式識(shí)別。
指導(dǎo)教師:范洪輝,教授,博士,主要研究方向?yàn)閳D像處理、機(jī)器視覺;朱洪錦,副教授,博士,主要研究方向?yàn)槟J阶R(shí)別、 ? ? ? ? ? ? ? ? ? ? ? ? ? ?機(jī)器視覺。