教師-學生網絡下Self-Ensembing with GAN-based Data Augmentation for Domain Adaption in Sematic Segmentation

1. Abstract

  • 基於深度學習的語義分割有着固有的缺陷:需要大量的數據
  • 本文引入self-ensembling,想基於無監督下的領域自適應來解決數據問題,但通過self-ensembling中微調過的人工數據難以縮減語義分割中巨大的領域距離(Domain Gap)
  • 爲此,本文提出一個由兩部分組成的框架
    • 首先,基於GAN提出一個數據增強方法,能有效促進領域的對齊(Domain Alignment)
    • 其次,基於增強後的數據,將self-ensembling運用到分割網絡中以提升模型的能力

2. Introduction

  • 語義分割的任務:給圖像中的每個像素點都分類。

  • 大量基於深度學習的算法能夠獲得較好的效果,但過於依賴數據。爲避免人工標註的繁瑣和耗時,研究人員利用計算機圖形學得到合成數據及所對應的分割標籤。而合成數據訓練得到的分割模型難以媲美使用真實數據訓練得到的,因爲存在了稱之爲領域遷移(Domain Shift)的分佈不同(Distribution Difference)。

  • Unsupervised domain adaptation通過將標記過的數據集中的知識遷移到未標記過的數據集,來解決Domain Shift的問題。

    • 最近的方法多集中在對齊源數據和目標數據中抽取到的特徵。如基於對抗訓練,通過域混餚(Domain Confusion)來最小化領域之間的差異(Domain Discrepancy)。
    • 然而,對抗方法也有缺陷,爲了對齊兩個不同領域的全局分佈可能會造成負遷移(Negative Transfer),即將目標特徵對齊到了源特徵中錯誤的語義分類。通俗點說,就是將天空的特徵或者風格,遷移到了馬路上。特別是,數據集中的某個類別比較稀少,更容易產生負遷移。
  • 爲解決負遷移,本文引入了self-ensembling

    • self-ensembling由學生網絡和教師網絡組成
      • 學生網絡被迫基於老師提供的目標數據,做出協同的預測
      • 教師網絡的參數是學生網絡的均值,所以教師在目標數據上做的預測可以看作是學生的僞標籤
    • 雖然self-ensembling在圖像分類上有很好的效果,若想用於成功對齊領域,它需要大力調節過的人工增強數據。此外,雖然self-ensembling得到的幾何變化較大的數據能有效用於分類,它並不適合於語義分割中的Domain Shift。
  • 爲改進self-ensembling,本文設計了新的數據增強方法

    • 基於GAN,生成能夠保留語義內容的增強圖像。因爲未保留語義內容的圖像,將會破壞分割的性能,由於增強後的圖像和作爲源標籤的圖像在像素上的不匹配
    • 爲解決上述問題,該方法於生成器中加入了語義約束(Semantic Constraint),來保留全局和局部的結構。
    • 此外,本文提出了目標導向的生成器,能夠基於目標領域抽取的風格信息來生成圖片。這樣,該方法生成的圖像又能保留語義信息,又能只遷移目標圖像的風格。
  • 大多數Image-to-Image Translation都是依賴於不同形式的Cycle-Consistency

    • 有兩個限制
      • 需要多餘的模塊,比如兩個生成器
      • 若是數據不平衡的話,源領域和目標領域的約束過於強烈。也就是說,不管怎麼生成,就那幾種圖像,類似於Model Collapse吧
    • 而本文的方法由於它的設計,就不需要考慮Cycle-consistency了
  • 整個模型的框架如下圖所示
    在這裏插入圖片描述

    • 步驟一,給定有標籤的合成數據及無標籤的真實數據,生成帶有標籤的增強數據(我認爲,這裏的標籤就是源標籤)
    • 步驟二,作者將關鍵信息寫到了這裏,使用兩個分割網絡作爲教師和學生,以使用Self-ensembling算法。這兩個網絡都使用了合成數據、增強後的數據以及真實數據。在訓練過程中,教師網絡會將知識遷移到學生網絡中。

3. Proposed Method

​ 提升self-ensembling用於語義分割的兼容性的方法是,基於GAN增強後的數據來對齊源領域和目標領域之間的表達,而不是self-ensembling用於分類中的幾何轉變。爲了這個目的,本文設計了以下的模型。

