楊國亮,朱 晨,李 放,吳志剛
(江西理工大學(xué) 電氣工程與自動化學(xué)院,江西 贛州 341000)
圖像識別作為計(jì)算機(jī)視覺的基本任務(wù)之一,已被廣泛應(yīng)用于安防[1]、交通[2]、醫(yī)療等領(lǐng)域。低分辨率圖像作為一種數(shù)據(jù)量小、易于傳輸?shù)臄?shù)據(jù)表達(dá)形式,占據(jù)了全部圖片相當(dāng)大的比重。常見于商品Logo,社交賬號頭像等對圖像細(xì)節(jié)要求不高的領(lǐng)域,或者是攝像時(shí)鏡頭與目標(biāo)距離較遠(yuǎn),導(dǎo)致物體在整張圖片中占用像素點(diǎn)較少的目標(biāo)圖像,例如地理系統(tǒng)的遙感圖像、航拍圖像等。
研究發(fā)現(xiàn)卷積層的數(shù)量(深度)在神經(jīng)網(wǎng)絡(luò)中扮演至關(guān)重要的角色,VGG,GoogLeNet,ResNet[3]等具有更深層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)相繼出現(xiàn),刷新神經(jīng)網(wǎng)絡(luò)的分類精度,而與之伴隨的是算法中參數(shù)量的巨大增加,無法應(yīng)用于容量有限的嵌入式設(shè)備中,實(shí)際應(yīng)用受限。為解決這一問題,研究者們提出了如MobileNet[4],MobileNetV2[5],MnasNet[6]等人輕量化卷積神經(jīng)網(wǎng)絡(luò),大量減少網(wǎng)絡(luò)計(jì)算的參數(shù)量,并能夠保持與ResNet等算法相近的準(zhǔn)確度,降低網(wǎng)絡(luò)的復(fù)雜度。部分輕量化卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用也有限制,據(jù)文獻(xiàn)[6]所述,MnasNet網(wǎng)絡(luò)在常用分辨率圖像(224×224)中識別速度快、精度高,但是識別低分辨率圖像的精度一般。
本文針對MnasNet網(wǎng)絡(luò)在無法高效識別低分辨率圖像內(nèi)容問題,對網(wǎng)絡(luò)模塊進(jìn)行改進(jìn),將改進(jìn)后的網(wǎng)絡(luò)模塊在CIFAR—10數(shù)據(jù)集中做消融實(shí)驗(yàn),尋找最優(yōu)的網(wǎng)絡(luò)架構(gòu),并于CINIC—10數(shù)據(jù)集中驗(yàn)證。
利用深度可分離卷積結(jié)構(gòu)的MobileNet網(wǎng)絡(luò)不同于標(biāo)準(zhǔn)卷積將輸入特征圖計(jì)算、輸出一次完成,深度可分離卷積將這一過程分解成深度卷積(depthwise)和逐點(diǎn)卷積(pointwise)兩個(gè)步驟完成。
深度卷積將輸入的每張?zhí)卣鲌D進(jìn)行單獨(dú)計(jì)算,逐點(diǎn)卷積就是1×1的卷積用于將每個(gè)深度卷積的輸出組合為一個(gè)整體。假設(shè)輸入一個(gè)H×W×M的特征圖X,輸出特征圖Y為H×W×N,卷積核的尺寸為K,則普通卷積的計(jì)算量為
K2×M×N×H×W
(1)
而深度可分離卷積的計(jì)算量為
K2×M×H×W+M×N×H×W
(2)
將兩種卷積的計(jì)算量進(jìn)行比對
(3)
假設(shè)卷積神經(jīng)網(wǎng)絡(luò)使用K=3的卷積核,則相對標(biāo)準(zhǔn)卷積結(jié)構(gòu),可分離卷積將計(jì)算量降低了8~9倍。
1.1.1 倒置殘差瓶頸塊
MobileNetv2網(wǎng)絡(luò)創(chuàng)新性提出了線性瓶頸和倒置殘差塊兩種改進(jìn)方法,主要表現(xiàn)為在MobileNet網(wǎng)絡(luò)的可分離卷積模塊的輸入端加入1×1的逐點(diǎn)卷積;引入膨脹系數(shù)t,控制卷積模塊的卷積通道數(shù);構(gòu)造殘差模塊。倒置瓶頸塊的應(yīng)用進(jìn)一步降低了網(wǎng)絡(luò)的復(fù)雜度,其將模塊中第一個(gè)1×1卷積層對輸入特征圖的通道做t倍的膨脹,最后一個(gè)1×1卷積層將膨脹的通道收斂,降低模塊的計(jì)算量。可分離卷積(SepConv)模塊和倒置殘差瓶頸(Bottleneck)塊的結(jié)構(gòu)如圖1所示。
圖1 深層可分離卷積的結(jié)構(gòu)
1.1.2 MnasNet
MnasNet網(wǎng)絡(luò)的結(jié)構(gòu)由標(biāo)準(zhǔn)卷積、深度可分離卷積和倒置殘差瓶頸塊等共同組成,主體結(jié)構(gòu)的排布和MobileNetv2網(wǎng)絡(luò)相似。不同的是,MnasNet網(wǎng)絡(luò)在部分卷積層中使用5×5的卷積核,加大網(wǎng)絡(luò)的感受野,提升算法的識別精度;調(diào)整深度可分離卷積的通道擴(kuò)張系數(shù),縮減算法的運(yùn)行時(shí)間;網(wǎng)絡(luò)淺層部分的卷積層增加,減少深層部分的卷積層,網(wǎng)絡(luò)的深度不變。這些改進(jìn)使MnasNet網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集測試結(jié)果更加優(yōu)秀,檢索速度是MobileNetv2網(wǎng)絡(luò)的1.5倍而且分類精度不降低。
1.2.1 金字塔型輕量化卷積瓶頸塊
Yang M等人[7]提出利用密集的金字塔結(jié)構(gòu)(DenseASPP)可以提取更為豐富的圖片特征,在場景分割中取得了優(yōu)秀的表現(xiàn)結(jié)果。受其啟發(fā),本文將MnasNet網(wǎng)絡(luò)中瓶頸塊的單一的深度可分離卷積構(gòu)建為具有金字塔結(jié)構(gòu)的多個(gè)深度可分離卷積的組合。
文獻(xiàn)[7]中使用的DenseASPP結(jié)構(gòu)由5個(gè)密集連接的空洞卷積[8]組成,通過改變每個(gè)空洞卷積的空洞系數(shù)擴(kuò)張濾波器的尺寸,實(shí)現(xiàn)擴(kuò)大卷積層感受野的目的;另一方面,每個(gè)濾波器的輸出通過“concat”連接[9]方式組合成一個(gè)整體,構(gòu)建具有金字塔結(jié)構(gòu)的多尺度特征圖。本文沒有將空洞卷積運(yùn)用到深度可分離卷積中改變?yōu)V波器的尺寸,因?yàn)榭斩淳矸e雖然可以減少網(wǎng)絡(luò)的參數(shù)量,但是濾波器中補(bǔ)‘0’的部分仍舊參與計(jì)算,并且限制了濾波器輸出的連接方式。文獻(xiàn)[10]提出使用更小的濾波器級聯(lián)代替較大的濾波器可以極大地減少神經(jīng)網(wǎng)絡(luò)的參數(shù)量和計(jì)算復(fù)雜度,但考慮到當(dāng)前批規(guī)范方法已經(jīng)結(jié)合到深度可分離卷積模塊中,這樣的方式已經(jīng)不再適合。本文假設(shè)基于金字塔結(jié)構(gòu)瓶頸(PSBottleneck)塊的輸入特征圖尺寸為H×W×M,輸出特征圖尺寸為H×W×N,其中一組為5×5的濾波器,另一組為2個(gè)級聯(lián)的3×3濾波器
C5×5=H×W×M×(25+N)
(4)
C3×3=H×W×M×(9+N)
(5)
?C5×5<2×C3×3,當(dāng)N>7時(shí)
由式(4)和式(5)知,對于感受野大小相同的情況下,當(dāng)N>7時(shí),一個(gè)5×5的濾波器的計(jì)算量略低于兩個(gè)級聯(lián)的3×3濾波器的計(jì)算量。因此,本文采用直接改變?yōu)V波器尺寸的方式構(gòu)建濾波器的金字塔結(jié)構(gòu)—金字塔的每層僅有一個(gè)濾波器;金字塔最上層的濾波器尺寸最小,為3×3,由小到大向下排列,第i層濾波器的尺寸為Kn,Kn=2n+1;濾波器的輸出既可以采用殘差連接的元素和方式組合,亦可以采用通道拼接的方式組合,送入下一個(gè)PSBottleneck塊。PSBottleneck塊的結(jié)構(gòu)如圖2所示。
圖2 PSBottleneck塊結(jié)構(gòu)
由于PSBottleneck塊內(nèi)的每層濾波器都共享逐點(diǎn)卷積的輸出作為輸入,極大地增加了網(wǎng)絡(luò)的參數(shù)量和計(jì)算量,本文引入超參數(shù)β控制逐點(diǎn)卷積的輸出,減小網(wǎng)絡(luò)的空間復(fù)雜度和時(shí)間復(fù)雜度;β作用于每個(gè)PSBottleneck塊的第一個(gè)逐點(diǎn)卷積,調(diào)節(jié)輸入濾波器的特征通道數(shù)。引入超參數(shù)β后的PSBottleneck塊的計(jì)算量為
H×W×βTM×N
(6)
調(diào)節(jié)超參數(shù)β,可以實(shí)現(xiàn)比原瓶頸塊更小的計(jì)算量和參數(shù)量。相較于原瓶頸塊,改進(jìn)的PSBottleneck塊從結(jié)構(gòu)上擴(kuò)展了深度可分離卷積的層數(shù),并重新設(shè)定深度可分離卷積的卷積核尺寸,其構(gòu)成形式類似于Inception的多級卷積核并行結(jié)構(gòu);在參數(shù)方面,引入超參數(shù)β,靈活調(diào)整網(wǎng)絡(luò)的空間復(fù)雜度和時(shí)間復(fù)雜度,在準(zhǔn)確率和速度間實(shí)現(xiàn)平衡。改進(jìn)后的PSBottleneck塊結(jié)構(gòu)依然保持著瓶頸塊的形式,使用簡單、可控。
1.2.2 PSMnasNet網(wǎng)絡(luò)
本文首先將MnasNet網(wǎng)絡(luò)參數(shù)設(shè)置依照MobileNetV2網(wǎng)絡(luò)的設(shè)置逐步更改,然后在CIFAR—10數(shù)據(jù)集上測試,實(shí)驗(yàn)結(jié)果表明過多的下采樣次數(shù)和在網(wǎng)絡(luò)深層部分過大的卷積核尺寸是原MnasNet網(wǎng)絡(luò)不適用于對低分辨率圖像進(jìn)行特征區(qū)分的主要原因。
PSMnasNet網(wǎng)絡(luò)結(jié)構(gòu)基于調(diào)整下采樣后的MnasNet網(wǎng)絡(luò)架構(gòu),使用PSBottleneck塊替換原網(wǎng)絡(luò)中的倒置殘差瓶頸塊并根據(jù)特征圖尺寸設(shè)置匹配的池化層。PSMnasNet網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 PSMnasNet網(wǎng)絡(luò)結(jié)構(gòu)
表1中K指代PSBottleneck塊中濾波器的最大尺寸,特征圖分辨率大于等于16時(shí),采用濾波器尺寸分別為(3,5,7)的3級PSBottleneck塊;特征圖分辨率大于等于8時(shí),采用濾波器尺寸為(3,5)的2級PSBottleneck塊。T指代通道的膨脹系數(shù);C指代網(wǎng)絡(luò)的通道數(shù);N指代模塊的重復(fù)次數(shù);S指代卷積模塊的步長,S作用于每個(gè)重復(fù)的PSBottleneck塊的第一個(gè)模塊中,其余模塊的步長均為1。PSMnasNet網(wǎng)絡(luò)全部使用PSBottleneck塊,網(wǎng)絡(luò)下采樣2次,最終輸出分辨率為8×8的特征圖;另外,PSMnasNet的網(wǎng)絡(luò)結(jié)構(gòu)與原MnasNet網(wǎng)絡(luò)保持一致,包括網(wǎng)絡(luò)中瓶頸塊的排列方式、組合次數(shù)和特征圖通道數(shù)、通道的膨脹系數(shù)等等。
本文的實(shí)驗(yàn)條件為Ubuntu14.04系統(tǒng),GTX 1070 8G顯卡,PyTorch0.4.1。
CIFAR—10數(shù)據(jù)集包含有60 000張32×32的低分辨率圖像,其測試結(jié)果是網(wǎng)絡(luò)驗(yàn)證自身算法性能的一項(xiàng)重要指標(biāo)。本文將改進(jìn)后的網(wǎng)絡(luò)在CIFAR—10數(shù)據(jù)集上測試,分析超參數(shù)β和PSBottleneck塊的濾波器尺寸對網(wǎng)絡(luò)的影響。
本文遵循文獻(xiàn)[11]使用的訓(xùn)練策略:優(yōu)化器使用隨機(jī)梯度下降方法;初始學(xué)習(xí)率為0.1,150次迭代后學(xué)習(xí)率下調(diào)10倍,225次迭代后再次下調(diào)10倍;設(shè)定動量為0.9;權(quán)重衰減為1×10-4;batch size設(shè)定為128;共計(jì)迭代320個(gè)周期。
本文首先測試MnasNet網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果作為基線:MnasNet網(wǎng)絡(luò)的下采樣次數(shù)是5,參數(shù)量有3.19M,獲得了84.92 %的分類精度;調(diào)整后得到的MnasNet-FT網(wǎng)絡(luò)的下采樣次數(shù)為2,參數(shù)量不變,計(jì)算量上升,網(wǎng)絡(luò)的分類精度提高到93.90 %。
然后,本文比較PSBottleneck塊中特征的連接方式‘Add’和 ‘Concat’對網(wǎng)絡(luò)性能的影響。設(shè)定β=0.25,混合使用k=5/7的PSBottleneck塊,使用‘Add’方式的網(wǎng)絡(luò)參數(shù)量為0.94M,分類精度達(dá)93.97 %;而使用‘Concat’方式的網(wǎng)絡(luò)參數(shù)量為1.31M,分類精度達(dá)94.37 %。綜合比較后,本文在PSBottleneck塊中選用‘Concat’連接方式。
本文固定PSBottleneck塊的濾波器混合使用K=5(二層濾波器)和K=7(三層濾波器),分別設(shè)定β為0.10,0.25,0.50,0.75,如圖4所示,通過實(shí)驗(yàn)日志記錄網(wǎng)絡(luò)準(zhǔn)確率變化過程。由圖3觀察可知:當(dāng)β=0.10時(shí),PSMnasNet網(wǎng)絡(luò)的參數(shù)量不到原網(wǎng)絡(luò)的1/5,但分類精度卻提高了8 %,比MnasNet-FT網(wǎng)絡(luò)減少約0.9 %;當(dāng)β=0.25時(shí),PSMnasNet網(wǎng)絡(luò)的分類精度已經(jīng)超出MnasNet-FT網(wǎng)絡(luò)約0.5 %,而且參數(shù)量減少約60 %;β對網(wǎng)絡(luò)精度的影響存在上限,當(dāng)β=0.75時(shí),網(wǎng)絡(luò)精度隨迭代次數(shù)的變化和β=0.50時(shí)的基本重合,網(wǎng)絡(luò)的參數(shù)量增加,但分類效果不再提升,此時(shí)的最佳分類精度為94.85 %。
圖3 超參數(shù)β的網(wǎng)絡(luò)分類精度
圖4是固定β=0.25后,PSBottleneck塊的濾波器尺寸k影響網(wǎng)絡(luò)分類精度變化的折現(xiàn)圖。PSBottleneck塊的濾波器尺寸k同樣影響網(wǎng)絡(luò)的參數(shù)量和分類性能,但幅度不大。通常而言,PSBottleneck塊的濾波器尺寸k越大,網(wǎng)絡(luò)的參數(shù)量越大,分類精度也越高;但是需要注意的是,特征圖尺寸經(jīng)過下采樣減小后,濾波器尺寸應(yīng)隨著下降,否則為了保持卷積操作前后特征圖尺寸的不變,需對特征圖進(jìn)行過多的填充,影響提取特征的魯棒性。如圖4中所示,混合使用2層PSBottleneck塊(k=5)和3層PSBottleneck塊(k=7)超過全部使用3層PSBottleneck塊(k=7)約0.2 %的分類精度。
圖4 PSBottleneck塊的濾波器尺寸k的網(wǎng)絡(luò)分類精度
在CIFAR—10數(shù)據(jù)集的實(shí)驗(yàn)中,PSMnasNet網(wǎng)絡(luò)的分類精度比MnasNet網(wǎng)絡(luò)提升了10 %,其中9 %來源于網(wǎng)絡(luò)下采樣次數(shù)的調(diào)整,另外的1 %則源自PSBottleneck塊的應(yīng)用。PSBottleneck塊采用更大的感受野和并行級聯(lián)的濾波器結(jié)構(gòu),提取更為豐富的圖片特征,實(shí)現(xiàn)網(wǎng)絡(luò)準(zhǔn)確率的提升。PSMnasNet網(wǎng)絡(luò)精度的提升存在上限,當(dāng)β=0.50時(shí),網(wǎng)絡(luò)的分類精度已接近極值點(diǎn);β繼續(xù)增大,只能使網(wǎng)絡(luò)的空間復(fù)雜度增加,而網(wǎng)絡(luò)的分類精度增加非常微小。另外,超參數(shù)β與網(wǎng)絡(luò)的參數(shù)量呈現(xiàn)線性關(guān)系:y=βx+b。其中y為網(wǎng)絡(luò)的參數(shù)量,x是β=1時(shí)所有PSBottleneck塊的參數(shù)量,約為4.7 M,b是網(wǎng)絡(luò)中非PSBottleneck塊網(wǎng)絡(luò)層的參數(shù)量,約為0.13 M。
隨著深度學(xué)習(xí)的快速發(fā)展,圖片數(shù)量限制了CIFAR—10數(shù)據(jù)集[12]評價(jià)指標(biāo)的置信度。作為CIFAR—10數(shù)據(jù)集的擴(kuò)充,CINIC—10[7]數(shù)據(jù)集有圖片27萬張,均為32×32的低分辨率圖像,和CIFAR—10數(shù)據(jù)集相同的10個(gè)分類;圖片平均分布于訓(xùn)練集、驗(yàn)證集和測試集中;圖片一部分來源于CIFAR—10數(shù)據(jù)集,另一部分來源于下采樣的ImageNet圖像,圖像的識別難度加大,算法在真實(shí)背景下物體識別能力的置信度更高。如圖5所示,本文從CINIC—10數(shù)據(jù)集的每個(gè)分類中隨機(jī)抽取5張圖片,從左向右依次是飛機(jī)、汽車、鳥、貓、鹿、狗、青蛙、馬、船、卡車。
圖5 CINIC—10數(shù)據(jù)集10個(gè)子類圖
本文將CINIC—10數(shù)據(jù)集的驗(yàn)證集圖像融入到訓(xùn)練集中,此時(shí)的CINIC—10數(shù)據(jù)集訓(xùn)練集中含有18萬圖片,測試集有9萬張圖片。CINIC—10數(shù)據(jù)集官方給出的訓(xùn)練策略和超參數(shù)為:優(yōu)化器為隨機(jī)梯度下降方法;學(xué)習(xí)率為初始為0.1,余弦退火下降至0;moment為0.9;權(quán)重衰減為1×10-4;批為訓(xùn)練批64,測試批50;迭代次數(shù)為300。
本文采用在CIFAR—10數(shù)據(jù)集上分類精度和網(wǎng)絡(luò)參數(shù)量均衡的PSMnasNet網(wǎng)絡(luò)(β=0.25,混合使用濾波器最大尺寸為5和7的PSBottleneck塊)應(yīng)用于CINIC—10數(shù)據(jù)集,并與當(dāng)前一些經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)比對,實(shí)驗(yàn)結(jié)果如表2所示。
表2 CINIC—10數(shù)據(jù)集中部分經(jīng)典網(wǎng)絡(luò)的性能表
如圖6所示,PSMnasNet網(wǎng)絡(luò)對CINIC—10數(shù)據(jù)集中10個(gè)子集的分類精度的排序與原MnasNet網(wǎng)絡(luò)一致,從高到低依次是青蛙、飛機(jī)、船、馬、汽車、鳥、卡車、鹿、貓和狗,但各子集的分類精度有著較大的改善,尤其是識別效果最差的狗類子集圖像,PSMnasNet網(wǎng)絡(luò)提高了約25 %的分類精度。
圖6 CINIC—10數(shù)據(jù)集10分類精度直方圖
MnasNet網(wǎng)絡(luò)作為當(dāng)前一種高效的輕量化卷積神經(jīng)網(wǎng)絡(luò),由于自身的部分結(jié)構(gòu)限制,不適合運(yùn)用于低分辨率圖像識別領(lǐng)域。本文根據(jù)低分辨率圖像的特點(diǎn),適當(dāng)調(diào)整網(wǎng)絡(luò)的結(jié)構(gòu),并在CIFAR—10和CINIC—10數(shù)據(jù)集中進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,PSMnasNet網(wǎng)絡(luò)對低分辨率圖像有著良好的識別效果,而且網(wǎng)絡(luò)的參數(shù)量更少,空間復(fù)雜度更低,可以用于代替MnasNet網(wǎng)絡(luò)執(zhí)行低分辨率圖像的分類。