Domain Adaptation for Structured Output via? Discriminative Patch Representations
數(shù)據(jù)集:GTA5 to Cityscapes 熊响,SYNTHIA to Cityscapes脐嫂,and cross-city? (Cityscapes to Oxford RobotCar )
實(shí)現(xiàn):Pytorch框架卵贱,single Titan X? GPU with 12 GB memory
網(wǎng)址:https://sites.google.com/site/yihsuantsai/research/iccv19-adapt-seg
淵源:作者在論文中常和Learning to Adapt Structured Output Space for Semantic Segmentation進(jìn)行對(duì)比
網(wǎng)絡(luò)結(jié)構(gòu):采用和論文Learning to Adapt Structured Output Space for Semantic Segmentation一樣的DeepLab-v2 with ResNet101作為G,
本文的創(chuàng)新模式是:針對(duì)一個(gè)問(wèn)題,從一個(gè)新的角度杰刽,提出一個(gè)新的方法去解決,發(fā)現(xiàn)取得的效果和已有的方法相比并不遜色。
作者說(shuō)自己提出的方法和已有的域適配技術(shù)是互補(bǔ)的奕枢,還做了實(shí)驗(yàn)把這個(gè)技術(shù)和已有的模型融合健田,比如output space adaptation [40], pixel-level adaptation [16], and pseudo label re-training烛卧。
并沒(méi)說(shuō)超過(guò)已有的,而是說(shuō)能和已有的方法取得的效果相同妓局。
語(yǔ)義分割有pix-level的適配总放,feature-level的適配滤港,output-level的適配品山,不同的適配的區(qū)別,我理解的是在于判別器的輸入的不同一疯。feature-level的適配存炮,判別器的輸入是特征炬搭。
1.Setting
論文Learning to Adapt Structured Output Space for Semantic Segmentation是把原域和目標(biāo)域的分割結(jié)果圖進(jìn)行對(duì)齊蜈漓,可以說(shuō)是output級(jí)別的對(duì)齊,而本文則是在分割結(jié)果上多加一步宫盔,讓原域和目標(biāo)域分割結(jié)果圖的Patch進(jìn)行對(duì)齊融虽,可以認(rèn)為是小塊兒區(qū)域級(jí)別(patch-level)的對(duì)齊。
注:patch就是一小塊區(qū)域灼芭。
STEP A:從原域的分割圖中提取patches有额,用它們的標(biāo)記圖表示它們,然后用K-means聚類算法(K是個(gè)超參數(shù))來(lái)發(fā)現(xiàn)patch的模式(就是把patches分成K個(gè)簇)彼绷。這樣巍佑,原域分割圖中的每個(gè)patch就被分配了一個(gè)ground truth??? cluster/mode index。有了這個(gè)ground truth 標(biāo)簽就可以訓(xùn)練一個(gè)K分類器寄悯,該分類器為每個(gè)patch預(yù)測(cè)一個(gè)Index萤衰。
STEP B: 用K分類器,把目標(biāo)域的patch映射到一個(gè)K維的概率向量空間中热某,在這個(gè)空間中進(jìn)行模式對(duì)齊腻菇。
2.Method
2.1粗略框架
作者說(shuō)輸出空間的適配方法只對(duì)齊了Category Distribution,而沒(méi)有考慮原域數(shù)據(jù)的多模式昔馋;于是筹吐,作者創(chuàng)新地去發(fā)現(xiàn)原域數(shù)據(jù)的多模式。具體做法是秘遏,作者把原域的patches用K-means算法分成K個(gè)簇丘薛,構(gòu)成了一個(gè)clustered space。原域和目標(biāo)域的Category Distribution在這個(gè)clustered space中進(jìn)行轉(zhuǎn)換邦危,就映射到了一個(gè)K維的空間洋侨,得到了其對(duì)應(yīng)的Patch Distribution,然后通過(guò)對(duì)抗學(xué)習(xí)倦蚪,把目標(biāo)域patch distribution和原域的patch distribution在這個(gè)K維的空間中進(jìn)行對(duì)齊希坚。
2.2具體網(wǎng)絡(luò)結(jié)構(gòu)
關(guān)于Fs的含義,文中解釋為:
注意:判別器D的輸入就是Fs和Ft,用于判別輸入的特征是來(lái)自原域(標(biāo)簽為1)還是來(lái)自目標(biāo)域(標(biāo)簽為0)
2.3損失函數(shù)
2.3.1訓(xùn)練分類器H的損失函數(shù)Ld
H用于給patch分配一個(gè)cluster membership(一個(gè)K維的向量),拿原域帶標(biāo)簽的樣本進(jìn)行訓(xùn)練陵且。
其中裁僧,由原域圖像的per-pixel標(biāo)記來(lái)得到原域圖像的ground truth cluster membership,需要一些轉(zhuǎn)換技巧慕购,文中進(jìn)行了介紹聊疲。
2.3.2 patch對(duì)齊的損失函數(shù)Ladv
2.3.3原域樣本的語(yǔ)義分割損失Ls
這個(gè)文中沒(méi)有給出具體公式,它是必不可少的沪悲,每個(gè)語(yǔ)義分割論文中都有获洲。
2.3.4整體的訓(xùn)練目標(biāo)(把以上三個(gè)損失結(jié)合起來(lái))
2.4網(wǎng)絡(luò)訓(xùn)練
文中采用類似訓(xùn)練GAN的方法來(lái)訓(xùn)練,交替進(jìn)行以下兩步:
(1)更新判別器D
(2)固定D殿如,更新網(wǎng)絡(luò)G和H
2.4.1更新判別器
判別器D的輸入就是Fs和Ft,用于判別輸入的特征是來(lái)自原域(標(biāo)簽為1)還是來(lái)自目標(biāo)域(標(biāo)簽為0)
要想讓Ld這個(gè)損失最小贡珊,則判別器判別原域特征最爬,判別結(jié)果要盡可能接近1,判別目標(biāo)域特征飞崖,結(jié)果也要盡可能接近1.
也就是說(shuō)判別器把原域樣本判別成原域烂叔,把目標(biāo)域樣本判別成原域。
這樣做的目的是讓目標(biāo)域分布和原域分布盡可能地接近固歪。
2.4.2更新網(wǎng)絡(luò)G和H
為了讓Lg,h盡可能小蒜鸡,這里對(duì)抗損失要盡量把Ft判別成1.,F(xiàn)t的生成需要G,H牢裳,故它的梯度反向傳播也會(huì)更新G逢防,H.
3.實(shí)驗(yàn)結(jié)果
3.1訓(xùn)練要求
3.2實(shí)驗(yàn)結(jié)果
3.2.1證明patch-alignment方法和已有的域適配方法的互補(bǔ)性
作者把patch-alignment方法分別和output space,pixel-level,pseudo-GT,Fusion方法結(jié)合起來(lái),發(fā)現(xiàn)結(jié)合后的效果會(huì)有提示蒲讯,證明了本文提出的方法和已有的域適配技術(shù)是互補(bǔ)的忘朝,可結(jié)合起來(lái)使用。