最近在翻CVPR2018的文章,突然就翻到了这篇oral,关于无监督学习的关键点检测,感觉还是很流弊的,特地来分享一下
论文链接:Unsupervised Discovery of Object Landmarks as Structural Representations
首先,来看一下网络结构
主要分成三个部分,landmark detector(对应于左上角的蓝色部分),Local latent descriptors(对应左下角的粉色部分)以及landmark-based decoder(对应于右半部分)。
1.landmark detector:
可以看到,这部分主要是一个hourglass网络,输入的是一张原图,没有label信息,经过这个网络得到一个初始的类似于heatmap的raw score map(R)。
θ表示网络参数,要注意的是这里R有k+1个通道,k是landmark 的数量,第k+1代表的是background。
然后R经过softmax归一化之后得到detection confidence map(我把它叫做置信图)
然后把Dk看作是一个权重图,第k个landmark的坐标用以下式子计算:
然后是一个空间归一化因子,就是为了坐标乘上权重计算得到landmark坐标之后能够返回原来的坐标系下对应的scale。同时这个式子3是可导的,意味着它可以进行反向传播(除非Dk权重都集中在一个坐标上面,那就是完美的理想网络也不需要可导直接可以用了hh)
但是上面得到的landmark是随机的,太任意了,很可能得到的landmark都不能用,为此作者也提出了几个软约束
1.Concentration constraint
浓度约束,目的是为了让权重图Dk的密度集中在小部分区域,然后以至于可以把最集中区域的中心点当作是landmark,否则如果权重图很分散的话会陷入不知道选那个点当作landmark的尴尬境地。把Dk/ζk当作是二项分布的密度,计算两个方差σ²det,u和σ²det,v,得到loss函数
把这个loss函数当作一个各向同性的高斯分布的熵的指数形式(把loss函数当作熵的目的是因为熵越低意味着更高的峰值分布),可以得到一个对密度Dk/ζk作估计的高斯分布
2.separation constraint
分离约束,这个其实比较易于理解,就是为了让各个landmark都尽可能地分离,否则最开始的随机性可能导致预测出来的landmark坐标都在图像中心附近。
3.equivariance constraint
不变性约束。就是对于变换后的图像,检测出来的landmark位置还能和原来的一样,不受旋转,缩放等影响。变换函数用TPS(薄板样条插值)随机参数随机得到。
这里g是对变换后的图像检测得到的坐标,然后后面的(xk,yk)是直接对原图坐标作同样变换得到的值,两个构成了类似于MSEloss的loss函数。
4.Cross-object correapondence
跨对象的一致性主要是通过同一滤波器共享语义相似度这个事实。
2.Local latent descriptors
因为landmark可能不足以描述图像的structural representation,所以引入了额外的局部潜在描述器,所谓局部,意味着它也不能编码太多了全局信息。
还是通过一个hourglass 结网络,得到feature map F。
对于每个F,用式子6中得到的置信图高斯估计分布当作软掩模,来得到每个landmark的局部特征。C小于S,因为里面有一个线性操作子Wk,专门用来降维,将landmark的feature表示降到低维空间,使得可以用特定有限bits的pattern来表示。
3.Landmark-based decoder
因为是encoder-decoder结构,所以图像重建也是可以的。
首先采用以前面1中得到的landmark的坐标为中心得到的各向同性高斯分布图当作raw score map。背景通道被置为1,再across channels正则化R得到D。
然后结合2中得到的fk,把D当作软掩模,进行一个全局反池化,得到最后的feature map。
里面的η是非线性激活函数,如LeakyReLU等等。
但是,D和F得到了之后,如果只用一组,可能效果不好,因为要平衡D中的密度锐度。若D中越密,那么早期反向传播的像素点就会越少,对网络的迭代不好,所以作者的做法是用不同的σdec得到很多组D和F,用它们来进行图像的重建。
最后的loss函数如下:
其中Lrecon为
λ取0.5
(最近任务多,先写完网络结构了,实验部分后面补)