范馨月,鮑泓,潘衛國
(1.北京聯合大學 北京市信息服務工程重點實驗室,北京 100101;2.北京聯合大學 機器人學院,北京 100027)
隨著深度卷積神經網絡的發展,基于深度學習的實例分割算法[1]在類別分布相對均衡的數據集上取得了較大的成功,如數據集COCO(Common Objects in Context)。然而,現實生活中的數據往往呈現長尾分布規律,在自然方式采集的數據集中少數的頻繁類數據提供了足夠多的圖像樣本,而大量的稀有類數據在數據集中可能被有限的樣本所代表。
早期解決數據不平衡的研究主要使用單階段模型[2],由于缺乏根本上的策略設計,這種方法沒有取得理想的效果。文獻[3]采用重采樣技術隨機添加與刪除稀有類與頻繁類數據使類別數量實現平衡,然而該方法易丟棄一些有用的潛在信息或增大過擬合的可能性?;诩蓪W習的方法可以通過修改現有的分類算法使其適用于長尾數據集,具有代表性的方法有:基于Bagging[4]的方法,該方法提升了機器學習算法的穩定性與準確性,但僅在基本分類器效果很好時才有效,否則會進一步降低分割效果;基于Boosting 的方法可以較好地泛化,但是對噪聲數據和異常值都很敏感。
研究人員運用數據驅動方法來解決此類問題,文獻[5]首先在傳統的數據驅動方法基礎上提出了自動增強方法,通過對圖像中的目標進行幾何增強和顏色增強取得了較好的效果,但是其繁重的計算成本與對目標尺寸的忽略導致了其實用性較差與魯棒性較低。文獻[6]在自動增強的基礎上增加了目標擴充區域并制定了不同目標下的增強策略,但消耗了大量時間與空間,精確度提升不高。
重采樣操作在早期研究中包括稀有類的過采樣[4]和頻繁類的欠采樣[7],但其本質都是根據樣本數量對不同類別的圖片采樣頻率進行反向加權。近年來最常使用的策略為類均衡采樣[8-9]。文獻[8-9]的研究發現,對于任何類別不均衡數據集再平衡的本質都是對分類器的再平衡,即在類別不平衡的情況下學習特征提取的骨干網絡,而在數據集類別重新平衡的情況下進行分類器的學習。本質上,稀有類數據的特征依舊會過擬合,而頻繁類數據會欠擬合,不能規避特征提取網絡提取稀有類數據特征單一性的缺點。
本文提出一種新的圖像實例分割方法。通過對各類別中不同尺寸的圖像目標進行基于目標級的增廣操作,并在訓練中使用重采樣方法提升稀有類數據的采樣頻率,增加網絡的魯棒性,從而使神經網絡更好地提取目標特征。同時,將目標級數據驅動方法與均等化損失函數方法相結合,以解決實例分割中的長尾分布問題。
隨著深度學習的研究與發展,數據增強已被廣泛應用于神經網絡的優化,而且在實例分割任務中取得了很好的效果。多數用于圖像分割任務中的數據增強方法都是通過人工進行設計的,傳統的方法分為幾何變換[4-5](例如裁剪縮放、移動填充)、色彩空間轉換(例如RGB、HSV、Lab)、像素處理(例如模糊銳化、圖像混合[10])等方法,但是使用這些方法需要足夠的專業知識且耗費時間。Mixup[11]在成對樣本及其標簽的凸組合上訓練神經網絡,有效地減少對錯誤標簽的記憶,增加對抗樣本的魯棒性。文獻[12]通過采用自動搜索方式改進數據增強策略。文獻[13]應用貝葉斯優化來學習數據增強策略并取得了較好的效果?;谏鲜鲅芯?,可以得出多尺度方法[14]能夠在圖像細節提升中起到關鍵的作用。Sniper[15]通過縮放特定的上下文區域,在保證裁剪尺度不變性的同時提升了訓練速度。Stitcher[16]通過將圖像調整為小尺寸的分量而后將這些分量拼接為與常規圖像相同的尺寸,避免了小目標所受的損失。
上述數據增強方法都取得了一定的效果,但都是對圖像整體進行操作,而不是針對圖像中具體的目標進行操作,忽略了圖像中目標尺度層次的多樣性。
重加權的基本思想是為不同的訓練樣本分配權重以解決訓練過程中頻繁類占據主導的問題。在神經網絡中主要體現在分類的損失函數[17]上,其基本計算方法如下:

