語義分割之《Semantic Segmentation using Adversarial Networks》論文閱讀筆記

  論文地址:Semantic Segmentation using Adversarial Networks

  github

一、簡介

  論文作者提到以往的語義分割方法都是先對圖像進行下采樣再進行上採樣得到比較好的feature,將不同層級之間的feature進行融合得到最終的語義分割圖,沒有很好的利用像素與像素之間的相互關係。即便後連出現的CRF有效的該曬了結果但是其效果終究是有限的。因此作者提出了使用對抗方法訓練語義分割。這篇文章的主要貢獻:

  • 第一次經對抗方法應用到語義分割中;
  • 使用對抗方法在沒有增加網絡負擔的情況下增強了網絡的效果

二、網絡結構

1、結構

在這裏插入圖片描述
  如圖爲網絡的結構流程。GAN本身是利用博弈的思想,生成器生成圖片通過判別器進行判別直到判別網絡無法識別出圖像的真假爲止。作者提出的方法希望通過判別器判別生成的類標籤和ground truth的差距。如圖,網絡的訓練判別如下:
={1,groundtruth+image0,classpredmap+image 判別器輸出= \left\{ \begin{array} {ll} 1,輸入爲ground truth + image\\ 0,輸入爲class pred map + image \end{array}\right.
  而傳統使用的FCNs等網絡就可以用作GAN中的生成器,只需再搭建一個判別器即可。
  大概整理下就是:網絡通過對抗生成的方式調整語義分割網絡生成的類標籤接近於ground truth。
Standford Background dataset:
  Standford的數據集採用的是multi-scale分割網絡。輸入則是對地面真相標籤圖進行下采樣以匹配分割網絡的輸出分辨率,並以one-hot編碼方式輸入到對抗對象。
在這裏插入圖片描述

Pascal VOC 2012 dataset:
  VOC數據集採用的是Dilated-8作爲分割網絡。作者針對這個網絡探索了三個變體的輸入:Basic,Product 和Scaling。

  • Basic:直接輸入概率圖;
  • Product:使用label map,並且將概率圖和下采樣後的原圖像相乘得到3*C通道的map,輸入到對抗網絡;
  • Scaling:yˉil=max(τ,s(x)il)\bar{y}_{il}=max(\tau,s(x)_{il})ii爲位置,ll爲ground truth,其他位置cc的值爲yˉic=s(x)ic(1yˉil)/(1s(x)il)\bar{y}_{ic}=s(x)_{ic}(1-\bar{y}_{il})/(1-s(x)_{il}),τ=0.9\tau=0.9

在這裏插入圖片描述
在這裏插入圖片描述

2、損失函數

  損失函數採用的是混合損失函數,前半部分是語義分割常用的損失函數,後半部分是GAN的損失函數(以下公式中yny_n表示類標籤,xnx_n表示輸入):
(θs,θa)=n=1Nmce(s(xn),yn)λ[bce(a(xn,yn),1)+bce(a(xn,yn),0)] \ell(\theta_s,\theta_a)=\sum_{n=1}^{N}\ell_{mce}(s(x_n),y_n)-\lambda[\ell_{bce}(a(x_n,y_n),1)+\ell_{bce}(a(x_n,y_n),0)]
  在實際訓練過程中會將GAN和分割網絡分開訓練,先訓練GAN再訓練分割網絡。類似於EM算法先固定一個參數,訓練另一個,之後再固定之前的再訓練原來的,如此交替。
n=1Nbce(a(xn,yn),1)+bce(a(xn,yn),0) \sum_{n=1}^{N}\ell_{bce}(a(x_n,y_n),1)+\ell_{bce}(a(x_n,y_n),0)
n=1Nmce(s(xn),yn)λbce(a(xn,yn),0) \sum_{n=1}^{N}\ell_{mce}(s(x_n),y_n)-\lambda\ell_{bce}(a(x_n,y_n),0)

三、結果

在這裏插入圖片描述
在這裏插入圖片描述

發佈了49 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章