3.1 Target-guided generator

  • TGCF-DA的模型圖如下所示
    在這裏插入圖片描述

    • 基於假設,圖像表達可被分爲兩部分:內容和圖像,設計了以上結構
      • 使用Souce Encoder來抽取源圖像的內容表達
      • 再使用Target Encoder來抽取目標圖像的風格表達
    • 爲了結合源圖像的內容和目標圖像的風格,使用AdaIN算法
  • 根據上面的設計,生成器G得到的圖像將會在保留源圖像內容的同時,遷移目標圖像的風格。也就是改變源圖像,如GTA5的虛擬風格,變成現實風格。最後,將生成圖像作爲fake data,目標領域作爲real data,輸入判別器。

3.2 Semantic constraint

  • 由於沒有使用Cycle-consistency,本文使用Semantic Constriant來約束生成圖像的語義信息。具體的做法如下
    • 設定一個預訓練好的分割模型,本文使用的是FCN-8s
    • 將生成的圖像輸入得到分割後的掩碼
    • 分割後的掩碼和源圖像的標籤做交叉熵
  • 這個做法類似於相當於風格遷移中,計算內容損失的做法。

3.3 Target-guided and cycle-free data augmentation

  • 本文對於GAN框架的構建如下

    • Discriminator的構建是基於Hpix2pix的,詳見原文中的參考文獻

    • 使用LSGAN的損失作爲對抗損失,並基於spectral normalization的方法穩定GAN的訓練

      LGAN(G,D)=E(xs,st)(PS,PT)[D(G(ss,st))2]+ExtPt[(D(xt)1)2].L_{GAN}(G, D) = E_{(x_s, s_t)\thicksim(P_S, P_T)}[D(G(s_s, s_t))^2] + E_{x_t\thicksim P_t}[(D(x_t) - 1)^2].

  • 對抗損失能夠保證G生成的新圖像在視覺上和目標圖像相似。由於分割模型fsegf_{seg}固定了,可以聯合訓練生成器和判別器來優化總損失

    LTGCFDA=LGAN+λLsemL_{TGCF-DA} = L_{GAN} + \lambda L_{sem}

  • 經過上述損失預訓練後的生成器,將被用來合成增強數據,爲後續的self-ensembling做準備。

3.4 Self-ensembling

  • 構建了教師網絡fTf_T和學生網絡fSf_S。步驟t中,教師網絡的參數tit_i由學生網絡根據下列公式計算得到

    ti=αti1+(1α)sit_i = \alpha t_{i-1} + (1 - \alpha)s_i

  • 在訓練的過程中,每個mini-batch都會包含以下數據

    • source samples 源樣本
    • augmented samples 增強樣本
    • target samples 目標樣本
  • 源樣本和增強樣本將會被用來計算監督損失LsupL_{sup},即對於語義分割的交叉熵。這個損失函數能使得學生網絡,對於源數據和增強數據,都產生語義上更加精準的預測。

  • 一致性損失LconL_{con}是學生網絡和教師網絡生成的預測圖的均方差

    Lcon(fS,fT)=ExtPT[σ(fS(xt))σ(fT(xt))2]L_{con}(f_S, f_T) = E_{x_t \thicksim P_T}[||\sigma (f_S(x_t)) - \sigma (f_T(x_t))||^2]

    這裏的σ\sigma是softmax函數,用來計算預測圖的概率

  • 總體的損失如下

    Ltotal=Lsup+δconLconL_{total} = L_{sup} + \delta_{con} L_{con}

    這裏的δcon\delta_{con}是一致性損失的權重

3.5 Data augmentation for target samples

​ 看到這一塊內容,稍微有些迷糊,特別是作者的第一句話:這裏的對於目標樣本的數據增強和TGCF-DA並不相關,差點就被帶偏了,不知道理解到什麼地方了。不過仔細看了一下後面的內容,得到如下理解

  • 這裏對target samples增強是爲了在self-ensembling中計算consistency loss。對於目標樣本的隨機數據增強,是爲了強迫學生網絡針對相同的目標樣本得到不同的預測,以更好的訓練學生和教師網絡。
  • 根據前文,常規self-ensembling中的幾何變換對於像素級別的預測任務並無幫助。因此,本文在目標樣本中注入高斯噪聲,並分別餵給學生和教師網絡。此外,對於網絡參數還是用了Dropout。
  • 因此,學生網絡在目標樣本有擾動的情況下,還必須得產生和教師網絡一致的預測,這也變相了提升了模型的性能。

4. Experiments

