论文发表:CVPR2019
本文是一篇关于无监督的细粒度物体类别识别的论文。
概述
本文提出了一个无监督的GAN框架FineGAN,其可以分离背景,物体形状以及物体外观,并级联地生成细粒度物体类别的图像。
为了无监督地分离几个因素,关键思想就是利用信息理论关联每一因素到潜在的编码,并以一种特定的方式规范编码之间的关系,以推导出所需的层次结构。
利用FineGAN自动学习的特征对真实图像进行聚类,这是首次尝试解决无监督的细粒度物体类别发现(聚类)问题。
GitHub公开代码: https://github.com/kkanshul/finegan
动机
1、细粒度类别标注需要领域专家,标注成本高
2、无监督方法可以发现数据中的潜在结构,如细粒度图像数据集通常隐含着固定的级联形式的类别组织结构。
主要思想
本文假设能够级联地生成细粒度图像的生成模型对于真实图像的细粒度分组同样有用。
因此本文提出了一个级联的无监督上生成对抗网络框架FineGAN,其可以生成细粒度类别的图像。
论文贡献
1、提出一个无监督的FineGAN模型,可以学习级联地生成细粒度物体类别的背景,形状以及外观。多种量化评估表明其对背景,形状与外观的精确分离能力。另外在3个基准数据集上的评估也表明了FineGAN生成逼真多样性图像的优势。
2、利用FineGAN学习的非耦合表示聚类真实图像进行细粒度无监督类别划分,其细粒度聚类比现有的无监督SOTA方法(如JULE,DEPICT)更加准确。
论文方法
1、解耦与真实图像相关的变量因子,文中考虑使用物体的背景,形状,外观以及位置作为变量因子。
2、如果FineGAN可以关联每一个潜在编码到特有细粒度类别层面(如鸟的形状,羽毛颜色等),其学习的特征就可以用于真实图像的无监督细粒度物体类别划分。
网络整体架构
整体架构:包含背景,父亲,孩子3个关联阶段,分别用于生成背景,轮廓以及颜色纹理的填充。
不同阶段有不同的潜在编码,z为服从标准正态分布的随机噪声,b、p、c分别服从相似的分布,如
潜在编码之间的关系
1、父子编码关系:细粒度类别可基于公共的形状进行分组,进而通过外观进行区分。发现此种级联使用两种约束,(i) 父编码类别少于子编码类别(即Np<Nc) (ii) 每一个父编码类关联固定数量的子编码类(即多个子编码共享一个父编码),此两种约束可以推动p捕获形状,c捕获外观。
2、背景编码与子编码:目标与背景往往存在关系(鸭子在水中),为了避免目标-背景对间的冲突,在训练阶段设置背景编码与子编码相同(b=c)
算法步骤
背景阶段
1、主要用于生成背景图像B,作为父子阶段的画布拼接不同层面的前景,并且不包含任何前景信息。
2、此阶段由一个生成器Gb与判别器对Db与Daux组成,Gb基于潜在的背景编码b控制不同的背景类别(树,水,天空等),基于潜在编码z控制类内背景细节(背景布置)。
3、使用检测器定位真实图像中的非目标背景块。
4、目标损失为
5、对抗损失:判别器Db作用在背景块上,预测NxN网格表示输入图像相应块的真假分数,其公式如下:
6、辅助背景分类损失:作用在块上,使得生成的背景块具有更高的背景概率。具体就是在检测目标内与检测目标外的背景块分别组成前景背景训练集,然后使用交叉熵训练二分类器Daux,然后用Dau训练生成器Gb。公式如下:
父阶段
1、此阶段主要用于生成前景实体,并拼接到背景图像B上。
2、Gp由卷积与残差块组成,将编码z与p映射到特征表示Fp,Gp,f与Gp,m分别将特征Fp转换成前景Pf与前景掩膜Pm,Pm用于将前景拼接到背景B上。
3、对于判别器Dp,由于P与Pf,m没有真实的对应样本,不能采用标准的GAN方法训练。本文采用类似InfoGAN的信息理论以无监督的方式发现此阶段的级联概念(形状),具体就是最大化互信息 ,使Dp近似后验概率
子阶段
1、此阶段主要用于在前一阶段轮廓基础上填充近似的颜色与纹理。
2、此阶段将颜色纹理编码c与Fp进行concat,并通过Gc(类似于Gp)映射到Fc,然后使用两个生成器分别映射特征Fc到前景Cf与掩膜Cm,然后进行拼接。
3、判别器包括两个Dadv(判别生成样本与真实样本)与Dc(近似后验概率,关联编码c与细粒度的颜色纹理),损失函数如下:
细粒度目标类别发现
1、此阶段主要用于借助合成图像Cj以及其相关的父编码与子编码学习一个图像到编码的映射。
2、由于真实图像的前景掩膜无法获得,因此无法直接使用判别器Dp与Dc(它们分别用于将{Pf,m}与{Cf,m}归类为某一父编码与子编码)。
3、因此,本文训练一对卷积网络,来分别预测合成图像对应的父编码与子编码。
4、具体就是,先随机采样一个batch的编码(z~N(0,1),p~Pp,c~Pc,b~Pb)生成对应的图像Cj,然后将此batch的生成图像经过网络,并计算其交叉熵损失,不断更新网络参数,直到拟合。损失如下:
5、集中于目标的形状,无关背景与子编码。
6、只集中于目标的外观,预测其子编码c.
7、网络训练完成后,用来进行真实图像的特征提取,最后concat两个特征使用聚类进行图像细粒度分组划分。
实验
数据集与训练细节
1、3个细粒度数据集,其中类别标签用于评估:
CUB:200种鸟,11788张图像;
Stanord Dogs:120类,训练集12000张图像;
Stanord Cars:196个车辆类别,训练集8144张图像。
2、参数设置
CUB:Np=20,Nc=200;
Stanord Dogs:Np=12,Nc=120;
Stanord Cars:Np=20,Nc=196;
其中Nc为数据集的细粒度类别数
其中λ=10,β=1,γ=1
细粒度图像生成评估
1、定量分析
2、定性分析:图像生成过程
3、定性分析:变量因子解耦
4、定性分析:父子编码解耦
5、定性分析:背景前景解耦
(a)固定背景编码,变化父子编码
(b)固定父子编码,变化背景编码
6、定性分析:与InfoGAN的比较
InfoGAN使用整体图像预测潜在编码,FineGAN使用前景眼膜。
因此,InfoGAN的子编码预测偏向于背景。
细粒度类别发现
通过FineGAN学习的特征进行细粒度目标类别聚类,并与SOTA方法JULE与DEPICT进行对比。
使用归一互信息(NMI)与准确的(Accuracy)进行评估。
FineGAN的不足与讨论
1、父类编码数量与子类编码数量的设置是一个超参数设置过程,在没有数据标签的情况下,很难进行调试。(无监督方法的普遍问题)
2、FineGANineGAN发现的潜在变化模式可能与人类标注或者定义的不一致。如车辆根据颜色进行了归类,而不是车型。(无监督方法的评估策略)
3、本文的实现需要边界框定位出背景区域
4、虽有较大提升,却仍远低于监督方法。
聚类效果比较