鄭秋梅,彭天祺,黃 定,王風華+,林 超
(1.中國石油大學(華東) 計算機科學與技術學院,山東 青島 266580;2.湖南有色金屬職業技術學院 組織人事處,湖南 株洲 412006;3.中國石油大學(華東) 信息化建設處,山東 青島 266580)
傳統的圖像分類識別方法以提取圖像中的特征符[1]表示作為分類依據,但這些特征符只能反映圖像的某一項特點,導致分類精度有限。為尋找更具表征力的圖像特征,卷積神經網絡[2]取代手工特征并表現出強大的性能。早期的細粒度圖像分類算法[3,4]借助額外的標注信息進行訓練,但使分類訓練過程復雜化,無法滿足實時要求。于是注意力機制被應用于卷積網絡,以構架端到端的算法模型,并能進一步加強網絡中產生特征的表征能力。在此基礎上,研究人員還提出了數據增強[5]、混合損失函數[6,7]、多尺度特征融合[8]等多種算法豐富圖像特征值。
通常單一網絡的同尺度特征包含的信息缺乏多樣性。所以本文在多尺度特征融合的基礎上,提出一種多粒度多尺度的特征融合方法。該模型利用簡單的利用粒度圖像生成模塊向網絡提供細化信息,由此為基礎逐漸訓練網絡學習,并引入輕量化注意力模塊CBAM[9](convolutional block attention module)優化特征,避免給模型帶來參數負擔的同時采集不同粒度的尺度特征進行融合,提高最終向量的表征力。實驗結果表明,本文提出的多粒度特征融合能夠更好指導網絡。
本文在特征處理上,為了凸顯圖像重點區域,引入了注意力機制;為了綜合不同特征的優缺點,引入了特征融合方法。本節對相關理論基礎進行簡單介紹。
注意力機制啟發于大腦在處理視覺信息時,只焦距于最感興趣的少量區域,其它信息會自動屏蔽。注意力機制也希望對圖像信息進行重要性標注,使網絡更感興趣的部分權重更大,弱化其它信息。綜合目前圖像識別領域常用的注意力機制模塊,可大致分為通道注意力機制,空間注意力機制,混合注意力機制。
最具代表的通道注意力機制是SE-Net[10],其通過一種特別的激活函數,對特征圖中的各個通道進行篩選,學習各個通道的重要權重。Zheng等以殘差網絡ResNet為基礎網絡,提出應用通道注意力模塊指導網絡關注顯著區域的模型TASN[11],其充分計算特征通道間的關系,集成至單一特征圖中。空間注意力[12]通過對特征圖進行簡單的空間變換,學習了圖像像素之間的空間關系,并將空間關系表示為注意力掩碼,反饋給特征圖進行指導。組合通道和空間注意力形成了混合注意力機制,例如MA-CNN[13],其以骨干網產生的特征圖的所有通道中的空間峰值響應,通過全連接層聚合最終的注意圖。其它還有SA-Net[14]并行學習兩種注意力后進行融合,CBAM則是串行結構,其合理分配計算資源,極大減少了參數量,且通用于各個卷積網絡,受到研究人員的青睞。所以本文選用CBAM進一步擴展不同粒度特征。
特征融合是一種集合不同特征以豐富最終特征的方式,它可以將不同尺度的特征,不同語義特征,整體與局部特征的優勢相互結合,得到更具表征更具區分度的特征向量。根據融合中基本特征的來源,卷積神經網絡特征融合方法大致可以分為單網絡特征融合以及多網絡特征融合。多網絡特征融合并行運行不同的網絡結構,提取相對性質一致的對應特征,通過相加、連接、雙線性差值等方式融合。經典的B-CNN[15]算法同時并行兩個不同的網絡以求獲得不同性質的特征,并發現利用外積融合特征能獲得優秀的效果。單網絡融合,則是在單一網絡中,利用不同大小的并行卷積核,格外添加的注意力模塊,提取各階段多尺度特征等方法,盡量挖掘網絡中存在的各種信息。其代表算法特征金字塔網絡FPN[16],自下而上的融合原網絡自上而下的不同尺度特征,并且減小了計算成本。類似的還有Inception[17]結構,增強了模型對不同尺度學習的適應性。
為了保證融合基礎特征的質量,目前細粒度圖像分類方法致力于抑制噪聲信息和近似信息,或精進不同的模塊算法得以取得較好的成果。這要求對圖像進行細致精確的定位與裁剪,但本文只進行簡單的注意力焦距,利用圖像重組產生的空間隨機性,提取不同粒度的特征,在FPN的基礎上充分融合各粒度帶來的細化特征,提升識別準確率。
本文的整體訓練框架如圖1所示,主要包括粒度圖像集成模塊、原始圖像復核模塊、多尺度多粒度特征融合模塊3個分支。粒度圖像集成模塊輸入不同的粒度圖像,讓模型學習不同的粒度信息,而原始圖像復核模塊為了阻止網絡信息遺忘問題,在粒度圖像訓練結束后用正確的空間信息引導已習得的粒度信息,同時,縮減粒度圖像集成模塊參與訓練的輪數,消減影響,為多尺度多粒度特征融合提供優質的基礎特征。粒度圖像訓練和原始圖像訓練共同組成了多粒度圖像訓練過程,并通過交叉窗口提取訓練過程中學習的各個粒度信息,然后產生相應的注意力特征圖結合原始圖像特征進行融合,以得到表征力更強的特征。

