参考代码:IntraDA
1. 概述
导读:在分割分割模型的训练往往需要较多的人工标注数据,但是获取这些标注的成本是较为昂贵的,一种较为廉价的方式就是使用图形生成器去生成虚拟的训练数据,之后通过DA(Domain Adapting)的方式进行域迁移,从而使得在真实数据上的效果得到提升。但是这种生成(仿真)数据与真实数据(包含了运用/光照/天气/阴影等多种因素影响)之间是存在domain gap的,之前的一些工作着力于缩小仿真数据与真实数据集的差异(也就是文章说的inter-domain),但是却很少考虑到真实数据内部的难易数据分布(intra-domain),对此文章提出了一种新的域迁移方法:首先完成inter-domain的迁移,之后按照文章提出的熵排序规则将真实数据的分割结果划分为难易两部分(不同的域),之后完成上述两部分的intra-domain迁移。
文章的方法是UDA(unsupervised domain adaption)类型的,其中对DA的流程进行了分析,将其分割为域间与域内两个部分的迁移,其流程见下图所示:
2. 方法设计
2.1 网络结构
这篇文章提出的方法具体流程见下图所示:
文章设 S S S为源域(合成图像), T T T为目标域(真实的图像),上图中的 G i n t e r , D i n t e r G_{inter},D_{inter} Ginter,Dinter分别为类间domain的生成器和判别器, G i n t r a G_{intra} Gintra, D i n t r a D_{intra} Dintra分别为类内domain的生成器和判别器。
2.2 Inter-domain Adaptation
这部分工作是完成合成数据与真实数据之间的domain adaptation,合成数据的输入表示为 X s ∈ R H ∗ W ∗ 3 X_s\in R^{H*W*3} Xs∈RH∗W∗3,其对应的训练标注描述为: Y s = Y s ( h , w ) ∈ [ Y s ( h , w , c ) ] c Y_s=Y_s^{(h,w)}\in [Y_s^{(h,w,c)}]_c Ys=Ys(h,w)∈[Ys(h,w,c)]c,由合成数据的输入通过生成器得到对应的概率图为 P s = G i n t e r ( X s ) ∈ [ P s ( h , w , c ) ] c P_s=G_{inter}(X_s)\in [P_s^{(h,w,c)}]_c Ps=Ginter(Xs)∈[Ps(h,w,c)]c(one-hot), 那么合成数据的回归损失函数就可以描述为:
L i n t e r s e g ( X s , Y s ) = − ∑ h , w ∑ c Y s ( h , w , c ) l o g ( P s h , w , c ) L_{inter}^{seg}(X_s,Y_s)=-\sum_{h,w}\sum_cY_s^{(h,w,c)}log(P_s^{h,w,c}) Li<