表示,比较和学习:类别无关计数的相似性感知框架.
类不可知计数(Class-agnostic counting, CAC)的目的是在给定几个目标样本的情况下对查询图像中的所有目标进行计数。通常的做法是从样本中提取视觉特征,并将其与查询图像进行匹配,以推断查询目标的数量。这类做法的两个重要组成部分是特征表示和相似度度量。
本文提出了Bilinear Matching Network (BMNet),该框架以端到端方式学习相似度度量。BMNet将固定的内积相似度度量扩展为可学习的双线性相似度度量,通过捕获特征通道之间的关系来度量相似性。作者将BMNet扩展到BMNet+,使用自注意力提取特征的类内信息,使用特征选择模块计算动态相似性度量,对相似性图施加相似性损失。
⚪ BMNet
BMNet网络结构如下。输入目标样本$Z$和查询图像$X$,特征提取器将查询图像$X$映射为下采样特征映射$F(X)$,将目标样本$Z$映射为全局平均池化的特征向量$F(Z)$。然后计算两个映射的双线性相似度:
\[S_{ij}(X,Z) = (PF_{ij}(X)+b_x)^T(QF(Z)+b_z)\]其中$P,Q,b_x,b_z$是可学习参数。
⚪ BMNet+
改进1:动态相似度度量
双线性相似度增加了模型计算相似度的灵活性。然而,学习到的相似度度量在训练后保持固定,并且在推理过程中平等地对待所有类别。作者进一步设计了一种动态相似度度量,它可以自适应地关注目标样本的关键模式。以$QF(Z)+b_z$为条件生成通道注意力分布$a$,然后计算:
\[S_{ij}(X,Z) = (PF_{ij}(X)+b_x)^T[a \circ (QF(Z)+b_z)]\]下图可视化说明了学习到的动态注意力权重$a$。对于同一类别的目标样本(图a),生成的动态注意力权重变得相似;在两个视觉上接近的类别中,也可以观察到类似的现象(图b),说明动态相似度度量学会关注相似类别的相似视觉模式。相比之下,给定两个视觉上不同的类别(图c),生成的动态注意力权重有明显的区别。
改进2:相似度损失
作者进一步发现对相似匹配结果进行直接监督有助于指导相似度建模。理想的相似度度量应该输出相同类别的两个特征之间的高相似性和不同类别的低相似性。相似性图中的每个位置对应查询图像中的一个图像块。如果该图像块包含多个目标,则分配一个正标签,如果不包含目标,则分配一个负标签。则可以构造对比损失:
\[\mathcal{L}_{sim} = -\log \frac{\sum_{i \in \mathcal{P}} \exp(S_i)}{\sum_{i \in \mathcal{P}} \exp(S_i)+\sum_{j \in \mathcal{N}} \exp(S_j)}\]改进3:自相似度模块
在现实中,同一类别的目标样本经常出现不同的属性,如姿势和尺度。这种类内差异对相似性匹配提出了很大的挑战。作者用来自同一类别但具有不同属性的其他目标样本的补充信息来增强每个目标样本的特征。具体地,首先收集目标样本特征$F(Z)$和查询图像特征$F(X)$,然后通过自注意力机制更新这些特征,并以可学习的比例$γ$添加回原始特征。