其中:zi代表網絡輸出的分類評定模型;β代表重加權的權重。理論上,當f(·)、g(·)是單調遞增函數 時,都可以使分類器起到重加權的效果。
文獻[2]基于改變新增樣本數量帶來遞減收益的情況,設計一個更優的重加權方法,取得了較好的長尾分類效果。文獻[18]對文獻[2]方法進行改進,提出一個條件權重用來優化平衡數據集上的結果。文獻[19]通過為少數類提供更高的權重分配標簽以支持少數類,平衡了頻繁類和稀有類間的泛化錯誤。文獻[20]指出在softmax 函數中隨機丟棄一些稀有類可以有效地提升網絡對于目標識別的魯棒性,減少頻繁類和稀有類之間的混淆。文獻[21]基于貝葉斯不確定性修改損失函數。文獻[22]提出了兩個新的損失函數來平衡梯度流。文獻[23]改進了原本交叉熵損失函數使用的二進制類別,運用一種連續型標簽判斷正負樣本。這些方法都幫助模型更好地平衡不同的類別,但都忽略了圖像中前景類別不平衡的問題,沒有考慮到前景類別均衡的重要性,效果較差。
本文方法操作流程如圖1 所示。首先使用基于目標尺度的數據增廣方法對數據集進行處理,以達到擴充訓練樣本的目的;然后對稀有類數據進行重采樣,用以解決稀有類的類別數據量過小的問題,從而提升模型在長尾數據集的魯棒性;最后將均等化損失函數融入Mask R-CNN 實例分割網絡,以降低頻繁類的數據特征對稀有類數據特征的抑制性。

圖1 數據驅動的實例分割流程Fig.1 Instance splitting procedure of data-driven
自動增強方法一般通過設置操作空間、搜索函數、操作評估3 個主要部分實現數據集的自動增強。為解決以往自動增強方法對圖像尺寸適應性差與圖像目標定位不清晰的問題,本文使用圖像增強處理與目標處理實現數據集的自動增強。
圖像增強處理首先對圖片進行整體的放縮處理,采集放縮后的兩張圖像及原圖的目標像素,將得到的3 組像素進行合成處理后對圖像中的目標進行幾何變換和色彩空間轉換。目標處理通過將高斯映射應用到目標框增廣的方法,用以軟化邊界間隙,同時,設置參數r(Sframe)對目標進行尺寸適應性增廣,使增廣面積適配于目標的面積。
圖像增強處理:為了使神經網絡適應不同的圖像尺度,通常使用圖像金字塔對實例分割模型進行訓練。但是由于這些比例的設置及其依賴手工設置的參數,因此本文對圖像進行縮放處理來降低網絡對參數的依賴性。設置縮放概率Pen、Pre在0.0~0.5范圍內,縮放幅度L在0.5~1.5 之間以保證原圖存在的概率。為避免大尺寸圖像給計算機帶來額外的負擔,對經過放大函數處理后的圖像進行保留原始形狀并隨機裁剪至原來大小的操作。縮放操作結束后從放大、縮小、原圖3 個分辨率中取樣。
目標處理:為了避免以前工作中目標級增強方法在整個邊界框注釋中延伸較多導致增強區域與原始區域間隙較大,以及過大的圖像外觀變化降低網絡對于增強對象的定位,使得訓練和驗證之間差距較大的問題,本文將高斯映射融入到目標框增廣中,通過軟化邊界間隙解決上述問題。通過混合原始像素與空間高斯映射變化后的像素得到增廣區域E,如式(3)所示:

