李鶴喜,李記花,李威龍
(五邑大學(xué) 智能制造學(xué)部,廣東 江門 529020)
隨著深度學(xué)習(xí)技術(shù)[1~4]的廣泛研究,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的計(jì)算機(jī)視覺技術(shù)有了突破性的進(jìn)展。CNN在圖像識(shí)別、圖像分割、目標(biāo)檢測(cè)等許多應(yīng)用領(lǐng)域取得了顯著成績(jī)。以往相關(guān)人員設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)模型一直在追求更高的識(shí)別率,這些深度網(wǎng)絡(luò)通常通過簡(jiǎn)單的卷積層疊加來實(shí)現(xiàn),模型的識(shí)別精度確實(shí)不斷地被提升,網(wǎng)絡(luò)模型也就越來越深。但網(wǎng)絡(luò)通常會(huì)包含很多冗余參數(shù),計(jì)算量也隨之增大,使得網(wǎng)絡(luò)訓(xùn)練越來越慢[5~8]。在實(shí)際應(yīng)用中,計(jì)算能力有限、內(nèi)存資源有限等的移動(dòng)設(shè)備也很難部署這些深度卷積神經(jīng)網(wǎng)絡(luò)。
視覺注意機(jī)制是指視覺焦點(diǎn)主要集中在顯著性區(qū)域而忽略其他不重要區(qū)域。故將其應(yīng)用到目標(biāo)識(shí)別中,能夠增強(qiáng)目標(biāo)在場(chǎng)景中的顯著性,有效減少背景信息的干擾。傳統(tǒng)的注意機(jī)制模型主要是利用高斯金字塔計(jì)算圖像的顏色特征圖、亮度特征圖和方向特征圖,并結(jié)合不同尺度的特征圖獲得亮度、顏色和方向顯著圖,最后相加得到最終的顯著區(qū)域[9]。目前,越來越多的人將注意機(jī)制引入到卷積神經(jīng)網(wǎng)絡(luò)模型中。Jaderberg M等[10]提出的空間注意力模型(spatial transformer network,STN)可對(duì)網(wǎng)絡(luò)模型的數(shù)據(jù)進(jìn)行空間操作,使網(wǎng)絡(luò)能夠進(jìn)行特征圖的空間變換,從而通過確定空間位置信息來提高網(wǎng)絡(luò)精度。Hu J等[11]提出的通道注意力模型(squeeze-and-excitation networks,SE)通過學(xué)習(xí)的方式可以自動(dòng)獲取到每個(gè)特征通道的重要程度,然后根據(jù)不同重要程度去提升有用的特征并抑制對(duì)當(dāng)前任務(wù)用處不大的特征來提高網(wǎng)絡(luò)精度。Woo S等[12]提出的空間通道注意力模型(convolutional block attention module,CBAM)是從通道和空間兩個(gè)不同維度所計(jì)算出的特征圖來進(jìn)行特征的自適應(yīng)學(xué)習(xí)來提高網(wǎng)絡(luò)精度。STN模型忽略了通道之間的關(guān)系;SE模型沒有捕捉到空間信息;CBAM模型雖然同時(shí)考慮到通道和空間信息,但其通道注意和空間注意是分離的,計(jì)算時(shí)相互獨(dú)立,忽略了通道和空間的交互信息。
本文提出了一種深度可分離卷積(depthwise separable convolution,DSC)結(jié)合3重注意機(jī)制模塊(triple attention module,TAM)的方法,稱其為DSC-TAM方法并通過大量實(shí)驗(yàn)對(duì)比改進(jìn)算法和原始算法在圖像識(shí)別率和參數(shù)量的差異,驗(yàn)證了該算法的有效實(shí)用性。
CNN是一種常見的深度學(xué)習(xí)架構(gòu),它通過卷積處理能夠從原始圖像中提取有效特征,因而被廣泛用于各種視覺模型的建立[13]。傳統(tǒng)的標(biāo)準(zhǔn)卷積是對(duì)所有的輸入特征進(jìn)行卷積運(yùn)算得到一系列輸出,如圖1所示,其模型規(guī)模和計(jì)算量都很龐大。DSC是一種將標(biāo)準(zhǔn)卷積分解成深度卷積和逐點(diǎn)卷積的算法[14],它將計(jì)算分成兩步完成。首先是深度卷積操作,對(duì)每一個(gè)輸入通道用單個(gè)濾波器進(jìn)行濾波,然后采用1×1像素逐點(diǎn)卷積操作并結(jié)合所有深度卷積得到輸出,這種分解能夠大量的減少計(jì)算量以及模型的規(guī)模,實(shí)現(xiàn)了卷積模型的輕量化。其計(jì)算過程如圖2所示,第1層為深度卷積,主要是進(jìn)行空間相關(guān)性的計(jì)算,對(duì)特征進(jìn)行有效的提?。坏?層是逐點(diǎn)卷積,是主要是通過輸入通道的線性組合來調(diào)整輸出特征通道數(shù)。
圖1 標(biāo)準(zhǔn)卷積過程Fig.1 Standard convolution process
圖2 深度可分離卷積過程Fig.2 Deep convolution process
假設(shè)輸入和輸出的特征圖一樣,采用的卷積核是Dk×Dk,則標(biāo)準(zhǔn)卷積的計(jì)算量為
Dk·Dk·M·N·Df·Df
(1)
式中:Dk表示卷積核k的長(zhǎng)和寬;M表示輸入特征圖的通道數(shù);N表示輸出特征圖的通道數(shù);Df表示輸入與輸出特征圖f的寬度與高度。
深度卷積的計(jì)算量為
Dk·Dk·M·Df·Df
(2)
逐點(diǎn)卷積的計(jì)算量為
M·N·Df·Df
(3)
故深度可分離卷積的總計(jì)算量為
Dk·Dk·M·Df·Df+M·N·Df·Df
(4)
由式(1)和式(4)可得出深度可分離卷積和標(biāo)準(zhǔn)卷積之比:
(5)
由以上公式可以看出,深度可分離卷積輸出特性與標(biāo)準(zhǔn)卷積輸出特性具有相同的大小,深度可分離卷積可以顯著地減少參數(shù)量和計(jì)算代價(jià),計(jì)算消耗的比例只與卷積核的數(shù)量N和它的尺寸大小Dk有關(guān),當(dāng)N和Dk越大,DSC呈現(xiàn)的效率越高。
人類的視覺處理能力是有限的,不可能同時(shí)處理所有的信息,注意力主要集中在特征顯著的區(qū)域,機(jī)器視覺也是利用這種注意機(jī)制來有效地提高工作效率[15]。復(fù)雜場(chǎng)景下圖像的信息量很大,且圖像中最重要的信息一般集中在很小的區(qū)域,所以能夠利用視覺注意機(jī)制快速準(zhǔn)確地獲取圖像中有效的信息,在視覺模型的建立過程中顯得尤為重要。
卷積神經(jīng)網(wǎng)絡(luò)中,一張圖片最初會(huì)由(R、G、B)3個(gè)通道來表示,經(jīng)過卷積層后會(huì)產(chǎn)生新的通道,每個(gè)通道的信息是不同的[16]。通道注意力模塊是利用特征的通道間的關(guān)系,生成通道注意圖。由于特征圖的每個(gè)通道都被認(rèn)為是一個(gè)特征檢測(cè)器,所以通道的注意力集中在給定輸入圖像包含“什么”是有意義的。為了學(xué)習(xí)通道注意力的有效表示,首先通過全局平均池化和全局最大池化來聚合空間維度信息,為每個(gè)通道生成2個(gè)特征描述符。然后將這2個(gè)特征描述符輸入到一個(gè)共享的多層感知器中,以生成更具代表性的特征向量。接著通過元素求和操作輸出合成特征向量,最后利用sigmoid函數(shù)得到最終的通道注意圖。通道注意力模塊流程圖如圖3所示,通道注意力計(jì)算公式如公式(6)所示。
Mc(F)=σ(MLP(Avg Pool(F))+MLP(Max Pool(F))
(6)
圖3 通道注意力模塊Fig.3 Channel attention module
與通道注意力模塊不同的是,空間注意力模塊主要集中于對(duì)當(dāng)前任務(wù)有價(jià)值的地方,是對(duì)通道注意力的補(bǔ)充。為了計(jì)算空間注意力,首先通過全局平均池化和全局最大池化操作為每個(gè)位置生成兩個(gè)特征描述符。然后將兩個(gè)特征描述符集中在一起,通過7×7像素的卷積運(yùn)算得到空間注意圖。最后,使用sigmoid函數(shù)將空間注意力映射縮放到0~1之間??臻g注意模塊流程圖如圖4所示??臻g注意力計(jì)算公式如下:
Ms(F)=σ(f7×7([Avg Pool(F);Max Pool(F)]))
(7)
圖4 空間注意力模塊Fig.4 Spatial attention module
通道空間注意力模塊就是同時(shí)使用空間注意力機(jī)制和通道注意力機(jī)制兩種維度,其主要思想就是將從通道和空間2個(gè)不同維度所計(jì)算出的特征圖與卷積神經(jīng)網(wǎng)絡(luò)所產(chǎn)生的特征圖相乘來進(jìn)行特征的自適應(yīng)學(xué)習(xí),其模型圖如圖5所示。假設(shè)F為輸入的特征圖,則通道和空間注意力模塊所做的運(yùn)算分別為
(8)
式中:Mc表示基于通道維度的注意提取操作;Ms表示基于空間維度的注意提取操作;?表示按元素的叉乘。
圖5 通道空間注意力模塊Fig.5 Channel-space attention module
很多注意機(jī)制模型證明了通道注意機(jī)制和空間注意機(jī)制的重要性,而未關(guān)注到其交互的重要性。傳統(tǒng)的通道注意力的計(jì)算方法是先計(jì)算一個(gè)權(quán)值,然后使用權(quán)值對(duì)輸入張量中每個(gè)通道的標(biāo)量進(jìn)行縮放得到特征圖,這種方法導(dǎo)致了空間信息的大量丟失,因此在單像素通道上計(jì)算注意力時(shí),通道維數(shù)和空間維數(shù)之間的相互依賴性也不存在。文獻(xiàn)[12]引入空間注意作為通道注意的補(bǔ)充模塊。該方法的通道注意和空間注意是分離的,計(jì)算時(shí)相互獨(dú)立,沒有考慮兩者之間的任何關(guān)系?;谝陨线@些原因,提出了通道空間交互作用的概念,通過捕捉空間維度和輸入張量通道維度之間的交互作用,解決了這一缺陷。提出了3重注意機(jī)制模塊,從3個(gè)分支維度計(jì)算注意力權(quán)值,其模型圖如圖6所示。第1個(gè)分支是計(jì)算通道注意力權(quán)值;第2個(gè)分支計(jì)算空間注意力權(quán)值,第3個(gè)分支是計(jì)算通道和空間的交互。然后將3個(gè)分支所產(chǎn)生的特征張量加權(quán)相加后求平均值。
(9)
式中:Mcs表示通道空間交互提取操作;w1、w2和w3分別是3個(gè)分支計(jì)算出注意權(quán)重;y1、y2和y3分別是3個(gè)分支的注意圖。
最后輸出組合特征3重注意力模塊圖如圖6所示。
圖6 3重注意力模塊Fig.6 Triple attention module
本文對(duì)深度可分離卷積和注意機(jī)制模塊進(jìn)行了改進(jìn),設(shè)計(jì)了一個(gè)新的網(wǎng)絡(luò)結(jié)構(gòu)。該網(wǎng)絡(luò)以深度可分離卷積為主,同時(shí)引入3重注意機(jī)制模塊。其中深度可分離卷積用于減少網(wǎng)絡(luò)參數(shù),而3重注意機(jī)制模塊用于增強(qiáng)網(wǎng)絡(luò)的特征提取能力。該結(jié)構(gòu)在保證良好準(zhǔn)確度的同時(shí)縮小了訓(xùn)練時(shí)間,優(yōu)化了模型性能。該網(wǎng)絡(luò)結(jié)構(gòu)主要由深度可分離卷積、3重注意力模塊2部分組成,如圖7所示。
圖7 模型結(jié)構(gòu)圖Fig.7 Model structure drawing
先使用深度可分離卷積提取特征,然后分為3個(gè)子網(wǎng)絡(luò)同時(shí)進(jìn)行運(yùn)算。第1個(gè)子網(wǎng)絡(luò)計(jì)算空間注意力,首先將逐點(diǎn)卷積后的特征圖分別進(jìn)行最大池化和平均池化,然后將經(jīng)過2種池化后的特征進(jìn)行連接,最后進(jìn)行7×7的卷積得到空間注意圖。第2個(gè)子網(wǎng)絡(luò)計(jì)算通道空間注意圖,首先將逐點(diǎn)卷積后的特征圖進(jìn)行轉(zhuǎn)置操作,接著輸入到最大池化和平均池化層,最后將經(jīng)過池化后的特征進(jìn)行連接并輸入到全連接層得到通道空間注意圖。第3個(gè)子網(wǎng)絡(luò)計(jì)算通道注意圖,首先將逐點(diǎn)卷積后的特征圖分別進(jìn)行最大池化和平均池化,然后將經(jīng)過2種池化后的特征輸入多層感知機(jī),最后對(duì)多層感知機(jī)輸出的2個(gè)特征圖進(jìn)行元素求和操作得到通道注意圖。將這3個(gè)子網(wǎng)絡(luò)產(chǎn)生的特征圖相加并求平均值得到輸出。改進(jìn)后的主體網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
實(shí)驗(yàn)數(shù)據(jù)集共收集了16 834張常見的物品圖片,42個(gè)類別的圖像,每個(gè)類別包含400張左右,大小為640像素×480像素的圖像,訓(xùn)練集為14 308張,測(cè)試集為2 526張。圖8為部分物品圖像集。
本文所有實(shí)驗(yàn)均在Windows10環(huán)境下進(jìn)行,所使用的主機(jī)裝有1塊NVIDIA GeForce GTX 1080Ti顯卡,采用Keras框架進(jìn)行實(shí)驗(yàn)。網(wǎng)絡(luò)的訓(xùn)練參數(shù)設(shè)置如下:批次batch_size為64,循環(huán)次數(shù)epochs為30,初始學(xué)習(xí)率為0.01,每10個(gè)epoch學(xué)習(xí)率縮小10倍,權(quán)重衰減值為0.000 1。
表1 主體網(wǎng)絡(luò)Tab.1 The main network 像素
圖8 部分物品圖像集Fig.8 Part of the item image set
實(shí)驗(yàn)比較了5種網(wǎng)絡(luò)模型:深度可分離卷積(DSC)、深度可分離卷積-空間注意(DSC-STN)、深度可分離卷積-通道注意(DSC-SE)、深度可分離卷積-通道空間注意(DSC-CBAM)和本文提出的深度可分離卷積-3重注意(DSC-TAM)模型算法。其效果對(duì)比如圖表2所示,M為計(jì)算機(jī)存儲(chǔ)單位。
表2 不同模型算法效果對(duì)比Tab.2 Effect comparison of different algorithm models
從表2中可以看出,DSC-TAM的準(zhǔn)確率高于DSC、DSC-STN、DSC-SE、DSC-CBAM這4種模型,可達(dá)99.63%;參數(shù)量和模型規(guī)模與同樣采用注意機(jī)制模塊的DSC-STN、DSC-SE、DSC-CBAM相比更低,平均模型規(guī)模降低13%,略高于無注意機(jī)制的DSC模型。這說明本文方法綜合性能優(yōu)于其他模型,應(yīng)用于圖像識(shí)別、嵌入式機(jī)器人視覺實(shí)時(shí)性要求高的場(chǎng)合效果會(huì)更好。
表3是在本文改進(jìn)模型中不同位置加入注意機(jī)制模塊,從表中可以看出添加TAM模塊不僅可以提高準(zhǔn)確率并且還能減少訓(xùn)練時(shí)間。
表3 注意機(jī)制對(duì)比實(shí)驗(yàn)Tab.3 Attention mechanism contrast experiment
提出了一種基于注意機(jī)制和神經(jīng)網(wǎng)絡(luò)視覺模型。采用深度可分離卷積處理降低了模型的大小,使卷積神經(jīng)網(wǎng)絡(luò)輕量化,采用的TAM模塊通過通道注意機(jī)制和空間注意機(jī)制以及交互信息的融合能夠有效地提高網(wǎng)絡(luò)特征提取能力。在基準(zhǔn)數(shù)據(jù)集上完成的試驗(yàn)表明:采用的輕量化視覺模型與目前流行的模型相比,在網(wǎng)絡(luò)識(shí)別的準(zhǔn)確率和優(yōu)化參數(shù)量上都取得了較好的性能,識(shí)別準(zhǔn)確率為99.63%,模型規(guī)模降低了13%。