圖1 網絡結構
ResNet是當前極為流行的網絡之一,被廣泛運用于分類、分割、檢測等視覺圖像領域;其結構簡單有效,方便擴展,與各種模塊都能很好的融合,且能提取到信息穩定的多種尺度特征,所以本文選擇ResNet50作為本文的骨干網以及特征提取器。
此前Wei等[18]研究發現,在自然語言任務中隨機打亂詞句順序進行數據增強能提升模型性能。所以人們嘗試將其應用到圖像領域,Chen Z等[19]首先嘗試了交換同一標簽圖片的部分區域進行了數據增廣。而Chen Y等[20]則利用圖像分割的方式,強制分離整體特征。通常認為在網絡關注最具區分度的主體區域的時候,往往會損失小區域的非典型有效信息。由于主體區域在訓練中被集合為單一向量,其中的細化粒度特征在一定程度上將被放棄。
粒度圖像生成模塊也是一種類似的數據增強方式,其并不關心消除背景噪聲,也不保留圖像中鳥類目標的完整性以求總括性的目標特征。不同的是,本文修改文獻[20]中只在區域范圍內隨機打亂的分割重組方式,變為在全圖范圍內變換,并強制所有相鄰子塊分離,使其最大程度上獲取圖像的細節信息。如圖2所示,不同的粒度圖像的關注到的特征區域隨分割子塊縮小不斷細化。

