Graph-propagation based Correlation Learning for Weakly Supervised Fine-grained Image Classification

文章提出了一个GCL模型,它主要的创新在于两个部分,其一是criss-cross graph propagation (CGP),其二是correlation feature strengthening (CFS) ,CGP的目的是用来在区域的discriminative ability学习中,同时考虑全局图像级上下文和局部空间上下文。CFS的目的是用来探索区域特征向量之间的内部语义相关性,以获得更好的判别能力。
思维导图
在这里插入图片描述

Model

在这里插入图片描述

criss-cross graph propagation

CGP模块,用backbone对输入图像进行特征提取,得到 M 0 ∈ R C × H × W M_0\in \Bbb{R}^{C\times H\times W} M0RC×H×W,然后将其输入的CGP模块,整个的CGP模块的输出是
在这里插入图片描述
其中 F \mathcal{F} F包含节点表示,邻接矩阵的计算,图更新。CGP模块最终的输出是 M S ∈ R C × H × W M_S\in \Bbb{R}^{C\times H\times W} MSRC×H×W

Node representation. node的产生是通过简单的卷积运算实现的,
在这里插入图片描述
W T W_T WT是一个随机初始化的,通过3个不同的 f f f计算得到最初的三个node的feature maps M G 1 , M G 2 , M G 3 M_G^1,M_G^2,M_G^3 MG1MG2MG3。那么 M G M_G MG中的每一个在固定空间位置跨通道的 V T ∈ R C × 1 × 1 V_T\in \Bbb{R}^{C\times 1\times 1} VTRC×1×1在图像中都有一个对应的小区域。(我感觉就类似于感受野吧!!! 不是很确定),将这个小区域作为 node representation。

Adjacent matrix computing. 在feature map M G 1 , M G 2 M_G^1,M_G^2 MG1,MG2中,得到了 W × H W\times H W×H C \mathcal{C} C维的向量,在两个特征图之间用node vector 进行內积,得到邻接矩阵,用它来说明节点之间的相关程度。在 M G 1 , M G 2 M_G^1,M_G^2 MG1,MG2中的 p 1 , p 2 p_1 ,p_2 p1,p2之间的相关性示例如下,
在这里插入图片描述
V 1 p 1 , V 2 p 2 V_1^{p_1},V_2^{p_2} V1p1V2p2分别代表 p 1 , p 2 p_1,p_2 p1,p2node representation vectors。 p 2 p_2 p2 p 1 p_1 p1不是随意的,它们之间有一定的约束,即他们必须处在同一行或同一列。因此在 M G 1 M_G^1 MG1中的每个节点得到 W + H − 1 W+H-1 W+H1个相关值,组织通道中的相对位移并获得输出相关矩阵 M C ∈ R K × H × W M_C\in \Bbb{R}^{K\times H\times W} MCRK×H×W,另 K = W + H − 1 K=W+H-1 K=W+H1,然后 M C M_C MC层经过softmax层去产生邻接矩阵 R ∈ R K × H × W R\in \Bbb{R}^{K\times H\times W} RRK×H×W
在这里插入图片描述
R i j k R^{ijk} Rijk是第i行,第j列,第k个通道的相关权重系数。
M G 3 ∈ R C × H × W M_G^{3}\in \Bbb{R}^{C\times H\times W} MG3RC×H×W和邻接矩阵输入到更新操作
在这里插入图片描述
其中 V 2 w h V_2^{wh} V2wh M G 3 M_G^3 MG3的第w行,第h列的节点, ( w , h ) (w,h) (w,h)在集合中 [ ( i , 1 ) , . . . , ( i , H ) , ( 1 , j ) , . . . , ( W , j ) ] [(i,1),...,(i,H),(1,j),...,(W,j)] [(i,1),...,(i,H),(1,j),...,(W,j)]。可以通过将其水平和垂直方向的节点与相应的相关权重系数 R i j k R^{ijk} Rijk进行组合来更新节点 M U i j M^{ij}_U MUij
与ResNet相似,采用残差学习
在这里插入图片描述
其中 α \alpha α是一个自适应权重参数,并逐渐学习为判别discriminative correlation features分配更多权重,它的范围是【0,1】,用这种方式, M S M_S MS聚合了原始输入特征和相关特征,以挑选出 more discriminative patches,然后将 M S M_S MS作为输入,提供给CGP的下一个迭代。

