徐瑩珩,鐘躍崎,2
(1.東華大學 紡織學院,上海 201620; 2.東華大學 紡織面料技術教育部重點實驗室,上海 201620)
近年來,隨著服裝設計行業(yè)的蓬勃發(fā)展,時裝圖像的視覺分析引起了越來越多的關注。 其中,服裝圖像的細粒度分割任務有助于統(tǒng)一服裝屬性的分類和細分。一方面,服裝圖像的精確細分可以更好地獲得消費者的穿著偏好,從而更好地滿足消費者的品味并提高時尚設計的針對性。 另一方面,消費者可以更好地了解服裝信息以及不同服裝部件之間的聯(lián)系,增強購物體驗。
自2012年AlexNet研究[1]以來,深度學習算法得到了快速發(fā)展。與傳統(tǒng)的機器學習方法,如隨機森林(Random Forest)、支持向量機(Support Vector Machine)和條件隨機場(Conditional Random Field)相比,深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Networks, DCNN)顯示了強大的特征提取和表征能力。然而,此類圖像分割方法,特別是基于全卷積網(wǎng)絡(Fully Convolutional Networks, FCN)[2]的方法,雖然取得了很大進展,但是由于網(wǎng)絡結構的固定,F(xiàn)CN無法充分理解空間上下文信息,使得最終使用上采樣(Upsampling)將特征圖還原到原始圖像大小時,會導致像素定位不準確,分割效果不佳。
為了解決該問題,本文在經(jīng)典的圖像分割網(wǎng)絡Mask-RCNN[3]的基礎上,添加了一種雙通路的非局部的注意力機制[4],可用于對時裝圖像進行細粒度的實例分割,將其稱為MA-Mask-RCNN(Multi Attention Mask-RCNN)網(wǎng)絡。
圖像中每個像素點都與周圍像素有一定的關聯(lián),大量像素間的互相聯(lián)系定義了圖像中的各種對象。上下文(context)特征就是一個像素及其周邊像素間的某種聯(lián)系。圖像的實例分割,其實質是對圖像中每個像素點進行分類。為了提高深度神經(jīng)網(wǎng)絡對圖像的理解,提高網(wǎng)絡獲取上下文信息的能力,從而提高分割網(wǎng)絡的分割能力,前人提出了許多方法。
第1種方法是DeeplabV2[5]和DeeplabV3[6]網(wǎng)絡,包含由空洞卷積組成的空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)結構。該結構通過空洞卷積提高卷積核的感受野,可以獲取不同尺度下的上下文信息。而在PSPNet[7]中,使用了金字塔池化結構(Pyramid Pooling Module,PPM),該結構可生成4個不同比例尺的特征圖,之后再通過上采樣和按位加法運算,獲得包含足夠上下文信息的特征圖用于實例分割。與之類似的分割網(wǎng)絡還有很多,包括Unet[8],RefineNet[9],DFN[10],SegNet[11],Deeplabv3+[12],SPGNet[13]等使用編碼-解碼結構(Encoding-Decoding)來恢復圖像中的位置信息,同時保留高級語義特征,提升分割效果。而在GCN[14]中,則使用了圖卷積和全局池化來獲取全局上下文信息。
第2種方法是利用循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)可以捕獲長距離像素之間依存關系的特征,但是這種關聯(lián)通常受到RNN的長期存儲能力的限制,通常會消耗大量時間和算力。
注意力機制(attention mechanism)廣泛用于機器翻譯,場景識別和語義分割中。非局部注意力機制(non-local attention mechanism)將自我注意力(self-attention)機制作為子模塊添加到機器視覺任務中,以進行視頻分類,目標檢測和實例分割。CCNet[15]、DANet[16]和HMANet[17]分別改進了非局部注意力機制,并設計了單通道、雙通道和三通道的不同注意力模塊,將其用于航空影像的全景分割。其中,CCNet提出了Criss-Cross模塊,解決了注意力機制中參數(shù)量過大的問題。通過2個串行Criss-Cross模塊組成循環(huán)十字串行注意力模塊(Recurrent Criss-Cross Attention, RCCA),可獲取全圖的空間上下文信息。DANet使用了通道注意力模塊和位置注意力模塊并行的結構,可以學習到多種上下文信息。HMANet構造了一個復合網(wǎng)絡結構。將類別的增強注意力模塊(Class Augmented Attention,CAA)和區(qū)域改組注意力模塊(Region Shuffle Attention,RSA)并行連接后,與輸入的原始特征圖組合起來,構成了混合多重注意力模塊,從而實現(xiàn)多種上下文信息的融合。
注意力機制可以提升神經(jīng)網(wǎng)絡對圖像的理解能力,有利于提取圖像中的深度特征,提升服裝圖像細微部分的分割能力。但是目前的注意力機制更多的關注于如衛(wèi)星云圖、地形地勢圖等大型場景,對于服裝圖像而言,尚沒有一種合適的網(wǎng)絡可用于細粒度的分割。
為了解決目前分割在服裝細微部件上分割精度低的問題,本文在經(jīng)典的圖像分割網(wǎng)絡Mask-RCNN[13]的基礎上,添加了一種雙通路的非局部的注意力機制[14],可用于對時裝圖像進行細粒度的實例分割,將其稱為MA-Mask-RCNN(Multi Attention Mask-RCNN)網(wǎng)絡。
首先將服裝圖像輸入MA-Mask-RCNN,再通過骨干網(wǎng)絡進行特征提取,之后通過多重注意力機制,訓練神經(jīng)網(wǎng)絡去學習上下文信息,接著將所得特征圖發(fā)送到區(qū)域生成網(wǎng)絡(Region Proposal Network,RPN)中生成候選框,最后在原始圖像的基礎上進行實例分割。換言之,MA-Mask-RCNN分3個階段完成圖像的細粒度實例分割:
①將原始圖像輸入到特征提取骨干網(wǎng)絡ResNet中進行特征提取,得到特征圖X。
②將所提取的特征圖發(fā)送到通道注意力和位置注意力2個網(wǎng)絡分支中獲取包含上下文信息的特征圖,對該特征圖中的像素按位相加,可獲得具有上下文信息的特征圖X′。同時,另一支路通過特征Mask-RCNN自帶的金字塔模塊(Feature Pyramid Networks,F(xiàn)PN),之后將2個支路得到的特征圖按像素相加,得到包含多重上下文信息的注意力特征圖X″。
③將得到的特征圖X″輸入Mask-RCNN網(wǎng)絡的頭部即可完成分類、回歸和掩碼操作。
參考非局部注意力機制設計了一個細粒度的實例分割網(wǎng)絡MA-Mask-RCNN,如圖1所示。并行結構的注意力模塊由上層位置注意力模塊(Position Attention Module,PAM)和下層通道注意力模塊(Channel Attention Module,CAM)構成。其中,PAM模塊旨在從特征圖中的提取基于類的相關性,而CAM模塊則通過類通道的加權來改善特征重建的過程,以獲得更好的上下文表達。特別地,在PAM模塊中用CCNet中的Criss-Cross Attention模塊代替了傳統(tǒng)的非局部注意力模塊,從而減少網(wǎng)絡參數(shù)的數(shù)量,降低計算復雜性,同時從同一通道的不同位置中學習全局上下文信息。
圖1 MA-Mask-RCNN的結構
如圖1所示,經(jīng)過骨干網(wǎng)絡提取的特征圖X,輸入PAM和CAM模塊,分別得到包含位置、通道上下文信息的特征圖D,并將其接位相加得到X′,同時將特征圖X輸入FPN模塊中構成完整的多重注意力模塊(Multiple Attention Module),并將這2個部分的輸出按位相加,以獲得充分學習了上下文信息的特征圖X″,然后將該特征圖送入RPN模塊得到目標框的位置,最后輸入FCN和CNN以輸出最終的分割圖。
本文選擇ResNet101[18]作為特征提取的骨干網(wǎng)絡。該網(wǎng)絡可以通過殘差連接結構提取大量有效特征,在具體實現(xiàn)時,還需為ResNet增加空洞卷積以提高卷積核的感受野。同時,作為特征提取器,刪除了最后的全連接層。輸出特征圖X,其尺寸為原始圖像的1/8。將X通過1×1卷積層后,送入雙分支注意力模塊。
非局部注意力旨在給出空間某處的像素與空間中其余像素之間的聯(lián)系:
(1)
式中:x為輸入的任意位置像素點,y是輸出,i表示當前位置的響應,j表示全局響應。xi是一個向量,其維度與x的通道數(shù)一致,而函數(shù)f(xi,xj)則是用于計算xi與xj之間的相似關系。函數(shù)g(xj)=Wgxj為一元映射,其中Wg是需要神經(jīng)網(wǎng)絡學習的權重矩陣,可以通過1×1的卷積實現(xiàn),而式(1)中的C(x)則是歸一化函數(shù)。
從式(1)可以看出,為了計算輸出層的一個像素點,需要將輸入圖像的每個像素點都加以考慮。f(xi,xj)可選擇使用高斯函數(shù)、嵌入式高斯函數(shù)、向量點積和串聯(lián)函數(shù)等形式。在具體實現(xiàn)時,本文選擇使用高斯函數(shù)來計算xi與xj之間的相似性:
f(xi,xj)=exiΤxj
(2)
3.3.1 通道注意力模塊(CAM)
通道注意力模塊的結構如圖2所示,輸入為特征圖X。
圖2 通道注意力模塊的結構
對輸入CAM的特征圖X∈C×H×W,通過變形(reshape)和轉置,分別生成新的特征圖A∈C×N和AΤ∈N×C,其中N=H×W,然后將A和AΤ經(jīng)過乘法(?)運算為新的特征張量,送入Softmax層得到通道注意力特征圖B∈C×C:
(3)
式中:Bij表示第i個通道對第j個通道的影響。為了將其還原至與X相同的維度,將B與X做矩陣乘法,并將其維度變形為C×H×W,最后再與X按位相加,得到D∈C×H×W:
(4)
式中:Xi和Xj分別為第i和第j個通道的特征圖,β是一個可學習的參數(shù)(初始值為0)。由式(4)可知,每個通道的最終的特征是所有通道的特征與原始特征的加權和,這確定了不同通道特征圖(Xi和Xj)之間的長距離相關性,有助于區(qū)別不同類別的特征。
3.3.2 位置注意力模塊(PAM)
區(qū)分不同特征的重點是對場景的理解,捕獲更多上下文信息尤為重要。然而,在傳統(tǒng)的FCN中,當特征被提取和分類時,一些局部特征會導致錯誤的分類,從而影響分割效果。
PAM旨在利用整個圖像中任意2個點之間的關聯(lián)來增強其各自特征的表達,并利用非局部注意力模塊使圖像中的任一像素與圖像中的其他像素建立遠程依賴關系。這使得網(wǎng)絡不僅可以學習局部特征,還可以捕獲全局空間上下文信息。PAM的結構如圖3所示。由骨架網(wǎng)絡輸出的特征圖X,再通過3個1×1的卷積之后,輸出Q∈C′×H×W,K∈C′×H×W,V∈C×H×W,其中C′ 圖3 位置注意力模塊的結構 給定Q上任意位置的像素u,可以得到向量Qu∈C′,由于Q與K均定義在H×W的區(qū)域上,因此在K中可以得到與u同一行或同一列的特征向量Ku∈(H+W-1)×C′。其中,特征向量Ku中的第i個元素為Ki,u∈C′,由此定義Affinity操作如下: (5) bi,u∈B建立了圖3中十字區(qū)域內像素間的聯(lián)系,其中i=[1,2,…,H+W-1]。 同理,對于V中任意位置的像素u,可以得到向量Vu∈C,以及V中與像素u位置同一行或同一列的特征向量φu∈(H+W-1)×C,與B做矩陣乘法運算,并將維度變形到C×H×W,再與X按位相加,最終輸出D∈C×H×W: (6) 式中:Du是D∈C×H×W在u處的特征向量,Bi,u是在特征圖B上i通道u處的標量。 經(jīng)過一次PAM后,可學習到十字區(qū)域的上下文信息。而為了學習到全圖的上下文信息,還需要再做一次PAM。這種設計在學習全圖的上下文信息的同時,減少了網(wǎng)絡的參數(shù),減輕了算力的負擔。 3.3.3 特征融合 為了充分利用長距離上下文信息,將CAM和PAM獲得的特征圖逐像素相加,以完成特征融合,得到特征圖X′。為了將輸出的X′與FPN提取的多尺度特征圖P融合,對X′進行下采樣操作,得到不同尺度的X′。如圖4所示,從FPN提取的多尺度特征圖P和注意力模塊輸出的特征圖X′執(zhí)行按位相加運算,得到特征圖X″。 圖4 FPN網(wǎng)絡與注意力模塊特征融合 如圖4所示,將X″發(fā)送到感興趣區(qū)域對其(Regions of Interest,ROI Align)以生成感興趣區(qū)域,然后將其分為2支,分別發(fā)送到FCN以獲取掩碼(Mask)以及用于分類和回歸的CNN中,從而完成分割,分類和回歸。 實驗中使用的是Kaggle競賽中的Imaterialist-fashion(2019)[19]數(shù)據(jù)集,其中的數(shù)據(jù)來自于日常生活、名人活動和在線購物場景,共計50 000張服裝圖像,包含46種服裝類別,其中每件服裝至多包含19個服裝部件(如衣領,袖口,口袋等)。為訓練和驗證MA-Mask-RCNN的性能,將其中40 000張用于訓練集,10 000張用于測試集。 鑒于每張圖像都包含多個重疊的類別目標,因此除了評估模型的預測框和掩碼,還必須評估分類效果,故使用掩碼的mAP(平均精度)值來評估MA-Mask-RCNN網(wǎng)絡對服裝圖像的細分能力。 本文所有實驗均在一臺搭載Intel i7 8700f,3.7 GHz CPU,8 G內存,和一塊顯存為12 G的NVIDIA GeForce RTX 2080ti顯卡的PC機上進行,并使用PyTorch深度學習框架驗證算法的性能和計算效率。 訓練時,使用在mmdetection框架下發(fā)布的預訓練權重。為了防止過擬合,采用學習率衰減的方法,將初始學習率設置為0.002 5,并在完成第8次和第11個輪次(epoch)后,將此時學習率乘以0.8進行衰減。優(yōu)化器采用動量梯度下降法(動量為0.9,將權重衰減系數(shù)為0.000 1)。同時,使用Inplace-ABNsync[20]代替ResNet網(wǎng)絡中的Batch Norm層,以節(jié)省內存并避免在訓練或驗證數(shù)據(jù)時出現(xiàn)梯度爆炸。每5個輪次執(zhí)行一次驗證集驗證,總共訓練12個輪次。在完成訓練之后,在測試集上測試網(wǎng)絡的相關性能表現(xiàn)。 使用MS-RCNN[21]和Hybird Cascade Mask RCNN(HTC)[22]作為對照,并選擇Mask-RCNN作為基線網(wǎng)絡。 4.4.1 對照實驗 本文提出的MA-Mask-RCNN消融實驗結果如表1所示。 表1 在驗證集上的消融實驗 由表1可以看出,僅添加位置注意模塊,Mask RCNN的性能已有一定程度的提高,其mAP增加了約2%。僅添加通道注意力模塊時,其可以將Mask RCNN的mAP提高0.8%。與Mask RCNN相比,已取得了進步。此外,將2個注意力模塊整合在一起后,網(wǎng)絡性能將進一步提高2.2%。此外,實驗還比較了基于Mask RCNN的其他改進網(wǎng)絡的分割性能。表2比較了Mask RCNN,MS-RCNN和HTC的分割效果??梢钥吹?,添加注意力機制后,mAP增加了2.2%,這與MSR-CNN分割性能相近。暗示級聯(lián)結構的網(wǎng)絡性能可能比直接串行連接的網(wǎng)絡更好,原因可能在于直接串行連接時,該注意力范圍所指示的區(qū)域,并不利于類別信息的提取。 表2 與現(xiàn)有方法的對照實驗 由表2可以清楚地看到,添加注意力模塊后,MA-Mask-RCNN網(wǎng)絡與基線網(wǎng)絡相比,APm的結果增加了2%,與MS-RCNN的分割能力相似。此外, HTC網(wǎng)絡獲得了最高的APm,這表明選擇骨干網(wǎng)絡和網(wǎng)絡的級聯(lián)結構確實可以增強網(wǎng)絡的學習能力和分割能力。 4.4.2 實驗可視化 圖5~9展示了MA-Mask-RCNN和基線網(wǎng)絡之間所進行的定性比較。圖中(a)~(c)分別為原始圖像、基線網(wǎng)絡分割結果和本文提出的MA-Mask-RCNN實例分割的結果,并使用紅色的虛線框來標記難以分類的衣服邊緣,如衣服的邊緣或袖口等位置。 圖5 服裝衣領細粒度分割效果對比 圖6 服裝輪廓細粒度分割效果對比 圖7 細小服裝部件細粒度分割效果對比1 圖8 細小服裝部件細粒度分割效果對比2 圖9 服裝邊緣細粒度分割效果對比 很顯然,紅色矩形框選中了衣領、褶皺、帽子、鞋子等難以分割的細微服裝部件。本文提出的MA-Mask-RCNN網(wǎng)絡完美地還原了細分的細節(jié),而基線網(wǎng)絡在細分某些細微零件時存在很大缺陷。這說明MA-Mask-RCNN可以更準確地預測分割圖,獲取更精細的邊界信息并保持對象連續(xù)性,證明了學習上下文信息有助于服裝邊緣的分割。 針對服裝圖像的密集預測和實例分割的任務,本文提出了一種新穎的基于注意力的框架,即多重注意Mask-RCNN(MA-Mask-RCNN),該框架可以從空間和通道的尺度捕獲全局的上下文信息。實驗結果表明,基于MA-Mask-RCNN的模型在服裝分割任務中取得了良好的效果,并優(yōu)于目前使用最多的Mask-RCNN網(wǎng)絡。 未來還可針對以下2點進行優(yōu)化:①對于改進的MA-Mask-RCNN,可以借鑒MS-RCNN,對Mask分支添加評分機制,分別獲得Mask的得分,以提高網(wǎng)絡掩碼的訓練效果,加速收斂并獲得更好的分割效果。②可以使用級聯(lián)連接代替直接連接,網(wǎng)絡的分割效果可能會提升。4 實驗部分
4.1 數(shù)據(jù)集
4.2 測試指標
4.3 實驗細節(jié)
4.4 Imaterialist數(shù)據(jù)集上的實驗
5 結論與展望