InfoSeg: Unsupervised Semantic Image Segmentation with Mutual Information Maximization
【无监督语义分割】InfoSeg: Unsupervised Semantic Image Segmentation with Mutual Information Maximization
这是一个需要分割成两个类别的图片示例,首先原图输入 CNN 网络有两个输出端,一个是和原图成比例缩小的局部特征图 $L$,一个是个数和类别数一样的全局特征 $H$。$H$ 大小为 $1$,通道数和 $L$ 一致。
<aside> 💡 每个全局特征 $H$ 对应一个类别, 然后与 $L$ 逐点相乘(计算相似度), 然后softmax得到每个点类别概率.
</aside>
之后每个 H 与特征图做点积得到预测的初步分割图,对几张 $H$ 进行 Scaled Softmax 操作以确定每个像素点属于哪个类别的概率:
$$ V _ { i , j , k } = \frac { \exp \left( \tau \cdot \left\langle \mathbf { L } _ { i , j } , \mathbf { H } _ { k } \right\rangle \right) } { \sum _ { \hat { k } } \exp \left( \tau \cdot \left\langle \mathbf { L } _ { i , j } , \mathbf { H } _ { \hat { k } } \right\rangle \right) } $$
之后其实分割图就可以通过该方法得到啦,上图是得到概率,分割图直接明确哪个类别最大就好了:
$$ k _ { i , j } = \underset { k \in \mathcal { Z } } { \arg \max } V _ { i , j , k } $$
无监督方法则进一步通过合成特征来达到,如上图结构所示,之后将每个类别概率值与其 H 相乘并加和就得到了加权合成特征:
$$ S _ { \boldsymbol { \theta } } ^ { ( i , j ) } ( \mathbf { X } ) = \sum _ { k } V _ { i , j , k } \cdot H _ { \boldsymbol { \theta } } ^ { ( k ) } ( \mathbf { X } ) $$
最后,我们的目标就是使正例的局部特征与该合成特征互信息最大:
$$ \max _ { \theta } \mathbb { E } _ { \mathbf { X } } \left[ \frac { 1 } { U V } \sum _ { i , j } I \left( L _ { \boldsymbol { \theta } } ^ { ( i , j ) } ( \mathbf { X } ) ; S _ { \theta } ^ { ( i , j ) } ( \mathbf { X } ) \right) \right] $$
这里最小化的是 JS 散度:
$$ \widehat { I } _ { J S D } \left( L _ { \boldsymbol { \theta } } ( \mathbf { X } ) ; S _ { \boldsymbol { \theta } } ( \mathbf { X } ) \right) : = \mathbb { E } _ { \mathbb { P } } \left[ - \operatorname { sp } \left( - \left\langle L _ { \boldsymbol { \theta } } ( x ) , S _ { \boldsymbol { \theta } } ( x ) \right\rangle \right) \right] - \mathbb { E } _ { \mathbb { P } \times \overline { \mathbb { P } } } \left[ \mathrm { sp } \left( \left\langle L _ { \boldsymbol { \theta } } ( x ) ; S _ { \boldsymbol { \theta } } \left( x ^ { \prime } \right) \right\rangle \right] \right. $$