Discriminative Patch Samping. 为了使网络能够学习不同大小的discriminative regions,结合了特征金字塔的思想,从三种不同比例的feature map中产生patches
在这里插入图片描述
得到残差特征图 M S M_S MS之后,我们将其输入到由 1 × 1 × N 1\times 1\times N 1×1×N和一个sigmoid函数 σ \sigma σ组成的discriminative response layer来学习discriminative probability maps S ∈ R N × H × W S\in \Bbb{R}^{N\times H\times W} SRN×H×W,来说明最后的discriminative regions对最终分类的影响, N N N是feature map中给定位置的default patches的数量。然后,为每一个default patch p i j k p_{ijk} pijk分配一个discriminative probability value ,
在这里插入图片描述
其中 ( t x , t y , t w , t h ) (t_x,t_y,t_w,t_h) (tx,ty,tw,th)表示的是每一个patch的坐标, s i j k s_{ijk} sijk是第 i i i行,第 j j j列,第 k k k个通道的discriminative probability value。最后网络根据概率值选择前M个patch,其中M为超参数。

Correlation Feature Strengthening

设计的这个模块就是来探索区域特征向量之间的内部语义相关性,以获得更好的判别能力。
Node representation and Adjacent matrix computing. 为了构建图来挖掘所选patches之间的相关性,我们从 M M M个patches中提取 D D D维特征向量作为 M M M个节点,输入到GCN网络中,然后就是邻接矩阵的计算,这个矩阵表示了节点之间的相关性,计算方式如下
在这里插入图片描述
R i j R_{ij} Rij表示两个节点 n i , n j n_i,n_j ni,nj之间的相关系数, c i j c_{ij} cij是权重矩阵 C ∈ R M × M C\in \Bbb{R}^{M\times M} CRM×M中的相关权重系数,通过反向传播学习 c i j c_{ij} cij来调整相关系数 R i j R_{ij} Rij,然后对邻接矩阵的每一行执行softmax,进行归一化操作,以确保连接到一个节点的所有边的总和等于1。
在这里插入图片描述
构造的相关图说明了所选patches之间的关系强度。
Graph updating. 将M个节点的特征表示 N ∈ R M × D N\in \Bbb{R}^{M\times D} NRM×D和对应的邻接矩阵 A ∈ R M × M A\in \Bbb{R}^{M\times M} ARM×M作为GCN网络的输入,来更新节点的特征为 N ′ ∈ R M × D ′ N^{'}\in \Bbb{R}^{M\times D^{'}} NRM×D,最终一层的GCN能够表示为
在这里插入图片描述
其中 W ∈ R D × D ′ W\in \Bbb{R}^{D\times D^{'}} WRD×D是学习的权重参数, h h h是非线性函数(ReLu in the experiments)

Loss Function

设计了一个联合损失函数,来将CGP和CFS进行端到端的训练,包括basic fine-grained classification loss L c l s \mathcal{L}_{cls} Lcls、guided loss L g u d \mathcal{L}_{gud} Lgud、rank loss L r a n k \mathcal{L}_{rank} Lrank和feature strengthening loss L f e a \mathcal{L}_{fea} Lfea

在这里插入图片描述
其中 λ 1 , λ 2 , λ 3 \lambda_1,\lambda_2,\lambda_3 λ1,λ2,λ3是三个平衡的超参数,在实验验证后,将其设置为1.(emmmm 搞着一锤子干嘛)
使用X表示原始图像,定义 P = P 1 , P ) 2 , . . . , P N P={P_1,P_)2,...,P_N} P=P1,P)2,...,PN P ′ = P 1 ′ , P 2 ′ , . . . , P N ′ P^{'}={P_1^{'},P_2^{'},...,P_N^{'}} P=P1,P2,...,PN分别为使用CFS和没有使用CFS的selected discriminative patches, C \mathcal{C} C是置信度函数,它反映了分类为正确类别的可能性, S = S 1 , S 2 , . . . , S N S={S_1,S_2,...,S_N} S=S1,S2,...,SN表示discriminative probability scores.
在这里插入图片描述
感觉最后的这个损失上限应该是M,因为将M个patch输入到后续的CFS中,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值