其中:I為輸入函數;F為變換函數;E為增廣區域。在上述的目標處理中沒有考慮到感受野和目標尺度對神經網絡的影響。很多研究人員認為神經網絡在很大程度上依賴于上下文信息對物體進行識別,然而在研究中發現,它的效果更大程度上隨物體尺度的變化而變化,這個可以從Faster R-CNN[24]和RetinaNet[25]得到證明。圖像增強與目標處理示意圖如圖2 所示。

圖2 圖像增強及目標處理示意圖Fig.2 Schematic diagram of image augmentation and object processing
在去掉所有上下文信息的COCO 驗證集上進行測試時,發現它對小目標識別的準確率大幅下降,相比之下,對于大目標、中目標識別的準確率有一定幅度的提升。實驗結果表明,僅在目標內部/外部進行增強無法處理所有尺度的圖像。
為此,本文引入一個用于搜索的參數r(Sframe)對圖像目標進行高斯映射,使增廣面積適配于對象的面積。增廣面積的計算方法為:給出圖片尺寸H×W及標注框,標注框(xc,yc,h,w)可以用中心點(xc,yc)以及長寬比h/w表示,可得擴充高斯區域S。
將高斯映射用公式表示為:

增廣面積可定義為高斯映射的積分:

最后可得參數面積比r(Sframe),如式(6)所示:

其中:面積比r(Sframe)代表目標面積與目標框面積的比例大小。本文設置P和M分別代表放縮函數的概率和幅度。
在目標處理中,根據參數面積比r(Sframe)對圖像中的小目標(r(Sframe)>1)、中目標(r(Sframe)=1)、大目標(r(Sframe)<1)進行搜索,如圖3 所示。其中,實線框代表目標框,虛線框代表增廣區域。本文對目標處理設置子操作,操作內容如表1 所示。子操作由顏色操作和幾何操作組成,每個操作包含兩個參數,使用該操作的概率和幅度。概率從一組6 個離散值中采樣,范圍為0.0~1.0,間隔為0.2。幅度范圍映射到一組標準化的6 個離散值,范圍為0~10,間隔為2。

圖3 不同面積比的目標處理示意圖Fig.3 Schematic diagram of target processing with different area ratios
操作效果評估:自動增強方法通常使用的搜索指標不夠準確并且時間消耗過大。本文將操作對象精確到每一個目標上,根據每一個目標的尺度獲得不同尺度下的具體數據,通過記錄不同尺度上的累計損失和精度制定不同尺度的度量。具體方法為:給出一個未經數據驅動訓練的普通模型,記錄驗證平均精度(AP)及不同尺度上的平均精度APj(j∈S),對每個候選操作組m進行微調,記錄累計損失Lj,不同尺度的驗證平均精度為APm,對整個AP 制定對象函數為:

不同尺度上的平衡優化效果直接影響分割模型的表現力和魯棒性,為了避免不同尺度上的累計損失Lj有時不是最優的情況,引入了帕累托最優[26]避免這種情況,以使在不損害其他任何尺度精度的情況下達到該尺度最好的優化,并引入一個補償因子?來補償使用操作組m進行微調后精度下降的部分所以,操作評估函數可以升級為:

本文使用進化算法作為搜索函數,即在每次迭代中從操作空間抽取m個操作組。在對抽樣策略進行評估后選擇最優的k個策略作為下一代的父策略,之后通過父策略間的變異和交叉產生子策略,重復迭代此過程至收斂。
本文使用重采樣方法通過對含有稀有類的圖像進行重采樣,能夠在數據驅動方法的基礎上進一步對稀有類數據進行擴充,提升了稀有類類別的采樣頻率,增加了模型的魯棒性。
對于每個類別c,令fc為至少包含一個實例c的訓練圖像分數,t為超參數用來控制過采樣開始的點,定義每個類的重復因子為:

當fc≤t時,不存在過采樣,當fc>t時,過采樣通過元素γ<1 來降低某個類別的頻率,其重復元素乘以
本文運用以下函數來進行均等化處理:
1)softmax 交叉熵損失函數。softmax 用在多分類過程中,它將多個神經元的輸出映射到(0,1)區間內作為概率值。pi是softmax 輸出向量p的第i個值,表示該樣本屬于第i個類別的概率,c為類別總數,i的范圍是1 到類別數c,因此yi是一個1×c的向量,里面有c個值且只有一個值是1,其他c-1 個值都是0,Lsce為最后輸出層激活函數的損失函數。

