羅善威,陳 黎
(1.武漢科技大學計算機科學與技術學院,湖北 武漢,430065;2. 武漢科技大學智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,湖北 武漢,430065)
一般的監(jiān)督學習需要大量的樣本來對模型進行迭代訓練,但是很多特殊場景下的樣本是難以收集的,如醫(yī)療領域、安防領域等,因此,小樣本學習成為機器學習研究領域中亟待解決的熱點問題?,F(xiàn)階段小樣本學習方法主要分為三大類:①基于數(shù)據(jù)增強的方法。常用的數(shù)據(jù)增強技術通過對圖像進行旋轉、翻轉、平移和縮放等操作來實現(xiàn)訓練集的擴充。同時,研究人員也設計了各種新的數(shù)據(jù)增強策略[1-3]。②基于遷移學習的方法。遷移學習是把一個領域(源域)的知識遷移到另外一個領域(目標域),使得在目標域也能夠取得良好的學習效果。在遷移學習中需要解決的主要問題是領域自適應問題[4-5]。③基于元學習的方法。元學習具有學會學習的能力,即利用以往的知識和經(jīng)驗來指導新任務的學習,其主要方法之一為基于度量的元學習。度量學習的基本思想是學習數(shù)據(jù)之間的相似性,而孿生網(wǎng)絡(Siamese Network)在衡量兩個輸入的相似程度上具有優(yōu)勢,在深度學習相關領域取得了較好的應用效果。
Koch等[6]將孿生網(wǎng)絡應用于小樣本學習,孿生網(wǎng)絡的兩個子網(wǎng)絡共享權值,通過計算兩個輸入的相似度進行二分類。在圖像識別領域,Bertinetto等[7]通過構建一個學習網(wǎng)絡來對孿生網(wǎng)絡中的參數(shù)進行學習,并采用因子分解機來解決網(wǎng)絡參數(shù)過多的問題。在細粒度識別領域,細粒度的手動標記非常耗時且需要特定領域的廣泛專業(yè)知識,Yuan等[8]通過孿生網(wǎng)絡的二分類特性來解決細粒度識別中的標簽缺乏和樣本不均衡問題。對人體跌倒進行動作識別時,Droghini等[9]提出通過孿生網(wǎng)絡來計算不同事件類別信號之間的差異,并且在分類階段只需要使用一個人體跌倒信號作為模板。在自然語言處理中,O’Neill等[10]采用孿生網(wǎng)絡解決單詞的相關性問題,并同時運用了遷移學習策略。在半監(jiān)督學習領域,Motiian等[11]將孿生網(wǎng)絡與生成對抗網(wǎng)絡相結合,最大化不同類樣本在目標空間的差異,同時也最小化同類樣本在目標空間的差異。孿生網(wǎng)絡在目標跟蹤領域中的應用報道較多。Bertinetto等[12]對傳統(tǒng)孿生網(wǎng)絡中相似度計算方法進行改進,提出了新方法SiamFC,對參考圖像特征圖和場景圖像特征圖進行卷積計算來得到相似度矩陣。Li等[13]針對目標跟蹤中的精度問題和實時性問題,提出了新的孿生網(wǎng)絡結構SiamRPN,其包含用于特征提取的孿生網(wǎng)絡和候選區(qū)域生成網(wǎng)絡,后者由分類和回歸兩條分支組成。Wang等[14]提出用掩膜對目標進行跟蹤的SiamMask方法,該方法在SiamRPN的基礎上引入了Mask分支,通過掩膜生成旋轉框,從而提升目標跟蹤的精度。Li等[15]用更深的網(wǎng)絡結構去克服孿生網(wǎng)絡中平移不變性的限制,即提出一種基于層次的互相關操作特征聚集結構,該結構有助于模型從多個層次的特征中預判出相似度。
本文采用度量學習方法來解決小樣本學習問題,針對傳統(tǒng)孿生網(wǎng)絡難以確定目標定位的問題,為了同時提取目標的相似度特征和位置信息,提出一種基于雙重相似度(Double Similarity)計算和孿生網(wǎng)絡(Siamese Network)的小樣本實例分割模型(命名為DSSN)。DSSN將孿生網(wǎng)絡與殘差網(wǎng)絡相結合,并在特征相似度計算階段構建雙重相似度計算網(wǎng)絡來獲得特征圖的空域相似度和頻域相似度,然后將相似度特征圖輸入實例分割網(wǎng)絡獲得最后的分割結果。
DSSN模型有兩個輸入,分別是參考圖像和場景圖像,輸出為參考圖像所屬的類別在場景圖像中的邊界框和形狀掩碼。
本文算法結構如圖1所示,其采用孿生殘差網(wǎng)絡(Siamese ResNet-101)作為骨干網(wǎng)絡,對參考圖像和場景圖像進行特征提取。輸出每一個殘差塊(Residual Block)的計算結果,得到兩組不同的特征圖,分別對應于參考圖像和場景圖像。將這兩組特征圖輸入孿生特征金字塔得到語義更強的兩組特征圖,然后輸入到雙重相似度計算網(wǎng)絡對空域特征和頻域特征進行計算和融合。最后將得到的空域和頻域特征圖分別輸入實例分割階段的三個分支進行計算:區(qū)域提取網(wǎng)絡(RPN)、邊界框的分類和回歸(CLS+Bounding Box)以及掩碼分支(Mask)。
圖1 本文算法的網(wǎng)絡結構
本文骨干網(wǎng)絡Siamese ResNet-101以孿生網(wǎng)絡為基本結構,并將殘差網(wǎng)絡(ResNet-101)[16]作為基礎網(wǎng)絡。殘差網(wǎng)絡通過增加跳躍結構來直接連接淺層網(wǎng)絡與深層網(wǎng)絡,從而能夠有效解決隨著網(wǎng)絡層數(shù)的加深而導致的梯度彌散問題。
假設第一個殘差單元的輸入為xl,輸出為xl+1,則殘差單元的結構可以表示為:
xl+1=xl+F(xl,wl)
(1)
F(xl,wl)=wlσ(wl-1xl-1)
(2)
式中:F(xl,wl)代表卷積計算函數(shù);wl代表卷積層的參數(shù);σ(·)代表激活函數(shù)。所以對于任意單元xL,有:
(3)
假設損失函數(shù)為J,可以得到:
(4)
本文采用孿生特征金字塔(SFPN)來解決實例分割任務中常出現(xiàn)的多尺度問題。SFPN通過改變網(wǎng)絡連接,在基本不增加原有模型計算量的前提下大幅提升了模型性能。對于卷積神經(jīng)網(wǎng)絡而言,不同深度對應著不同層次的語義特征,低層特征語義信息比較少,但是對應的目標位置信息準確,高層特征語義信息比較豐富,但是對應的目標位置信息比較粗略,所以需要構建特征金字塔來對低層語義特征和高層語義特征進行融合。
如圖2所示,孿生特征金字塔提取孿生殘差網(wǎng)絡輸出的兩組特征圖,每組特征圖對應不同語義層次殘差塊的輸出。場景圖像和參考圖像對應的特征圖分別記為Ik和Rk(k=2,3,4,5)。將Ik和Rk分別轉化為結合上、下層語義特征的特征圖IFk和RFk(k=2,3,4,5,6)。孿生特征金字塔中上、下層語義特征結合的計算公式如下:
(5)
式中:conv代表卷積操作;sum代表元素的對位求和操作;upsample代表上采樣操作。RFk的計算公式同IFk。
圖2 孿生特征金字塔結構
雙重相似度計算網(wǎng)絡DSN中的兩個子網(wǎng)絡分別為空域相似度計算網(wǎng)絡和頻域相似度計算網(wǎng)絡。網(wǎng)絡的輸入為孿生特征金字塔所提取的語義特征圖IFk和RFk,輸出為相似度特征圖Pk。網(wǎng)絡結構如圖3所示。
圖3 雙重相似度計算網(wǎng)絡結構
(1) 空域和頻域特征提取
為了對空域相似度計算網(wǎng)絡和頻域相似度計算網(wǎng)絡的輸入進行不同語義特征的提取,本文采用卷積核大小為3×3的卷積層分別提取空域特征和頻域特征。
(2) 相似度計算方法
在空域相似度計算網(wǎng)絡中,先對參考圖像空域特征圖采用全局平均池化,然后通過兩個特征圖的空間距離來計算空域相似度。本文參照文獻[17],構建fσ(x1,x2)來計算空域相似度:
(6)
式中:x1代表場景圖像的空域特征圖;x2代表參考圖像的空域特征圖;σ代表scale參數(shù);d(x1,x2)代表x1與x2的空間距離,本文采用L1距離公式,即d(x1,x2)=|x1-x2|。
為了減少特征圖的噪聲和模型的計算量,本文采用TopK算法對空域相似度特征圖進一步提取,即選取K個均值最大的特征圖。
在頻域相似度計算網(wǎng)絡中,通過fφ(x1,x2)對場景圖像與參考圖像的頻域特征圖進行卷積計算,然后經(jīng)過一個卷積核大小為1×1的卷積層得到場景圖像與參考圖像的頻域相似度。fφ(x1,x2)計算公式如下:
fφ(x1,x2)=x2*x1
(7)
式中:x1代表場景圖像的頻域特征圖;x2代表參考圖像的頻域特征圖;*代表以x2為卷積核對x1進行卷積計算。
(3)相似度特征融合方法
在雙重相似度計算網(wǎng)絡的特征融合階段,本文采用的方法是將空間相似度和頻域相似度在特征通道這一維度上進行合并,并將合并后的特征圖進行卷積核大小為1×1的卷積計算,得到場景圖像與參考圖像的相似度特征圖Pk(k=2,3,4,5,6)。
DSSN模型中的實例分割網(wǎng)絡引入Mask R-CNN[18]中的區(qū)域提取網(wǎng)絡(RPN)、邊界框的分類和回歸(CLS+Bounding Box)以及掩碼分支(Mask)。
區(qū)域提取網(wǎng)絡(RPN)的輸入為特征金字塔輸出的特征圖,RPN的實質是通過計算得到不同尺度的候選框,并對候選框進行篩選。候選框的多尺度是通過Anchor來實現(xiàn)的。RPN基于Pk(k=2,3,4,5,6)這5個特征圖,通過前向傳播得到一個5n維的向量,這個向量代表5種不同尺度的Anchor,每種尺度又包含n個不同長寬比例的Anchor,每個Anchor的相關參數(shù)包括Δx、Δy、Δh、Δw、p,其中,Δx代表橫坐標相對于中心點的偏移,Δy代表縱坐標相對于中心點的偏移,Δh代表高度相對于原Anchor高度的偏移,Δw代表寬度相對于原Anchor寬度的偏移,p為前、后景置信度。Anchor的相關參數(shù)計算公式如下:
(8)
式中:(x,y)代表Anchor的中心坐標;w和h分別代表Anchor的寬和高。當Anchor修正完成后,會產(chǎn)生大量的Box,這時再根據(jù)每個Box的p值,使用非極大值抑制(NMS)算法即可過濾出較為精確的候選框。
獲取候選框之后,采用ROI Align算法直接從特征圖中裁剪出候選框對應位置的特征,并將特征變換為統(tǒng)一的尺度。ROI Align算法在池化過程中引入了雙線性插值,將原先離散的池化操作變?yōu)檫B續(xù)的,使得映射后的坐標值精度更高。
在得到候選框對應的同一尺度的特征圖后,將其輸入CLS、Bounding Box、Mask等分支進行后續(xù)的計算。對于CLS分支,通常采用全連接層和Softmax層來進行類別預測。對于Bounding Box分支,通常對每個類別都回歸得出一個5維向量的修正值,修正過程與式(8)一致。對于 Mask分支,根據(jù)得到的目標邊界框,通過全卷積神經(jīng)網(wǎng)絡(FCN)來得到目標更為精準的形狀掩碼信息。
DSSN模型的損失函數(shù)分別為:區(qū)域提取網(wǎng)絡的分類損失LRPN-cls、區(qū)域提取網(wǎng)絡的回歸損失LRPN-box、實例分割網(wǎng)絡的分類損失Lcls、實例分割網(wǎng)絡的回歸損失Lbox、實例分割網(wǎng)絡的分割損失Lmask。
由于模型在RPN網(wǎng)絡結構中會產(chǎn)生大量的背景目標而導致類別不平衡,所以本文將LRPN-cls設置為Focal Loss損失函數(shù)[19]。Focal Loss不僅可以解決正、負樣本的不均衡問題,還可以平衡簡單樣本和困難樣本,計算公式如下:
(9)
式中:y代表預測類別置信度;y*代表標簽類別;α代表平衡因子;γ用于調節(jié)簡單樣本權重降低的速率,當γ=0時,LRPN-cls即為交叉熵損失函數(shù),當γ增加時,調整因子(1-y)γ和yγ的影響也在增加。本文中設α=0.8、γ=2。
Lcls為二元交叉熵損失函數(shù),計算公式如下:
Lcls(y,y*)=
-[y*log(y)+(1-y*)log(1-y)]
(10)
LRPN-box與Lbox的計算公式相同,如下所示:
LRPN-box(t,t*)=Lbox(t,t*)=
(11)
(12)
式中:t代表預測邊界框;t*代表標簽邊界框;(x,y)代表邊界框的中心點;(w,h)代表邊界框的寬和高。
Lmask的計算公式如下:
(13)
式中:y代表分割結果圖;y*代表分割標簽圖;(i,j)代表在分割圖上的每一個像素點的坐標。
模型總的損失函數(shù)為LRPN-cls、LRPN-box、Lcls、Lbox、Lmask的加權和:
Ltotal=2LRPN-cls+0.1LRPN-box+
2Lcls+0.5Lbox+Lmask
(14)
本文實驗采用微軟公司發(fā)布的COCO數(shù)據(jù)集。COCO數(shù)據(jù)集包含20多萬張標注圖片,超過150萬個對象實例,總計80個類別。本文將其中60個類別用于訓練模型,另外20個類別用于檢驗模型的小樣本實例分割性能。為了盡可能減少在對類別進行分配時所造成的隨機誤差,本文對COCO數(shù)據(jù)集中的80個類別進行3次隨機分配,得到不同的3組訓練集和驗證集。驗證集分別記為S1、S2、S3。
為了定量評估本文算法,采用COCO數(shù)據(jù)集中的通用指標mAP來客觀評價實例分割效果, mAP值越大,表明算法的分割效果越好。
本文算法的實驗環(huán)境詳細信息如下:
(1)硬件設備: CPU Intel Core i7-8700K;內存16 GB;GPU Nvidia GeForce GTX 1080Ti。
(2)軟件設備: 操作系統(tǒng)64位Windows 10;Python 3.5;CUDA Toolkit 9.0;深度學習框架TensorFlow 1.8。
為了驗證基于空域特征和頻域特征相結合的相似度計算方法的有效性,在3組不同的數(shù)據(jù)集上進行測試,并與其他幾種相似度計算方法進行了對比,包括:
(1) 基于空域特征的方法(SSSN):計算場景圖像特征圖與參考圖像特征圖在空間上的差異性,通過歐氏距離來對特征圖的相似性進行度量。
(2) 基于頻域特征的方法(FSSN):計算場景圖像特征圖和參考圖像特征圖在頻域上的差異性,通過卷積計算方法來對特征圖的相似性進行度量,即將參考圖像的特征圖作為卷積核對場景圖像的特征圖進行卷積計算。
表1給出了不同相似度計算方法的實例分割性能指標mAP。由表1可知,基于單一的空域特征或頻域特征的相似度計算方法的mAP值均低于本文方法對應值。相比于SSSN和FSSN,本文方法在3組數(shù)據(jù)集上的mAP平均值分別提升了22.6%和18.2%。
表1 不同相似度計算方法的性能比較
Table 1 Performance comparison of different similarity computing methods
相似度計算方法mAPS1S2S3平均SSSN0.1390.1620.1770.159FSSN0.1430.1660.1850.165DSSN0.1620.2120.2110.195
為了驗證本文DSSN模型網(wǎng)絡結構中雙重相似度計算階段所提取的空域和頻域特征的有效性,在3組數(shù)據(jù)集上進行特征提取層的性能對比。本實驗比較了4種不同的特征提取方法,分別為:不采用卷積層 (DSSN-v0)、采用1×1的卷積核 (DSSN-v1)、采用3×3的卷積核 (DSSN-v3)和采用5×5的卷積核(DSSN-v5)。
表2給出了采用不同卷積層時DSSN模型的實例分割性能指標mAP。由表2可知,采用3×3的卷積核對場景圖像和參考圖像特征圖進行卷積操作能有效提升模型的實例分割性能。與DSSN-v0、DSSN-v1、DSSN-v5相比,DSSN-v3的mAP平均值分別提升了12.1%、5.4%、10.8%
表2 不同特征提取方法的性能比較
Table 2 Performance comparison of different feature extracting methods
特征提取方法mAPS1S2S3平均DSSN-v00.1550.1770.1910.174DSSN-v10.1590.1920.2050.185DSSN-v30.1620.2120.2110.195DSSN-v50.1490.1780.2020.176
為了驗證本文提出的相似度特征融合方法的有效性,在3組數(shù)據(jù)集上進行測試,并與另外一種常見的特征融合方法進行對比,該方法是對空域特征圖和頻域特征圖進行簡單相加求和,記為DSSN-A。
表3給出了兩種相似度特征融合方法的性能比較,可以看出,相比于DSSN-A,本文方法在小樣本實例分割中的性能更優(yōu),mAP平均值提升了6.0%。
表3 不同特征融合方法的性能比較
Table 3 Performance comparison of different feature fusion methods
相似度特征融合方法mAPS1S2S3平均DSSN-A0.1610.1900.2010.184DSSN0.1620.2120.2110.195
為了更加客觀地評價本文算法的性能,表4給出了本文方法、Mask R-CNN[18]和Siamese Mask R-CNN[20]方法在數(shù)據(jù)集S1、S2、S3上的實例分割性能指標mAP。
在表4中,F(xiàn)PN代表在骨干網(wǎng)絡后面加入特征金字塔,SFPN代表在骨干網(wǎng)絡后面加入孿生特征金字塔。由實驗結果得知,在引入Siamese RestNet-101 SFPN作為骨干網(wǎng)絡的情況下,本文模型DSSN在3組數(shù)據(jù)集上的mAP指標相比于Mask R-CNN模型平均提升了38.3%,相比于Siamese Mask R-CNN模型平均提升了30%。并且,在孿生殘差網(wǎng)絡后沒有加入特征金字塔時,本文模型DSSN也優(yōu)于其他兩種模型。
表4 不同方法的小樣本實例分割性能對比
圖4所示為3種方法在S1數(shù)據(jù)集上的實例分割結果。由圖4可知,對于密度較大的目標,本文模型DSSN比其他兩種模型具有更好的分割效果,并且在目標邊緣的分割上也更加精細。
圖4 不同方法的實例分割結果
本文提出了一種基于雙重相似度孿生網(wǎng)絡的小樣本實例分割方法,使用孿生殘差網(wǎng)絡結構作為骨干網(wǎng)絡,融合不同尺度的低層和高層特征語義信息,對參考圖像特征圖和場景圖像特征圖的空域相似度和頻域相似度進行計算和合并,同時得到兩個輸入之間的相似度特征和參考圖像在場景圖像中的位置信息,最后通過實例分割網(wǎng)絡得到分割結果。實驗結果證明了本文方法在小樣本數(shù)據(jù)集上比其他對比算法具有更好的實例分割性能。