​ 在做實驗之前,作者略微詳細的介紹了用到的數據集如:GTA5,Cityscapes等。對於實驗的配置,作者說的很詳細,建議詳細閱讀。比如TGCF-DA的具體構造,生成器和判別器都是挑了比較好的結構,一起一些超參數的設置。此外,還講了self-ensembling中,對於分割網絡的選擇,選擇哪一層計算損失等。

4.1 Experimental results

  • 作者將自己的方法與CycleGAN,MCD,DCAN等一堆方法進行比較。該實驗首先在GTA5或者SYNTHIA數據集上,訓練分割網絡,並在Cityscapes的驗證集上驗證。實驗得結果如下表所示
    在這裏插入圖片描述

    • 表中的Self-Ensembling,代表着由源數據和目標數據(未加入增強數據)訓練得到的分割網絡的性能
    • 表中的TGCF-DA表明由源數據、目標數據、TGCF-DA生成的增強數據,共同訓練的分割網絡
    • 表中的**Ours(TGCF-DA + SE)**表明結合了TGCF-DA和Self-Enembling方法,得到的分割網絡
    • 表中的mIoU*代表的是,13個常見類別的mIoU,因爲數據集中有些類別出現次數不多。但具體是哪13個類並沒有講,可能會在作者提供的附件裏
    • 表中的Source Only聲明瞭只在源數據集上訓練的分割模型的效果
    • 表中的Target Only聲明瞭在監督設定下訓練的分割模型的效果
  • 作爲剛接觸Domain Adaption的小白,對於這個實驗一直耿耿於懷。首先是對於表中的Baseline(Source Only)的不理解,其次是對Target Only的不瞭解。經反覆思考後,理解如下

    • **Baseline(Source Only)**既然都說了是Source Only,而且文中又把增強後的數據叫做Augmented Data。對應上面的表格,Baseline應該指的就是GTA5和SYNTHIA中的原始訓練集,訓練得到的分割模型,那效果肯定差。

    • 接下來一系列的方法,CycleGAN,MCD,DCAN等,應該都是使用進行Domain Shift後的數據配合原始的mask標籤,來訓練分割網絡,那爲什麼效果會差呢?根據文中的描述,原因有二

      • 首先是,經過Domain Shift圖像的內容結構可能被破壞了,導致原始的mask標籤不匹配,從而產生語義上的損失。如,車子經過domain shift之後形狀變了,但對應的mask掩碼標籤卻沒變,那效果肯定差
      • 其次是,負遷移造成的影響,有些類別過於稀疏,在Domain Shift的時候導致轉換有誤,如,前面的例子,將馬路的知識遷移到了天空上
    • 然後就是純Self-Ensembling方法了,效果有一定提升,但是沒本文方法提升的多。但作者在前文就指出原始的Self-Ensembling適用於分類網絡,但卻不太適用於分割網絡。我理解是:由於Self-Ensembling是通過形變原始數據得到增強數據,來提升分類模型的性能;而在分割網絡中,形變原始數據會導致其和mask標籤不匹配,破壞了內容結構,所以效果變差

    • 最後就是文中提到的兩個方法

      • 先是隻使用了TGCF-DA,效果提升一般,和已有方法區別不大。這說明,拋棄Cycle Consistency,理想化的將圖像分爲content和style,並通過AdaIN方法進行結合等一系列操作,並沒有達到作者預期的效果。我覺得作者可能一開始只提出了這個方法,做了實驗之後發現效果居然沒有好太多,再考慮將Self-ensembling的方法加入來提升網絡的性能。不過,這個方法還是很有創意,巧妙地將任意風格遷移和GAN結合在了一起,值得我思考。

      • 然後就是TGCF-DA + Self-ensembling,效果簡直超神,順利畢業。原理就是,通過TGCF-DA預訓練模型生成增強數據,然後配合學生、老師網絡進行訓練,最後得到一個更好的分割模型。如下圖
        在這裏插入圖片描述