在softmax 交叉熵損失函數中,如果存在前景類別c,那么其可以被視為其他類別i的負樣本。因此,類別i就會接收到負梯度pi用于模型更新,這就會導致類別i的網絡預測率很低。
當數據集中類別數量分布嚴重不平衡時,比如在長尾數據集中,頻繁類的負梯度效應對稀有類有很大的影響,稀有類的學習總是被抑制。為了解決這一問題,本文引入了均等化損失函數,即對于稀有類別忽略頻繁類別的樣本梯度使神經網絡對不同的類別公平地訓練。
2)均等化損失函數。當數據集中圖像類別的分布不平衡時,常用的交叉熵損失函數很容易忽略稀有類的學習。為此,本文使用一種均衡化損失函數,即在稀有類數據進行訓練時主動忽略頻繁類的梯度,以達到各類別數據均衡訓練的目的。
在原交叉熵函數的基礎上引入一個權重φ,此均衡化損失可表示為:

其中:c為數據集中類別的總數量;pi由sigmoid 交叉熵損失函數得到。為將函數作用于目標級r處理,本文將φi設為:

其中:當r代表圖像前景區域時,E(r)為1,當r代表圖像背景區域時,E(r)為0;fi代表數據集類別i出現的頻率,由類別i的圖像數量相比于整個數據集的圖像數量計算得到;Tτ(x)是一個閾值函數,當x<τ時為1,否則為0;τ用于區分稀有類和其他類別。
3.1.1 LVIS 數據集
LVIS 數據集是一個大規模細粒度詞匯級標記數據集,包含164 000 張圖像,并針對超過1 000 類物體進行了約200 萬個高質量的實例分割標注。根據每個類別包含圖像的數量將這些類別分為3 個大類:稀有類(1~10 個圖像),普通類(11~100 個圖像)和常見類(大于100 個圖像)。該數據集并非在未知類別標記的情況下收集,而是通過在收集圖像以后根據圖像中目標的自然分布來進行標注。大量的人工標注而非其他數據集的機器自動化標注可以使得數據集圖像中自然存在的長尾分布被有效識別。
本文使用LVIS v0.5 訓練集進行訓練,LVIS v0.5驗證集進行測試。
3.1.2 自動增強方法的微調策略
采用RetinaNet 從LVIS 的驗證集中隨機采樣5 000 張圖像用于在搜索期間進行評估,訓練集中抽取57 000 張圖像用于子模型訓練,測試集中抽取20 000 張圖像用于最后的評估。每個子模型都針對普通模型進行1 000 次迭代微調,普通模型只是一個任意部分訓練的基線模型。在進化搜索中,進化過程重復10 次迭代。迭代模型大小為50 個,選取前10 個模型作為后代的父本。
在LVIS 數據集的預訓練和微調設計中,使用搜索的增強策略對模型進行訓練。調整訓練圖像的大小,使其較短的尺寸為800 像素,長邊不超過1 333 像素。多尺度訓練基線通過在訓練過程中隨機選擇范圍為640~800 像素的尺寸來增強。
3.1.3 均等化損失函數
使用帶有FPN 的標準Mask R-CNN 作為基準模型,對圖片進行增強處理。在第1 階段,RPN 以前景和背景為1∶1 的比例采集256 個錨點;在第2 階段,以前景和背景為1∶3 的比例采集每幅圖像512 個proposals。使用8 個GPU,總共16 個批量用于訓練。采用隨機梯度下降優化模型,在25 個周期內動量衰減0.9,權值衰減0.000 1,初始學習率為0.02,分別在16 epoch 和22 epoch 衰減到0.004 和0.000 4。雖然特定類別掩碼預測的性能較好,但由于大規模類別的巨大內存和計算成本,因此本文采用類別不可知機制。在LVIS 之后,預測分數的閾值從0.05 降低到0.0,保留top300 個邊界框作為預測結果。如果它們在正類別中,則均衡化損失函數中的類別將不會忽略該圖像的集合或負類別集。對于這些類別,式(14)的權重項將為1。
本文通過LVIS 數據集來分析實驗結果,訓練階段使用數據驅動、均等化損失函數及重采樣方法。指標APbbox用于對各方法進行綜合性評估,APbbox為實例分割框的準確率,下標r、c和f分別代表稀有、常見和頻繁類別,結果如表2 所示。實驗得出本文方法在測試階段以ResNet50 為骨干的網絡上得到4.9%的精度增益,在以ResNet101 為骨干的網絡上得到5%的精度增益。本文還增加了不同模型在測試時的推理時間及最終權重大小,如表2 所示。在使用不同的骨干網絡時,本文的推理時間和其他對比模型相當,以ResNet50 為例,本文方法的每張圖推理時間為0.264 s,并沒有增加過多的推理時間。同時,本文最終的權重大小只比Baseline 增加30×106,在可接受范圍內。