圖2 不同粒度下的特征及其綜合
具體在經過預處理后,輸入圖像的大小被調整為X∈C×H×W,將其分割為同等大小的n×n塊,每一個小塊的像素尺寸即為Xn∈C×H/n×W/n。如圖2所示,當n值越大,分割的子塊像素越小,包含的目標區域越小,其獲得的特征粒度越細,所以后文統一使用n值代表圖像粒度,并且本文認為原始圖像是粒度為0的一種粒度圖像。為了便于子塊的重新組合,對每一個子塊由式(1)計算編號索引,按行遍歷組成整體序列L。i,j分別代表著子塊行索引和列索引位置在第i行第j列組成子塊原始集合k
R(Lk)=i×n+j(0≤i,j (1) 在粒度圖像的訓練分支中,需要對原始子塊序列進行隨機打亂,生成新的序列M,設序列L中的n2個元素抽取概率相同,每次以概率P從中提取一個元素作為新序列M的下一個元素 (2) X′=X·M(M=Q(L)) (3) 新的序列M由粒度生成模塊Q而得,為新圖像提供全圖空間重組依據,如式(3)所示,其中X代表原始圖像,X′代表粒度圖像。此后,為了保證重組圖像粒度信息的純凈度,對序列進行二次掃描,要求序列進行滿足式(4) R(Mk+1)-R(Mk)≠1 R(Mk+n)-R(Mk)≠n (4) 若不符合式(4)上半關系式,則交換Mk+1與Mk+n+1,若不符合式(4)下半關系式,則交換Mk+n與Mk+n+1。由于先在全局范圍內進行了隨機空間變換,在保證純凈度的同時仍然保留了隨機性,為多粒度圖像訓練打下良好的基礎。 本文由粒度圖像集成模塊和原始圖像復核模塊通過組成多粒度圖像訓練進程,并設計了一種以粒度圖像為基準輸入的即插即用模塊,如圖1右上方所示,該模塊可以隨意插入到任意骨干網中,且不會帶來額外的參數量。粒度圖像集成模塊由Resnet50的S3、S4層特征,CBAM注意力結構,Downsample結構(如式(5)),以及一個單層FPN向上整合結構組成 Y=Linear(Max(conv(CBAM(F)))) (5) 低層特征往往包含更加泛化的信息,如紋理、顏色、邊緣等,可以拆分成不同粒度的信息,所以本文選取較低層的兩個階段的特征,集中保存粒度信息。注意力模塊CBAM用戶優化特征信息,突出粒度圖像中更具表征的區域。而Downsample結構下采樣特征后,可以便于計算粒度圖像集成模塊的損失,在訓練過程中,本文還仿照FPN方式對模塊不同階段的尺度特征進行一次放大整合,將尺度信息進行一次融合,使聯合損失同時優化尺度和粒度網絡信息,最終這個混合損失表示為Loss1=λL1+λL2(λ=0.5),λ的取值經過實驗驗證確定。如文獻[16]所述,對特征不同尺度的采樣,本質上也屬于圖像不同粒度的信息。對不同層的信息進行下采樣并進行預測,可以同時在同一網絡中兼容多種粒度信息,而圖中各層注意力結構CBAM與下采樣Downsample結構的參數起到了保存和精簡不同粒度圖像信息的作用。 如圖1右下方所示,本文在進行一次粒度圖像訓練后再訓練一次原始圖像,由此防止粒度圖像過度影響網絡概括性圖像特征信息,以保證模型穩定。其比粒度圖像訓練時,多經過一層基礎卷積層,進一步壓縮圖像尺寸,相比低層特征在語義信息上同時壓縮了細粒度信息。同時,為了使粒度圖像分支訓練最終提取的預測分類特征盡量與原始圖像分支預測特征粒度相區分,使各個粒度信息在網絡中共存而不混淆,本文將原始的圖像信息集中保存在最后一層并進行特征預測。 為了盡可能的使網絡學習更多不同粒度的信息,本文嘗試了多種輸入方式調整粒度圖像模塊,最終確定每種粒度參與30次循環迭代,按從粗到細的順序逐漸改變粒度模塊輸入的圖像粒度,整體模塊不參與完整訓練。這種方式能夠在一定程度上遞進穩定的學習,同時原始圖像輸入模塊分支緊跟其后進行訓練,也提高模型穩定性。 在目前主流的細粒度圖像分類訓練網絡中,人們設計了大量方式豐富最終分類特征的表征信息。在前人研究成果的基礎上,如圖1左下角所示,本文在多尺度特征融合的基礎上,通過注意力機制發現不同粒度圖像特征中的關注區域,設計了一個特征融合模塊指導訓練,使最終的特征向量盡量包含更多樣化的信息。 由于粒度圖像訓練模塊中,粒度圖像生成模塊擁有極大的隨機性,不利于圖像粒度的一致性。所以在特征融合訓練分支中,利用交叉窗口O代替Q進行重組。交叉窗口實際上是粒度圖像生成模塊眾多可能組合中的一種特殊情況,其在盡量保留部分子塊原本位置的基礎上分散所有相鄰的子塊,并保持子塊位置相對接近,為特征網絡關注細化區域的特征提供良好的基礎條件。 如圖3所示,當將圖片被分割為2×2個的子塊時,稱粒度等于2,此時交叉窗口較為特殊,其交換副對角線的子塊位置;當粒度n大于等于4時,其變換實質是對應交換了第1、第3的行和列;當粒度等于8時,交換第1、第5以及第3、第7位置的行列,往后類推。交叉窗口可以充分分離各個相鄰子塊。固定的生成序列也便于空間位置的重新還原。 圖3 交叉窗口部分粒度示意 在網絡訓練過程中,為了結合多種不同粒度的特征,在特征融合分支輸入由交叉窗口生成的不同粒度圖像特征,從而提取到n粒度圖像窗口輸入下網絡中S3、S4層產生的不同尺度特征值Fn,1,Fn,2,以及原始圖像訓練分支中對應層的特征值X1,X2。通過CBAM注意力模塊,可以得到相應注意力特征AFn,1,AFn,2,AX1,AX2,以這些不同尺度的特征向量為基礎進行融合。各個特征的生成關系如下式 AFn,m=CBAM(Fn,m)×Fn,m AXm=CBAM(Xm)×Xm(n=0,2,4,8;m=1,2,3) (6) 上述特征組成了特征融合模塊的基礎融合特征,由于交叉窗口對圖像內容進行了重新排列,所以特征的空間關注位置產生了錯亂,在進行融合特征之前,為了與原始特征的空間信息保持一致,再次使用交叉窗口重新還原空間位置,對齊不同粒度的特征信息,以求兩者結合形成新的注意力特征不存在內部空間混亂,如式(7)所示。特征融合模塊的具體結構如圖4所示。 圖4 特征融合模塊結構 如圖4所示,由不同粒度的交叉窗口會生成不同粒度的特征信息,與粒度圖像集成模塊的訓練進程相對應,本文從粒度為2,4,8的交叉窗口輸入下的模型中,提取第三第四層的粒度特征,作為之后融合特征模型細粒信息的主要來源。如圖4上方表示的是原始圖像特征的提取過程,其輸入為原始圖像,提取后三層全部特征,本文認為前兩層原始圖像特征包含一定粒度信息,可以與交叉窗口的粒度圖像特征兼容。最終獲得9個基礎特征,S3,S4層包括4個特征,S5層只包含原始圖像輸入下的特征,按層相互結合獲得信息更豐富的同尺度特征。 如圖將所有粒度的特征矩陣累加后經過CBAM模塊,生成新的注意力特征,與原始圖像注意力特征做內積,每一層特征處理使用的CBAM模塊參數共享。由此可以利用不同的粒度的關注區域指導網絡進行融合特征訓練,強化原始圖像中的細微特征值,完成粒度信息融合。最后將單維特征相互連接,完成不同尺度特征的融合。該特征由兩倍的交叉熵函數計算得到的損失作為特征融合模塊的參數訓練依據,以跟上訓練主體的參數更新速度。而測試階段則是將不同粒度特征的送入了由1×1卷積和最大池化層等下采樣工具組成的Downsample結構中,獲得相應的單維特征相加起來送入線性層,其中,卷積層達到了對特征進行降維的目的,池化層縮減了特征的尺寸,最終的輸出向量進行分類預測后達到的精度作為最終結果 AFn,m′=AFn,m·O(L) (7) (8) Cm=Max(conv(Am)) (9) Yi=Linear(concat(C1,C2,C3…)) (10) (11) 本節針對上一節提出的技術路線,使用Pytorch作為基礎的深度學習框架,并搭建了相應的模型,在幾個標準細粒度圖像數據集上評估了模型的性能。 本次實驗主要使用了3個常用的標準數據集,分別是CUB-200-2011鳥類數據集、FGVC Aircraft飛機數據集以及Stanford Cars車類數據集。各個數據集的詳細信息見表1。 表1 本文實驗數據集信息 實驗中使用pycharm開發工具,以ResNet50網絡模型作為各種為骨干網絡,使用預訓練模型對網絡進行初始化。統一輸入圖像尺寸使用中心裁剪為448×448的尺寸并進行隨機水平翻轉,使用只使用圖像本身以及圖像標簽。訓練過程中使用1張Tesla P100型號GPU,初始學習率設為0.001,使用動量參數為0.9的SGD優化器進行訓練,并利用余弦梯度下降法更新學習率,批次大小設為8,總共迭代150輪。 本文方法在3個數據集上,與目前主流細粒度圖像分類方法進行比較,從表2中可以看出,本文方法在各數據集圖像識別準確率上,與同樣使用ResNet50作為骨干網絡的先進方法達到了同一水準。并且優于部分以VGG-16作為骨干網絡的優秀模型。 表2 不同方法在不同數據集上的對比/% 如表2所示,本文結果對比基礎網絡有顯著提升,可見本文結構有效結合了顯著性多粒度多尺度的各種特征,最終獲得了信息豐富的表征特征。并且本文只使用了單一Resnet50以及3個輕量化注意力模塊,在基礎網絡的基礎上無需訓練額外的模型參數就可以端對端的實現同樣水準的分類精度。對比實驗結果,在各個數據集上相較于最新算法精確度都略有上升,對比基礎網絡提升更為顯著,驗證方案有效性。 為了驗證粒度圖像訓練以及特征融合模塊的有效性,本節在CUB-200-2011鳥類數據集上進行消融實驗。本文在粒度圖像訓練過程的細粒設置上,考慮了從粗粒度到細粒度以及從細粒度到粗粒度的兩種訓練方式,并分別進行了實驗,實驗結果見表3。本文主要使用2,4,8,16這4個粒度值進行實驗,因為更大的粒度設置,將不利于網絡從中獲得較為完整的特征區域。粗粒度到細粒度的訓練方式具體實施是通過逐漸增大粒度圖像生成模塊中的n值實現的,而細粒度到粗粒度則是將粒度值由大到小排列,訓練過程中,在第6次循環加入粒度圖像訓練分支,每一種粒度訓練30個輪次。特征融合分支中不加入粒度信息。本消融實驗中共訓練120輪。 表3 不同粒度設置方法的對比 首先,我們嘗試在粗粒度的基礎上逐漸增加一種粒度信息,由此可見,每加入一種粒度值,其精度都有一定提升,但是加入粒度過大的粒度圖像,例如粒度16的圖像信息參與訓練會使訓練準確度下降;其次,調換粗粒度和細粒度的參與順序,會降低準確度,且刪去粗粒度信息的影響比刪去細粒度信息對特征的影響更大。所以最終確定[2,4,8]的組合順序更適合作為本文模型的粒度圖像訓練模塊的輸入方式。并且,基于這個組合,本文相應再調整了每種粒度參與訓練的輪次,確認30輪次的參與數量是最佳方案。在確定粒度設置方式后,如表4所示,本文進一步探究了粒度圖像訓練分支、注意力機制,以及特征融合分支對整體模型的貢獻。 表4 不同模塊設置下的對比 由表4實驗結果可知,粒度圖像訓練和注意力機制可以直接提升初始網絡的訓練精度,其分別向網絡輸入了粒度性信息和顯著性信息,其中粒度圖像訓練過程對結果提升顯著,相較于基礎網絡提升了3.18%,驗證粒度信息對模型的增益巨大。特征融合分支建立在粒度圖像訓練的基礎上,對網絡中的粒度信息進行處理能將精度提高1%左右,結合注意力機制帶來的顯著性指導再次提升0.41%,最終整體實現識別率表現優秀。 針對目前圖像分類網絡通常只產生單一輸入圖像粒度特征的現狀,本文提出了一種學習逐漸細化粒度信息的分類網絡,獲得各粒度圖像的顯著性不同尺度特征通過各種方式在網絡中進行融合,在不需要額外模型參數訓練的情況下提高其識別準確度,并與目前先進方法達到了同樣的競爭力。為鳥類圖像分類特征融合提供了一種基礎特征,因此在未來的研究工作中,將進一步尋找更加高效的特征融合方式,以適應不同數據集特征。2.2 多粒度圖像訓練
2.3 多尺度多粒度圖像特征融合



3 實驗結果與對比分析
3.1 實驗數據集

3.2 實驗與結果分析

3.3 消融實驗


4 結束語