4.2 Ablation studies

  • 首先,做了Self-Ensembling的消融實驗,如下圖
    在這裏插入圖片描述

    • 在上一實驗的表格中,就發現純Self-Ensembling效果很差
    • 這就說明了,主要的功勞並不在Self-Ensembling的應用上,而是TGCF-DA + Self-Ensembling上
  • 其次,做了TGCF-DA的消融實驗

    • 在上一實驗表格中,發現TGCF-DA能有效提升分割模型的效果。
    • 其次,通過圖示風格模型的mIOU,發現純Self-Ensembling在第8個epoch就達到了極大值,繼續訓練效果變差,而TGCF-DA + Self-Ensembling效果持續上升,說明二者結合纔是王道。也從側面說明了TGCF-DA的重要性
  • **在消融實驗中,作者想表明TGCF-DA + Self-Ensembling結合的重要性,並將主要功勞放在TGCF-DA上。但正如我前文所說,TGCF-DA的效果和其他方法相差不多,那是否將其他方法和Self-Ensembling結合,也會得到更好的效果呢?**不過,這也是我雞蛋裏挑骨頭了,本文主要的貢獻已經很多了,就比如TGCF-DA + Self-Ensembling結合訓分割模型,提升性能,也是本文的賣點。

5. Analysis

​ 在這塊內容,作者可視化了幾個模塊的結果,並進行進一步的分析。

5.1 Visualizaton

  • 首先是對於Self-Ensembling中間結果的可視化,如下圖
    在這裏插入圖片描述

    • 圖中表明,教師網絡能夠很好的指導學生網絡進行訓練。
    • 此外,根據熱力圖可以發現,consistency loss在訓練中會逐漸關注到物體的輪廓,從而微調輪廓提升預測的效果。
  • 其次是,可視化自己的增強數據
    在這裏插入圖片描述

    • 根據作者的描述,大多數方法都擾亂了物體的輪廓
    • 甚至,有的方法發生了“負遷移”,就是將天空遷移到了馬路上,但作者在這裏沒提“負遷移”,提了一個叫“spills over”的概念,我思索一下就是“負遷移”。
    • 從而,得出自己的方法計算得快,在視覺程度上效果還好。

5.2 Analysis of self-ensembling with per-class IoUs

  • 爲了更好的理解self-ensembling,作者比較了在使用self-ensembling下,不同類別精度的提升情況,如下圖
    在這裏插入圖片描述

  • 可以看到,每個類別提升的程度不同。作者人爲原因是各個類別數據的不平衡。數據越多的類,提升的效果也越明顯。在Self-ensembling中,這個效果會越明顯。因爲學生網絡持續學習到教師網絡的預測,那麼將會不斷的在稀少類別上做出錯誤的預測。這也印證了作者說的:教師網絡的預測是學生網絡的僞標籤。

  • 這一塊實驗個人感覺精華就是:類別下擁有的數據越多,提升性能越大

6. Conclusion

  • 作者在文章的結尾,還解釋了各種超參數的設計和原因,若是對文章感興趣的朋友可以自行閱讀。
  • 那麼,我在看完這篇文章後,總結如下
    • Domain Adaption可以通過遷移真實數據的知識到虛擬數據中,獲得增強後的數據,以緩解基於深度學習的語義分割任務中,對於大量標註數據的需求。
    • 但是,現有的Domain Adaption方法有以下問題
      • 生成的增強圖像內容信息損失,如結構紊亂,和源數據的標籤不匹配了
      • 生成的增強圖像發生了“負遷移”,導致知識遷移的位置不正確,如“天空”遷移到“馬路”上
      • 現有的Domain Shift方法大多基於Cycle-consistency,參數多耗時耗力
    • 故本文提出了基於GAN的數據增強方法TGCF-DA
      • 兩個Encoder,一個抽取源數據的內容,另一個抽取目標數據的風格
      • 抽取到的內容和風格通過AdaIN結合在一起構成Generator,生成fake圖像
      • fake圖像,和目標數據集中的圖像作爲Discriminator的輸入,更新Generator
    • 但僅用TGCF-DA生成的增強數據訓練分割網絡和其他的方法效果差不多,故本文又引入了Self-ensembling來訓練分割網絡。稍微不同的是,原始的Self-ensembling改變圖像的形狀,但本文是給圖像注入高斯噪音。因爲改變幾何形狀會破壞圖像和mask標籤的匹配性
    • 最後,TGCF-DA + Self-ensembling的結合,在實驗上取得了令人矚目的效果
  • 我認爲本文的亮點如下
    • TGCF-DA網絡的構造,結合了GAN+任意風格遷移,很新穎
    • TGCF-DA + Self-ensembling,說白了就是將Domain Shit方法和Self-ensembling方法結合在一起。
  • 我認爲本文未解釋清楚的就是,沒有做實驗證明, 其他的Domain Shift方法和Self-ensembling結合在一起,是否也會得到很好的效果

最後,感謝本文作者的貢獻,respect! 本文的github.io版請走傳送門

注:本文爲作者原創,轉載需註明出處!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章