表2 總體實驗結果Table 2 The overall experimental results
此外,本文對APr指標進行重點比較,通過與Mask R-CNN 基線相比,該指數的大幅提升可以表明該方法應用于長尾數據的有效性,較好地解決了數據集的長尾分布問題。
可視化效果如圖4 所示,可以看出,Mask R-CNN和Forest R-CNN 出現了識別錯誤、掩膜邊緣準確率較差的問題,如圖4(b)錯誤地將食物識別為“carrot”類。圖4(c)Forest R-CNN 未識別出稀有類“pizza”,Mask R-CNN 將“pizza”識別為“carrot”。本文方法成功地識別出了圖4(c)的稀有類“jean”,并且識別出了前兩種方法未識別出的“helmet”類。綜上所述,本文方法可對稀有類數據進行有效地檢測和分割。

圖4 可視化實驗結果Fig.4 Visualization experimental results
本文對各種方法進行了消融實驗,如表3 所示,其中,*表示只用數據增強,**表示只用均等化損失函數,***表示既使用數據增強又使用均等化損失函數。首先,對使用的目標級尺度圖像增強進行系統評估。在ResNet50 骨干網絡上,本文方法將多尺度訓練基線提高了22.6%,APbbox提高了1.8%,APr提高了1.6%;在ResNet101 骨干網絡上,APbbox提高了1.7%,APr提高了1.8%。實驗結果表明,本文的目標級數據驅動方法有效地提升了長尾實例分割的精度。

表3 消融實驗結果Table 3 Ablation experimental results
其次,對均等化損失函數的作用效果進行評估。表3 展示了均衡損失函數在不同主干和框架上的有效性??梢钥闯?,改進主要來自于稀有和常見的類別,在ResNet50 骨干網絡上,APbbox提升了2.5%,APr提升了8.1%,說明了均等化損失函數對長尾分布類別的有效性。
最后,對均等化損失函數和目標級數據驅動方法相結合的有效性進行分析。在ResNet50 骨干網絡上,APbbox提升了3.9%,APr提升了8.9%,相較于只使用均等化損失函數分別提升了1.4%及0.8%,充分說明了本文方法的有效性及針對性。而在ResNet101骨干網絡上,雖然APbbox降低了0.9%,但是具有針對性的指數APr卻提升了2.4%,仍可說明本文方法針對長尾數據的有效性。
本文分析了長尾數據集中存在的類別不平衡問題以及常規神經網絡對長尾數據集的不適應性,提出一種目標級的數據驅動方法,并在該方法基礎上融入均衡損失函數,以解決稀有類數據匱乏對檢測結果造成的影響。同時,在訓練中加入了重采樣方法,提升檢測模型的魯棒性,以對稀有類數據驅動方法進行補充,實驗結果表明了本文方法的有效性。下一步將從神經網絡后處理中的置信度角度出發,研究數據的長尾分布在實例分割中的歸一化校準方法,在計算量更小的前提下提升稀有類別分割的準確率。