From dfc98a1f56dd5d0074d710367edd4df76d72d96b Mon Sep 17 00:00:00 2001 From: Zhijie Zheng <42537498+0809zheng@users.noreply.github.com> Date: Thu, 4 Jul 2024 15:35:27 +0800 Subject: [PATCH] Add files via upload --- _posts/paper/2023/2023-05-02-gmn.md | 29 +++++ _posts/paper/2023/2023-05-03-famnet.md | 45 ++++++++ _posts/paper/2023/2023-05-04-laonet.md | 47 ++++++++ _posts/paper/2023/2023-05-05-safecount.md | 38 +++++++ _posts/paper/2023/2023-05-06-bmnet.md | 59 ++++++++++ _posts/paper/2023/2023-05-07-rcc.md | 32 ++++++ _posts/paper/2023/2023-05-08-countingdetr.md | 47 ++++++++ _posts/paper/2023/2023-05-09-reprpn.md | 32 ++++++ _posts/paper/2023/2023-05-10-countr.md | 67 ++++++++++++ _posts/paper/2023/2023-05-11-loca.md | 39 +++++++ _posts/paper/2023/2023-05-12-clipcount.md | 65 +++++++++++ _posts/paper/2023/2023-05-13-spdcn.md | 71 ++++++++++++ _posts/paper/2023/2023-05-14-zsc.md | 38 +++++++ _posts/paper/2023/2023-05-15-cacvit.md | 48 +++++++++ _posts/paper/2023/2023-05-17-gcnet.md | 48 +++++++++ _posts/paper/2023/2023-05-18-cfocnet.md | 24 +++++ _posts/paper/2023/2023-05-19-vcn.md | 38 +++++++ _posts/paper/2023/2023-05-20-samcounting.md | 28 +++++ _posts/paper/2023/2023-05-21-clipcount.md | 73 +++++++++++++ _posts/paper/2023/2023-05-22-clipcounting.md | 61 +++++++++++ _posts/paper/2023/2023-05-24-dsaac.md | 47 ++++++++ _posts/paper/2023/2023-05-25-movie.md | 26 +++++ _posts/paper/2023/2023-05-26-caoc.md | 35 ++++++ _posts/paper/2023/2023-05-27-lc.md | 107 +++++++++++++++++++ _posts/paper/2023/2023-05-28-rlc.md | 57 ++++++++++ _posts/paper/2023/2023-06-30-countx.md | 40 +++++++ _posts/paper/2023/2023-09-09-abc123.md | 56 ++++++++++ _posts/paper/2023/2023-11-28-semaug.md | 34 ++++++ _posts/paper/2023/2023-12-27-vlcounter.md | 81 ++++++++++++++ 29 files changed, 1412 insertions(+) create mode 100644 _posts/paper/2023/2023-05-02-gmn.md create mode 100644 _posts/paper/2023/2023-05-03-famnet.md create mode 100644 _posts/paper/2023/2023-05-04-laonet.md create mode 100644 _posts/paper/2023/2023-05-05-safecount.md create mode 100644 _posts/paper/2023/2023-05-06-bmnet.md create mode 100644 _posts/paper/2023/2023-05-07-rcc.md create mode 100644 _posts/paper/2023/2023-05-08-countingdetr.md create mode 100644 _posts/paper/2023/2023-05-09-reprpn.md create mode 100644 _posts/paper/2023/2023-05-10-countr.md create mode 100644 _posts/paper/2023/2023-05-11-loca.md create mode 100644 _posts/paper/2023/2023-05-12-clipcount.md create mode 100644 _posts/paper/2023/2023-05-13-spdcn.md create mode 100644 _posts/paper/2023/2023-05-14-zsc.md create mode 100644 _posts/paper/2023/2023-05-15-cacvit.md create mode 100644 _posts/paper/2023/2023-05-17-gcnet.md create mode 100644 _posts/paper/2023/2023-05-18-cfocnet.md create mode 100644 _posts/paper/2023/2023-05-19-vcn.md create mode 100644 _posts/paper/2023/2023-05-20-samcounting.md create mode 100644 _posts/paper/2023/2023-05-21-clipcount.md create mode 100644 _posts/paper/2023/2023-05-22-clipcounting.md create mode 100644 _posts/paper/2023/2023-05-24-dsaac.md create mode 100644 _posts/paper/2023/2023-05-25-movie.md create mode 100644 _posts/paper/2023/2023-05-26-caoc.md create mode 100644 _posts/paper/2023/2023-05-27-lc.md create mode 100644 _posts/paper/2023/2023-05-28-rlc.md create mode 100644 _posts/paper/2023/2023-06-30-countx.md create mode 100644 _posts/paper/2023/2023-09-09-abc123.md create mode 100644 _posts/paper/2023/2023-11-28-semaug.md create mode 100644 _posts/paper/2023/2023-12-27-vlcounter.md diff --git a/_posts/paper/2023/2023-05-02-gmn.md b/_posts/paper/2023/2023-05-02-gmn.md new file mode 100644 index 00000000..6ee73c07 --- /dev/null +++ b/_posts/paper/2023/2023-05-02-gmn.md @@ -0,0 +1,29 @@ +--- +layout: post +title: 'Class-Agnostic Counting' +date: 2023-05-02 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667be090d9c307b7e973869e.png' +tags: 论文阅读 +--- + +> 类别无关计数. + +- paper:[Class-Agnostic Counting](https://arxiv.org/abs/1811.00472) + +如果一幅图像可以用一些特定的重复图像块表示,则该图像具有**自相似性(self-similarity)**,这些特定的重复块也称作模板块(**exemplar**)。基于图像自相似性,图像计数问题可重定义为图像匹配问题:图像中的自相似块匹配问题。 + +![](https://pic.imgdb.cn/item/667be164d9c307b7e974e455.png) + +本文设计了**Generic Matching Network(GMN)**,可按类未知方法进行计数;为了将**GMN**适用于不同的用户要求,采用了一个**adapter module**,使用少量带标记的样本和部分训练参数进行小样本学习。 + +**GMN**网络包含3个模块: +- **embedding**:输入图像分别是**exemplar**图像块和全分辨率完整图像,通过**resnet-50**双流网络编码为高级语义特征; +- **matching**:将**exemplar**图像块的特征向量大小调整为与全分辨率图像特征向量大小相同,将两者连接后生成密度图; +- **adapting**:在**embedding**模块增加**residual adapter modules**;在**adaption**阶段冻结预训练**GMN**的所有参数,微调该模块。 + +![](https://pic.imgdb.cn/item/667be2b3d9c307b7e976e54e.png) + +实验时将预测的密度图的局部最大(高于阈值T,T通常设为验证集上最大的**F1 score**值)设为计数结果。 + +![](https://pic.imgdb.cn/item/667be38ed9c307b7e9784a68.png) diff --git a/_posts/paper/2023/2023-05-03-famnet.md b/_posts/paper/2023/2023-05-03-famnet.md new file mode 100644 index 00000000..3a991bd9 --- /dev/null +++ b/_posts/paper/2023/2023-05-03-famnet.md @@ -0,0 +1,45 @@ +--- +layout: post +title: 'Learning To Count Everything' +date: 2023-05-03 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667cbee2d9c307b7e9b943f6.png' +tags: 论文阅读 +--- + +> 学习计数任意目标. + +- paper:[Learning To Count Everything](https://arxiv.org/abs/2104.08391) + +本文提出了一个小样本计数网络**FamNet**,相比于流行的计数网络,通用性更强。流行的计数网络多数针对单类物体,比如针对人群、动物、细胞、交通工具、植物等。该模型通用性更强,但可能对某种类别计数不如专门训练过的网络。 + +**FamNet**的网络结构如图所示。模型输入原图和几个标注框的位置,通过冻结的**resnet 50**的全卷积部分提取特征图,并通过**FPN**的多尺度来强化特征;然后通过**ROI pooling**将标注框的特征池化到统一大小;最后通过卷积计算**ROI**特征和全图特征的相关性,并通过密度估计模块(由5个卷积和3个下采样层组成)预测密度图。 + +![](https://pic.imgdb.cn/item/667cc6d2d9c307b7e9c3e8a0.png) + +在训练时需要构造密度图作为**Ground Truth**。构建密度图的过程:使用适当的窗口尺寸进行高斯平滑。具体来说,首先采用点标注来估计目标的尺寸:计算每一个点和最近邻点的距离以及所有点的平均距离,这一平均距离作为高斯滑动窗口的尺寸用来产生密度图,高斯分布的标准差设为窗口尺寸的四分之一。损失采用均方误差(**MSE**)。 + +在推理阶段,提出一种适应损失用于提升估计模块的精度,关键在于充分利用边界框样本的位置信息(在训练阶段利用的是样本外观特征信息)。推理阶段继续迭代损失更新网络。 + +适应损失函数由**Min-Count loss**和**Perturbation Loss**组成: + +$$ +\mathcal{L}_{Adapt} = \lambda_1\mathcal{L}_{MinCount} + \lambda_2\mathcal{L}_{Per} +$$ + +其中**Min-Count loss**约束每个目标框对应位置的物体数量应该至少是1个,若小于1个就产生损失,大于等于1不产生损失: + +$$ +\mathcal{L}_{MinCount}=\sum_{b\in B}\max(0, 1-||Z_b||_1) +$$ + +**Perturbation Loss**是指给定一个需要跟踪的物体以及它的标注框,当一个框位于标注框的位置时有最大的响应值,当这个框偏离了标注框,它的响应值会随着干扰距离的增加而呈指数衰减,通常为高斯分布。设$G_{h\times w}$为尺寸是$h\times w$的2D高斯分布图,干扰损失计算为: + + +$$ +\mathcal{L}_{Per} = \sum_{b\in B}||Z_b-G_{h\times w}||_2^2 +$$ + +此外作者还开源了一个小样本物体计数的数据集**FSC147**,共有6135张图像,147类物体,主要由厨房餐具、办公文具、信纸、交通工具、动物等组成。数量从7-3731,平均每张图的物体数量是56。通常每张图只有一类物体有标注(点标注),每张图只有三个物体有额外的框标注。数据集的划分:训练集:3659张,89类;验证集:1286张,29类;测试集:1190张,29类,总计147类。 + +![](https://pic.imgdb.cn/item/667cc83ed9c307b7e9c6820c.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-04-laonet.md b/_posts/paper/2023/2023-05-04-laonet.md new file mode 100644 index 00000000..53a9c645 --- /dev/null +++ b/_posts/paper/2023/2023-05-04-laonet.md @@ -0,0 +1,47 @@ +--- +layout: post +title: 'Object Counting: You Only Need to Look at One' +date: 2023-05-04 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667cccded9c307b7e9cd1091.png' +tags: 论文阅读 +--- + +> 目标计数:你只需要看一个. + +- paper:[Object Counting: You Only Need to Look at One](https://arxiv.org/abs/2112.05993) + +本文旨在解决单次目标计数的问题,具体来说,仅采用包含一个示例样本边界框的图像作为输入,来统计出该类别所有目标的个数。单样本计数存在的主要问题: +1. 目标计数任务中包含不同的类别,甚至一张图片里面就有多个类别,而在少样本计数中,这些类别在训练和推理阶段不会重叠; +2. 在单样本计数中,模型仅仅能从单个实例中学习; +3. 目标的尺寸、形状可能差异较大。 + + +本文提出了一种**Look At One instance(LaoNet)**网络来解决该问题。**LaoNet**主要由三个部分组成:特征提取、特征关联、密度回归。 + +![](https://pic.imgdb.cn/item/667cce3ad9c307b7e9cf0745.png) + +单样本计数由训练数据集$$\left(I_{t},s_{t},y_{t}\in \mathcal T\right)$$和序列集$$\left(I_{q},s_{q}\in \mathcal Q\right)$$组成,而模型的输入由一幅图像$I$和一个边界框$s$组成。训练时,$y_t$作为点标注提供;推理时,单样本$s_q$和图像一起提供。 + +**特征提取**模块采用**VGG-19**作为**backbone**,取其最后一层输出直接展平。对于单样本,采用尺度聚合机制融合不同尺度的信息: + +$$ +S=\operatorname{Concat}\left(\mathcal{F}^{l}(s), \mathcal{F}^{l-1}(s), \ldots, \mathcal{F}^{l+1-\delta}(s)\right) +$$ + +其中,$l$为CNN的层数,$\mathcal{F}^{i}$为第$i_{th}$层的特征图,$\delta\in[1,l]$决定了聚合哪些层的特征。另外,加上位置特征以区分整合的尺度信息。 + +**特征关联**模块用于学习查询样本和图像特征之间的关系。首先通过**Self-Attention**模块分别学习两种图像序列的类内关系,然后通过关联注意力学习两者的类间关系,这使得网络能够对不同尺度目标更加鲁棒。 + +**密度回归**模块用于回归密度图,密度回归器由1个下采样层和3个带有ReLU激活的卷积层(2个1x1,1个1x1)组成。采用欧几里得距离来衡量预测的密度图与**GT**密度图之间的差异: + +$$ +\mathcal{L}_{E}=\left\|D^{g t}-D\right\|_{2}^{2} +$$ +​ +其中$D$为预测的密度图,$D^{gt}$为**GT**密度图。为了提高局部样式一致性,还采用了$\textrm{SSIM}$损失,最终总损失为: + +$$ +\mathcal{L}=\mathcal{L}_{E}+\lambda \mathcal{L}_{S S I M} +$$ + diff --git a/_posts/paper/2023/2023-05-05-safecount.md b/_posts/paper/2023/2023-05-05-safecount.md new file mode 100644 index 00000000..a7024e33 --- /dev/null +++ b/_posts/paper/2023/2023-05-05-safecount.md @@ -0,0 +1,38 @@ +--- +layout: post +title: 'Few-shot Object Counting with Similarity-Aware Feature Enhancement' +date: 2023-05-05 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667cd665d9c307b7e9db915f.png' +tags: 论文阅读 +--- + +> 通过相似度感知特征增强实现少样本目标计数. + +- paper:[Few-shot Object Counting with Similarity-Aware Feature Enhancement](https://arxiv.org/abs/2201.08959) + +小样本计数(**Few-Shot Counting, FSC**)是指给定一张或几张**support**描述计数的物体类别,并给定一张待计数的图像**query**,**FSC**希望计算出该类别的物体在**query**中出现的个数。除了在训练集中出现的类别 (称为**base classes**),在测试阶段,**FSC**还需要处理完全没有见过的类别 (称为**novel classes**)。 + +![](https://pic.imgdb.cn/item/667cd747d9c307b7e9dcee92.png) + +小样本计数的**baselines**主要有两类。第一类是基于特征的方法(下图a),将**support**和**query**的特征连接后训练一个回归头部,计算密度图。第二类是基于相似度的方法(下图b),将**support**和**query**的特征计算一个距离度量,得到一张相似度图,之后从相似度图回归密度图。前者对于语义信息的保持更好,后者对于**support**和**query**之间的关系感知更好。 + +![](https://pic.imgdb.cn/item/667cd758d9c307b7e9dd04bf.png) + +本文提出一种**Similarity-Aware Feature Enhancement**(**SAFECount**)模块。首先采用**Similarity Comparison Module (SCM)** 对比**support**和**query**的特征并生成相似度图;然后采用**Feature Enhancement Module (FEM)**将相似度图作为引导,用**support**的特征来提升**query**的特征;最后从提升过的特征中回归密度图。**SAFECount**既保持了很好的语义信息,又对于**support**和**query**之间的关系有良好的感知。 + +![](https://pic.imgdb.cn/item/667cd778d9c307b7e9dd3107.png) + +在**Similarity Comparison Module (SCM)**中,首先将**support**和**query**的特征利用共享的卷积层投影到一个对比空间。之后将**support**作为卷积核,在**query**上滑动,计算得到一张得分图。最后通过**exemplar norm**(从**support**的维度进行**norm**)和**spatial norm**(从空间的维度进行**norm**)对得分图的值进行**norm**,得到一张相似度图。 + +在**Feature Enhancement Module (FEM)**中,首先将相似度图作为权重,对**support**进行加权。具体的,对**support**翻转作为卷积核,对相似度图进行卷积,得到一张相似度加权的特征。之后将相似度加权的特征与**query**的特征进行融合,得到提升过的特征。 + +提升过的特征与**query**的特征具有相同的形状。因此提升过的**feature**可以再次作为**query**的特征输入**SAFECount Block**。实验结果证明,只需要一个**block**即可达到非常高的精度,增加**block**可以进一步提升精度。最后使用一个回归头部用于从提升过的特征中预测得到密度图。损失函数为预测密度图与**ground-truth**之间的**MSE loss**。 + +**SAFECount**在小样本计数的数据集**FSC-147**的**Test Set**上显著高于其他模型。可视化结果表明**SAFECount**不仅可以提供精准的计数结果,还可以提准精准的定位信息。 + +![](https://pic.imgdb.cn/item/667cd7c9d9c307b7e9dda04f.png) + +对相似度图的可视化结果表明,**SAFECount**可以在成堆且相互遮挡的物体中,得到非常清晰的物体边界信息,这有助于区分这些成堆且相互遮挡的物体,所以可以得到更加准确的计数结果。 + +![](https://pic.imgdb.cn/item/667cd790d9c307b7e9dd534d.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-06-bmnet.md b/_posts/paper/2023/2023-05-06-bmnet.md new file mode 100644 index 00000000..dacf8ce4 --- /dev/null +++ b/_posts/paper/2023/2023-05-06-bmnet.md @@ -0,0 +1,59 @@ +--- +layout: post +title: 'Represent, Compare, and Learn: A Similarity-Aware Framework for Class-Agnostic Counting' +date: 2023-05-06 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667d03b3d9c307b7e927f874.png' +tags: 论文阅读 +--- + +> 表示,比较和学习:类别无关计数的相似性感知框架. + +- paper:[Represent, Compare, and Learn: A Similarity-Aware Framework for Class-Agnostic Counting](https://arxiv.org/abs/2203.08354) + +类不可知计数(**Class-agnostic counting, CAC**)的目的是在给定几个目标样本的情况下对查询图像中的所有目标进行计数。通常的做法是从样本中提取视觉特征,并将其与查询图像进行匹配,以推断查询目标的数量。这类做法的两个重要组成部分是特征表示和相似度度量。 + +本文提出了**Bilinear Matching Network (BMNet)**,该框架以端到端方式学习相似度度量。**BMNet**将固定的内积相似度度量扩展为可学习的双线性相似度度量,通过捕获特征通道之间的关系来度量相似性。作者将**BMNet**扩展到**BMNet+**,使用自注意力提取特征的类内信息,使用特征选择模块计算动态相似性度量,对相似性图施加相似性损失。 + +![](https://pic.imgdb.cn/item/667d0ca4d9c307b7e938a4fc.png) + +## ⚪ 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$是可学习参数。 + +![](https://pic.imgdb.cn/item/667d0d59d9c307b7e939c89e.png) + +## ⚪ 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),生成的动态注意力权重有明显的区别。 + +![](https://pic.imgdb.cn/item/667d112ad9c307b7e941c5ce.png) + +### 改进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)$,然后通过自注意力机制更新这些特征,并以可学习的比例$γ$添加回原始特征。 + +![](https://pic.imgdb.cn/item/667d14ddd9c307b7e9485b0f.png) + diff --git a/_posts/paper/2023/2023-05-07-rcc.md b/_posts/paper/2023/2023-05-07-rcc.md new file mode 100644 index 00000000..c6d0ef6d --- /dev/null +++ b/_posts/paper/2023/2023-05-07-rcc.md @@ -0,0 +1,32 @@ +--- +layout: post +title: 'Learning to Count Anything: Reference-less Class-agnostic Counting with Weak Supervision' +date: 2023-05-07 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667d17b2d9c307b7e94d8654.png' +tags: 论文阅读 +--- + +> 学习任意计数:弱监督的无参考类别无关计数. + +- paper:[Learning to Count Anything: Reference-less Class-agnostic Counting with Weak Supervision](https://arxiv.org/abs/2205.10203) + +这项工作旨在解决没有参考图像或点级监督的情况下任意类别目标的计数任务。这类任务需要解决两个问题:想要计数的目标在哪里,以及给定目标的类别是否出现在其他地方。对于第一个问题,需要一个通用的、信息丰富的特征空间。作者发现自监督知识蒸馏非常适合学习这样的特征空间。对于第二个问题,需要理解图像的全局背景,作者发现视觉**Transformer**非常适合这项任务。 + +![](https://pic.imgdb.cn/item/667d1a2bd9c307b7e951c201.png) + +作者使用自监督知识蒸馏从**ViT-small**教师网络$g_t$中学习一个学生网络$g_s$,然后通过线性投影直接回归目标计数值。损失函数选用绝对百分比误差$\mid c -\hat{c}\mid / c$。 + +该方法不需要点级注释和高斯密度图。作者认为由于位置注释通常是任意放置的,并且最多只包含关于目标大小和形状的有限信息,因此通过位置函数难以识别所有正确目标的不同部分,阻碍了网络对计数任务的理解。 + +作者在训练时采用了**tiling**增强,以增强图像密度的多样性,让网络更好地理解多个尺度和密度。**tiling**增强把输入图像的大小调整版本平铺到(2×2)网格中。 + +此外,作者发现**FSC-147**数据集中159张图像在数据集中出现了334次,因此提出了该数据集的修订版本**FSC-133**。**FSC-133**有5898张图片,133个类别。训练集、验证集和测试集分别有来自82、26和25个类的3877、954和1067张图像。 + +结果表明,所提方法不需要参考图像、点级注释或测试时微调,所得结果也是具有竞争力的。这表明一个非常适合计数的架构和一个简单的、以计数为中心的目标函数的组合可以在没有任何基于位置的信息的情况下学习计数的有意义的概念表示。 + +![](https://pic.imgdb.cn/item/667d1f2ed9c307b7e95b297d.png) + +为了验证网络正在学习有意义的信息,从线性投影权重加权的计数特征的奇异值分解中可视化了最重要的值。由于逐块计数特征的分辨率相对较低,因此训练了一个由3组卷积-ReLU-上采样组成的定位头,将训练计数特征的逐块分辨率(28×28)提高到逐像素密度图预测。 + +![](https://pic.imgdb.cn/item/667d1f4ed9c307b7e95b5db7.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-08-countingdetr.md b/_posts/paper/2023/2023-05-08-countingdetr.md new file mode 100644 index 00000000..375c3105 --- /dev/null +++ b/_posts/paper/2023/2023-05-08-countingdetr.md @@ -0,0 +1,47 @@ +--- +layout: post +title: 'Few-shot Object Counting and Detection' +date: 2023-05-08 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667d22f7d9c307b7e961e00b.png' +tags: 论文阅读 +--- + +> 少样本目标计数与检测. + +- paper:[Few-shot Object Counting and Detection](https://arxiv.org/abs/2207.10988) + +本文旨在解决少样本目标计数与检测任务(**Few-Shot object Counting and Detection,FSCD**)。在训练阶段,标签是图像中几个示例边界框和所有目标的点注释;在测试阶段,给定给定目标类的几个示例边界框,计数和检测该目标类的所有目标。 + +![](https://pic.imgdb.cn/item/667d2470d9c307b7e96495ac.png) + +作者提出了基于不确定性感知点的少样本目标检测与计数模型**Counting-DETR**。该模型采用一种两阶段训练策略,首先在几个样例边界框上预训练,然后用预训练网络以点标注为查询点生成伪边界框,最后使用这些边界框作为监督来训练目标检测。考虑到伪边界框的不确定性,引入了不确定性损失来正则化边界框的学习。 + +![](https://pic.imgdb.cn/item/667d260fd9c307b7e9674e6a.png) + +首先使用**CNN**主干从输入图像$I$中提取特征映射$F^I$,然后在样本边界框$B_k$的中心提取样本特征向量$f^B_k$,通过对这些特征向量进行平均得到样本特征向量$f^B=\sum_k f^B_k / K$。将样本特征向量$f^B$集成到图像特征$F^I$中,生成样本集成特征映射$F^A$: + +$$ +F^A = W_{proj} * [F^I;F^I\otimes f^B] +$$ + +**Counting-DETR**以样本集成的特征映射$F^A$和$M$个查询点$$\{p_m\}^M_{m=1}$$作为输入,并预测每个查询点$p_m$的边界框$b_m$。查询点是代表物体位置的初始猜测的2D点。 + +然后使用解码器预测代表该目标在特定位置是否存在的分类分数s,以及将该目标的边界框$µ$进行回归。对于每一对匹配的标签和预测边界框,使用Focal损失、L1损失和GIoU损失的组合作为训练损失函数。 + +此外,**Counting-DETR**还估计了在伪边界框监督下训练时的不确定性$σ$。这种不确定性用于正则化边界框的学习,使得在具有高不确定性的预测中产生较小的损失。这一损失来源于以拉普拉斯分布为特征的预测边界框$\mu$分布与伪边界框$\tilde{\mu}$分布之间的最大似然估计(**MLE**): + +$$ +L_{uncertainty} = \frac{1}{2} \sum_{o \in \{x,y,w,h\}} \frac{|\mu_o-\tilde{\mu}_0|}{\sigma_o} + \log \sigma_o +$$ + +作者对第一阶段生成的伪边界框进行可视化: + +![](https://pic.imgdb.cn/item/667d29ecd9c307b7e96db897.png) + +此外作者引入了两个用于少样本目标计数与检测的新数据集。 +- **FSC-147**数据集是一个包含147个类别和6135张图像的计数数据集,每个图像提供了所有目标的点注释和三个示例框,此数据集不包含所有目标的边界框注释。作者通过为验证集和测试集的所有目标提供边界框注释来扩展**FSC-147**数据集,新数据集命名为**FSCD-147**。 +- **FSCD-LVIS**数据集包含6196张图像和377个类,提取自**LVIS**数据集。对于每个图像,过滤掉面积小于20像素、或宽度或高度小于4像素的所有实例。 + +![](https://pic.imgdb.cn/item/667d2ad0d9c307b7e9701ae5.png) + diff --git a/_posts/paper/2023/2023-05-09-reprpn.md b/_posts/paper/2023/2023-05-09-reprpn.md new file mode 100644 index 00000000..8d1d961b --- /dev/null +++ b/_posts/paper/2023/2023-05-09-reprpn.md @@ -0,0 +1,32 @@ +--- +layout: post +title: 'Exemplar Free Class Agnostic Counting' +date: 2023-05-09 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667d2e4bd9c307b7e975b0b5.png' +tags: 论文阅读 +--- + +> 无需样例的类别无关计数. + +- paper:[Exemplar Free Class Agnostic Counting](https://arxiv.org/abs/2205.14212) + +类别无关的视觉计数器可以对多个类别中的对象进行计数。但是这些计数器需要人类用户通过提供感兴趣的对象类别的几个示例来指定他们想要计数的目标。因此这些计数器不能在任何全自动系统中使用。 + +本文提出了无需样例的类别无关的视觉计数器**Repetitive Region Proposal Network (RepRPN)**,它能够从许多类别中计数对象,在训练时不需要注释对象。该方法的出发点是使用**Region Proposal Network (RPN)**来自动识别图像中所有可能的样本,并使用检测到的样本作为目标样例来计算所有类别中的所有对象。然而**RPN**通常会产生一千个或更多的对象建议,这又需要执行视觉计数器至少一千次,这是一个耗时且计算要求很高的过程。**RepRPN**可以用来自动识别图像中最频繁的类中的少数样本,与传统**RPN**相比,**RepRPN**更适合于视觉计数任务。 + +![](https://pic.imgdb.cn/item/667d3116d9c307b7e97a4824.png) + +**RepRPN**首先使用**Resnet-50**提取输入图像的特征表示,并预测每个**anchor**位置处的**Proposal**边界框、目标得分和重复得分。其中目标得分是该**Proposal**属于任何目标类别而不属于背景类的概率,重复得分是指**Proposal**中的目标在图像中出现的次数。 + +![](https://pic.imgdb.cn/item/667d3242d9c307b7e97c5cf1.png) + +原始**RPN**使用**anchor**位置周围的固定窗口来预测**Proposal**。这个固定大小的窗口并不能覆盖整个图像,因此不包含足够的信息来预测重复得分。为了有效地获取预测重复分数需要的全局信息,使用了编码器自注意力层。 + +使用重复分数从图像中的重复类中选择样本,即选择重复分数最高的**Proposal**作为示例样本。将该样本的卷积特征进行ROI池化,得到样本特征,与整个图像的卷积特征相结合后送入密度预测网络**DPN**。**DPN**是一个全卷积网络,由五个卷积层和三个上采样层组成,用于预测与输入图像具有相同空间维度的密度图。 + +**RepRPN-Counter**的训练分为两个阶段。第一阶段是训练**RepRPN**。一旦训练完成,**RepRPN**将被冻结并用于生成密度估计网络**DPN**的样本。第二阶段是训练**DPN**来预测每个样本的密度图。**RepRPN**的损失包括目标得分的二元交叉熵损失、边界框坐标和重复分数的**Smooth-L1** +损失。**DPN**的损失采用均方误差损失。 + + + diff --git a/_posts/paper/2023/2023-05-10-countr.md b/_posts/paper/2023/2023-05-10-countr.md new file mode 100644 index 00000000..3d116c86 --- /dev/null +++ b/_posts/paper/2023/2023-05-10-countr.md @@ -0,0 +1,67 @@ +--- +layout: post +title: 'CounTR: Transformer-based Generalised Visual Counting' +date: 2023-05-10 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e16c2d9c307b7e9ca82e5.png' +tags: 论文阅读 +--- + +> CounTR:基于Transformer的通用视觉计数. + +- paper:[CounTR: Transformer-based Generalised Visual Counting](https://arxiv.org/abs/2208.13721) + +为了实现通用视觉计数,即给定若干目标示例**exemplar**时在查询图像**query**中计数该目标类别的数量;本文提出了一种基于**Transformer**的模型**CounTR**,首先通过掩码图像重建(**MAE**)进行自监督预训练,然后对下游计数任务进行微调。作者进一步提出了一种可扩展的**Mosaic**数据增强来合成训练图像,以解决现目标计数数据集中长尾分布的挑战。 + +## 1. CounTR + +**CounTR**模型的结构如图所示。输入查询图像$X_i$和若干目标示例$S_i^k$,首先通过视觉编码器$\Phi_{VIT-ENC},\Phi_{CNN-ENC}$对两者进行编码,再通过特征交互模块$\Phi_{FIM}$进行信息交互,最后通过视觉解码器$\Phi_{DECODER}$生成密度图$y_i$。 + +$$ +y_i = \Phi_{DECODER}(\Phi_{FIM}(\Phi_{VIT-ENC}(X_i),\Phi_{CNN-ENC}(S_i^k))) +$$ + +![](https://pic.imgdb.cn/item/667e1acad9c307b7e9d0d602.png) + +视觉编码器$\Phi_{VIT-ENC}$采用**ViT**网络,把查询图像$X_i$拆分成$16\times 16$的**patch**,然后采用12层**Transformer**编码层。视觉编码器$\Phi_{CNN-ENC}$是一个轻量级的卷积网络架构,包括四个卷积层和一个全局平均池化层,将目标示例$S_i^k$编码为向量。 + +特征交互模块$\Phi_{FIM}$是由一系列**Transformer**解码层构成的。图像特征直接作为查询向量,示例特征(或可学习的特殊**token**)通过两个不同的线性投影映射为值向量和键向量。 + +视觉解码器$\Phi_{DECODER}$采用渐进式上采样设计。向量序列首先被重塑为特征映射,然后使用了4个上采样块,每个上采样块由一个卷积层和一个2×双线性插值组成。最后一次上采样后采用线性层作为密度回归量,输出一个单通道密度热图。 + +## 2. 两阶段训练策略 + +**CounTR**模型采用两阶段的训练策略。 +1. 用**MAE**进行自监督预训练。首先将图像划分为规则的不重叠的**patch**,并且采样**patch**的子集作为**ViT**编码器的输入。计算出的特征进一步通过一个轻量级的解码器重建输入图像,其中可学习的掩码**Token**和位置编码的组合用作**Query**。训练损失定义为重建图像与输入图像在像素空间上的均方误差(**MSE**)。 +2. 监督微调。使用预训练的**ViT**权重初始化图像编码器,并在目标计数任务上微调模型。输出图像对应的密度图中目标的统计数量可以通过对离散密度映射求和得到。使用均方误差来评估预测密度图和真实密度图之间的差异。 + +## 3. 可扩展的Mosaic增强 + +**CounTR**模型采用可扩展的**Mosaic**数据增强来合成训练图像,以解决现有计数数据集中的长尾问题。**Mosaic**数据增强包括拼贴(**collage**)和混合(**blending**)两个步骤。 + +拼贴(**collage**)首先从图像中裁剪一个随机大小的正方形区域,并将其缩放到统一的大小(如原始图像大小的四分之一)。在重复区域裁剪多次后,将裁剪的区域拼贴在一起,并更新相应的密度图。拼贴有两种不同的形式:只使用一个图像或四个不同的图像。如果只使用一张图像,可以增加图像中包含的目标数量,这对解决长尾问题有很大帮助;如果使用四张不同的图像,可以显著提高训练图像的背景多样性,增强模型区分不同类别物体的能力。在实验中,如果图像中包含的目标数量超过阈值,则使用同一图像进行拼贴;否则使用四个不同的图像进行拼贴。 + +![](https://pic.imgdb.cn/item/667e1e5dd9c307b7e9d5f122.png) + +简单的裁剪和拼贴并不能合成完美的图像,因为在边界之间仍然存在明显的伪影。混合(**blending**)用比原始图像大小的四分之一稍大的尺寸裁剪图像,用以在边界留下特定的空间用于$α$通道混合。使用随机的$α-通道边界宽度,这使得图像的构图更加逼真。 + +## 4. 测试时归一化 + +**CounTR**模型引入了测试时间归一化策略来校准输出密度图。引入先验知识,即样本边界框内的物体计数应该恰好为$1.0$,因此任何预测偏差都可以通过密度图除以当前样本边界框的预测计数来校准。 + +![](https://pic.imgdb.cn/item/667e1fddd9c307b7e9d8225e.png) + +此外,对于具有极小物体(样本边长小于10像素)的图像,采用滑动窗口预测,将图像平均分成9块,并将其缩放到原始尺寸。物体的总数是9个图像的单个计数结果的总和。 + +![](https://pic.imgdb.cn/item/667e2026d9c307b7e9d8910e.png) + +## 5. 实验分析 + +在**FSC-147**数据集上**CounTR**在零样本和少样本计数方面都显著优于以前的方法。 + +![](https://pic.imgdb.cn/item/667e207cd9c307b7e9d9217c.png) + +下图展示了计数设置的定性结果。**CounTR**模型可以很容易地计算出物体的数量并确定它们的位置。最后一幅图像由于边界框的模糊性,错误地选择了眼镜镜片而不是太阳镜进行计数,这可以通过测试时间归一化来纠正。 + +![](https://pic.imgdb.cn/item/667e20e4d9c307b7e9d9bee5.png) + diff --git a/_posts/paper/2023/2023-05-11-loca.md b/_posts/paper/2023/2023-05-11-loca.md new file mode 100644 index 00000000..f6dd9368 --- /dev/null +++ b/_posts/paper/2023/2023-05-11-loca.md @@ -0,0 +1,39 @@ +--- +layout: post +title: 'A Low-Shot Object Counting Network With Iterative Prototype Adaptation' +date: 2023-05-11 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e230fd9c307b7e9dd1b02.png' +tags: 论文阅读 +--- + +> 基于迭代原型自适应的少样本目标计数网络. + +- paper:[A Low-Shot Object Counting Network With Iterative Prototype Adaptation](https://arxiv.org/abs/2211.08217) + +本文提出了一种少样本目标计数网络**Low-shot Object Counting network with iterative prototype Adaptation (LOCA)**,输入一张图像$I$和一组边界框,预测类别密度图$R$。 + +**LOCA**架构遵循四个步骤:图像特征提取、目标原型提取、原型匹配和密度回归。图像特征提取生成编码后的图像特征,目标原型提取为每个边界框计算一个目标原型,原型匹配通过目标原型和图像特征的深度相关运算构造相似度图,密度回归预测密度图。 + +![](https://pic.imgdb.cn/item/667e250dd9c307b7e9e0e68e.png) + +图像特征提取从**ResNet-50**主干编码的第二、三、四模块提取多尺度特征,并通过1x1卷积调整为相同大小。为了进一步巩固编码后的特征,增加同类别目标之间的相似性,使用了一个全局自注意力模块增强编码后的图像特征。 + +目标原型提取模块(**Object prototype extraction, OPE**)使用图像特征和n个边界框集合构建n个目标原型。原型应该概括图像中所选目标类别的外观和定位属性。形状信息是通过初始化原型的宽度和高度特征注入的;外观被迭代地转移到原型中: +1. 首先通过**RoI**池化提取单个边界框的外观查询$Q^A$。池化操作将来自不同空间形状的特征映射到相同大小的查询向量中,丢失了形状信息; +2. 在原型中引入形状查询来恢复丢失的信息。通过三层前馈网络把宽度和高度映射到形状查询$Q^S$; +3. 形状查询$Q^S$和外观查询$Q^A$通过交叉注意力模块转换为目标原型。 + +![](https://pic.imgdb.cn/item/667e2789d9c307b7e9e7d0a0.png) + +![](https://pic.imgdb.cn/item/667e2965d9c307b7e9ea87f9.png) + +密度回归头包括三个3 × 3卷积层,分别有128、64和32个特征通道,每个卷积层后面是一个**Leaky ReLU**;一个2×双线性上采样层;一个线性1 × 1卷积层,后面是一个**Leaky ReLU**。通过对密度图值求和来估计图像中物体的数量。输出损失为预测密度图和真值密度图的**L2**损失。为了更好地监督迭代自适应模块的训练,增加了辅助损失:将每次迭代的原型查询生成中间密度图,然后构造**L2**损失。 + +实验结果表明,在单样本和少样本设置下,**LOCA**模型均取得了最好的表现。 + +![](https://pic.imgdb.cn/item/667e2a93d9c307b7e9ec1e5f.png) + +作者分析了与图像中目标数量相关的计数错误。**LOCA**在不同目标数量上的表现优于最先进的技术,在具有非常高目标数量的图像上的表现最显著。这些图像通常包含极高的物体密度,**LOCA**可以很好地处理这些情况,与最先进的技术相比,将计数错误减少了近50\%。 + +![](https://pic.imgdb.cn/item/667e2af0d9c307b7e9eca0ed.png) diff --git a/_posts/paper/2023/2023-05-12-clipcount.md b/_posts/paper/2023/2023-05-12-clipcount.md new file mode 100644 index 00000000..fa2ee2b1 --- /dev/null +++ b/_posts/paper/2023/2023-05-12-clipcount.md @@ -0,0 +1,65 @@ +--- +layout: post +title: 'CLIP-Count: Towards Text-Guided Zero-Shot Object Counting' +date: 2023-05-12 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667bc72fd9c307b7e9469e73.png' +tags: 论文阅读 +--- + +> CLIP-Count:文本引导的零样本目标计数. + +- paper:[CLIP-Count: Towards Text-Guided Zero-Shot Object Counting](https://arxiv.org/abs/2305.07304) + +给定一张图像$I \in \mathbb{R}^{H\times W\times 3}$,本文的目标是通过指定感兴趣目标的文本提示$t$,估计指定目标的二元密度图$\hat{y} \in \mathbb{R}^{H\times W}$,并通过对密度图求和得到目标的计数结果$N_{pred}=SUM(\hat{y})$。 + +**CLIP**模型通过对图像和文本对进行大规模预训练,学习对齐的文本和图像表示;但**CLIP**模型本身缺乏定位能力。为了增强**CLIP**模型的定位能力,本文设计了块-文本对比损失,将**CLIP**模型的视觉编码器特征块与目标类别文本对齐;并进一步设计了层次化文本-块交互模块生成不同分辨率的特征图,并将这些特征图解码为目标的密度图。 + +![](https://pic.imgdb.cn/item/667bd0f8d9c307b7e9583f9f.png) + +## 1. 块-文本对比损失 patch-text contrastive loss + +**CLIP**模型的视觉编码器把图像$I \in \mathbb{R}^{H\times W\times 3}$编码为图像块特征$z_x \in \mathbb{R}^{H/16\times W/16\times d}$。首先应用线性投影$\phi_p$把图像块特征$z_x$投影到与文本嵌入$\mathcal{E}_t$相同的通道维度: + +$$ +\mathcal{E}_p = \phi_p(z_x) +$$ + +为了确定目标的位置,把**ground truth**密度图进行最大池化,生成与图像块特征具有相同尺寸的二元掩码;根据掩码值将图像块特征的不同**patch**划分为正集$\mathcal{P}$和负集$\mathcal{N}$,进而构造对比损失: + +$$ +\mathcal{L}_{con} = -\log \frac{\sum_{i \in \mathcal{P}} \exp(s(\mathcal{E}_p^i,\mathcal{E}_t)/\tau)}{\sum_{i \in \mathcal{P}} \exp(s(\mathcal{E}_p^i,\mathcal{E}_t)/\tau)+\sum_{k \in \mathcal{N}} \exp(s(\mathcal{E}_p^k,\mathcal{E}_t)/\tau)} +$$ + +![](https://pic.imgdb.cn/item/667bd4ced9c307b7e95eb211.png) + +通过该方式将正的图像块嵌入拉近到固定的文本嵌入,将负的图像块嵌入推远,将图像块嵌入空间与文本嵌入空间对齐,以增强图像块特征的定位能力。 + +![](https://pic.imgdb.cn/item/667bd503d9c307b7e95f06bb.png) + +在微调视觉编码器时,为了有效地利用**CLIP**中预训练的知识,将**CLIP ViT**中的参数冻结,并将少量可训练的参数以视觉提示(**visual prompt**)的形式连接到每层的输入。这使模型能够使用更少的数据和内存来更新**CLIP**中的知识,同时仍然受益于**CLIP**学习的丰富的视觉表示。 + +## 2. 层次化文本-块交互模块 hierarchical text-patch interaction module + +场景中的物体通常具有多种尺度,但自注意力结构本质上缺乏对尺度不变特征建模的归纳偏差,导致密度估计不准确。本文提出了一个层次化文本-块交互模块,该模块能够生成不同分辨率的特征图,并使用这些特征图解码为目标的密度图。 + +该模块包括两个层次,每个层次依次应用多头自注意力(**MHSA**),多头交叉注意力(**MHCA**)和两层**MLP** (**FFN**)。**MHSA**捕获全局特征关系,而**MHCA**将嵌入文本的语义信息传递给视觉特征。在两层之间使用双线性插值层将特征图的分辨率提高了一倍,在更细的粒度上捕捉文本和图像之间的关系。交互模块的最终输出是两层多模态特征图$M_c,M_f$。解码器将特征图$M_c,M_f$映射为二元密度图$\hat{y}$。 + +![](https://pic.imgdb.cn/item/667bd741d9c307b7e962caf4.png) + +## 3. 实验分析 + +实验设计的数据集基准包括: +- **FSC-147**:由147个类别的6135张图像组成,每个训练图像使用类别名作为文本提示; +- **CARPK**:提供了1448张停车场鸟瞰图,共包含89,777辆汽车。 +- **ShanghaiTech**:是一个综合性的人群统计数据集。它由A和B两部分组成,总共有1198张注释图像。Part A包含482张图片,其中400张用于训练,182张用于测试。B部分包括716张图像,其中400张用于训练,316张用于测试。 + +采用平均绝对误差(**MAE**)和均方根误差(**RMSE**)来评估目标计数的性能。 + +结果表明,该方法在**FSC147**数据集上的表现明显优于最先进的计数方法;在不经过微调的情况下,泛化到**CARPK**和**ShanghaiTech**数据集时,所提通用计数方法优于代表性的特定类别计数方法。 + +![](https://pic.imgdb.cn/item/667bd911d9c307b7e966ea53.png) + +将预测的密度图覆盖在输入图像上,结果表明所提方法可以更好地将高密度定位在高保真的物体中心,并能够对不同类别、形状、大小和密度的物体进行鲁棒的定位和计数。 + +![](https://pic.imgdb.cn/item/667bd96dd9c307b7e96797a6.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-13-spdcn.md b/_posts/paper/2023/2023-05-13-spdcn.md new file mode 100644 index 00000000..bf542d01 --- /dev/null +++ b/_posts/paper/2023/2023-05-13-spdcn.md @@ -0,0 +1,71 @@ +--- +layout: post +title: 'Scale-Prior Deformable Convolution for Exemplar-Guided Class-Agnostic Counting' +date: 2023-05-13 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e5aaad9c307b7e93ac19f.png' +tags: 论文阅读 +--- + +> 用于模板引导的类别无关计数的尺度先验可变形卷积. + +- paper:[Scale-Prior Deformable Convolution for Exemplar-Guided Class-Agnostic Counting](https://bmvc2022.mpi-inf.mpg.de/0313.pdf) + +类别无关计数任务是指预测查询图像中由几个目标模板所指示的类别目标的数量。在训练过程中,将图像和模板都输入到计数模型中,然后计算预测的密度图与人工标注的点图之间的损失。 + +通常同一类别的目标在图像中具有相似的比例,而不同的目标类别可能具有截然不同的比例。本文提出了一个尺度先验的可变形卷积网络**Scale-Prior Deformable Convolution Network (SPDCN)**,将样本的尺度信息集成到计数网络主干中。所提出的计数网络可以提取与给定样本相似的目标的语义特征,并有效地过滤不相关的背景。作者进一步提出了一种尺度敏感的广义损失,该算法根据目标尺度自适应地调整损失函数。 + +**SPDCN**由尺度先验主干网络、计数目标分割模块和类别无关的密度预测模块构成。 +- 尺度先验主干网络在**ImageNet**预训练的**VGG-19**网络基础上改进,保留了**VGG-19**的前十个卷积层和三个池化层,所有四个阶段的最后一个卷积层都被替换为尺度先验的可变形卷积。提取的特征用两个线性函数分别编码为分割信息$F_c$和密度信息$F_d$。 +- 计数目标分割模块用**ROI Align**层从提取的特征中提取边界框的语义向量,平均后与分割信息$F_c$的每个局部特征向量之间计算余弦相似度。预测的相似性图$S$通过按空间顺序排列来指示哪些区域是前景或背景。 +- 类别无关的密度预测模块在相似性图$S$和密度信息$F_d$之间采用逐元素乘法来生成与类无关的密度特征,并通过解码器生成密度图。 + +![](https://pic.imgdb.cn/item/667e5f68d9c307b7e9449e36.png) + +## 1. 尺度先验的可变形卷积 + +尺度先验的可变形卷积使用给定样本的尺度来学习相应的尺度嵌入,然后根据这些嵌入向量调整可变形卷积的偏移量。偏移量由两部分组成,局部尺度嵌入$d_c$和全局尺度嵌入$d_g$。 + +局部尺度嵌入$d_c$利用特征映射局部学习偏移量,是通过对之前的图像特征映射$x$应用一个非线性卷积块$C$得到的:$d_c = C(x)$。 + +全局尺度嵌入$d_g$是由样本的尺度得到的,通过将样本的平均宽度w和高度h映射到一个向量来表示:$d_g = G(h,w)$。 + +## 2. 尺度敏感的广义损失 + +广义损失通过不平衡最优传输问题直接测量了预测密度图$a$和真实点图$b$之间的距离: +UOT为 + +$$ +\mathcal{L}_{\mathbf{C}} = \min_{\mathbf{P}\in\mathbb{R}_+^{n\times m}} \left\langle \mathbf{C},\mathbf{P}\right\rangle -\epsilon H\left(\mathbf{P}\right) + \tau ||\mathbf{P}\mathbf{1}_m-\mathbf{a}||_2^2 +\tau |\mathbf{P}^T\mathbf{1}_n-\mathbf{b}|_1 +$$ + +其中$$\mathbf{C}\in\mathbb{R}_+^{n\times m}$$是传输代价矩阵,$C_{i,j}$为将密度图从$$\mathbf{x}_i$$搬运到$$\mathbf{y}_j$$的距离。$$\mathbf{P}$$为传输矩阵。令$$\hat{\mathbf{a}} = \mathbf{P}\mathbf{1}_m, \hat{\mathbf{b}}=\mathbf{P}^T\mathbf{1}_n$$。 + +这个损失包括四部分: +1. 传输损失,目的是将预测的密度图往真实标注靠拢; +2. 熵正则化项,目的是控制密度图的稀疏程度; +3. 希望$$\hat{\mathbf{a}}$$靠近$$\mathbf{a}$$; +4. 希望$$\hat{\mathbf{b}}$$靠近$$\mathbf{b}$$。 + +为了添加被计数对象的尺度信息,将代价矩阵定义为: + +$$ +C_{i,j} = ||\hat{x}_{i,j}-\hat{y}_{i,j}||_2, \\ +\begin{bmatrix}\hat{x}_{i,j}&\hat{y}_{i,j}\end{bmatrix} = \begin{bmatrix}1/s_h&0 \\ 0 & 1/s_w \end{bmatrix} \begin{bmatrix}x_{i,j}&y_{i,j}\end{bmatrix} +$$ + +$s_h$和$s_w$是对齐两个坐标轴的比例因子。为了避免极值,采用一个修正的$S(·)$函数来限制这两个因子的取值范围: + +$$ +S(k) = \frac{\alpha}{1+\exp(-(k-\mu)/\sigma)} + \beta +$$ + +## 3. 实验分析 + +**SPDCN**通过提出的尺度先验可变形卷积在简单的匹配网络中利用尺度信息,显著提高了计数性能。虽然被计数的目标在规模和数量上有所不同,但与其他模型相比,该模型获得了良好的紧凑预测。 + +![](https://pic.imgdb.cn/item/667e6413d9c307b7e94da5e5.png) + +下图给出了当模型遇到不同尺度的物体时输出特征图的感受野。尺度先验可变形卷积从局部特征和给定示例的尺度先验中学习偏移量,这允许网络捕获大规模计数目标的特征。 + +![](https://pic.imgdb.cn/item/667e6481d9c307b7e94e6c4a.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-14-zsc.md b/_posts/paper/2023/2023-05-14-zsc.md new file mode 100644 index 00000000..c352a3fe --- /dev/null +++ b/_posts/paper/2023/2023-05-14-zsc.md @@ -0,0 +1,38 @@ +--- +layout: post +title: 'Zero-shot Object Counting' +date: 2023-05-14 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e67e9d9c307b7e9543742.png' +tags: 论文阅读 +--- + +> 零样本目标计数. + +- paper:[Zero-shot Object Counting](https://arxiv.org/abs/2303.02001) + +为解决类不可知目标计数需要人工标注样本的问题,本文提出零样本目标计数(**Zero-shot Object Counting, ZSC**)任务的方法。该方法可以对输入图像中的特定目标物体进行计数,在计数过程中只需要给定物体类别名,而不需要给定任何人工标注的示例。在此基础上本文也提出一种简单有效的**patch**选择方法,可以在查询图像上准确定位最优**patch**作为待计数目标。 + +模型首先通过预训练的条件**VAE**在特征空间中生成给定类别的类别原型(**prototype**)。在给定输入查询图像的情况下,随机抽取图像中若干大小不同的**patch**,并为每个**patch**提取相应的特征嵌入。选择嵌入与类别原型最邻近的**patch**作为类相关**patch**。对每个选择的类相关**patch**使用预训练的类别无关计数模型获得中间特征图。误差预测器将特征图作为输入,采用归一化技术预测计数误差,最后选择误差最小的**patch**作为最终的样本**exemplar**。 + +![](https://pic.imgdb.cn/item/667e6a02d9c307b7e957b2e2.png) + +实验结果表明,相比于**RPN**选择**patch**作为样本**exemplar**,所提方法选择的样本**exemplar**能获得更好的计数性能。 + +![](https://pic.imgdb.cn/item/667e6ae2d9c307b7e95921eb.png) + +下图分别展示了使用人工注释示例、随机选择**patch**和本文选择的**patch**的计数样本和相应的密度图。结果表明本文方法的计数结果与使用人工注释示例的识别结果是相同的,高于随机选择**patch**的计数结果。 + +![](https://pic.imgdb.cn/item/667e6b38d9c307b7e959a49a.png) + +对于每个输入查询图像,下图显示了使用生成的原型选择的10个类相关**patch**,并根据其预测的计数误差(从低到高)进行排序。结果表明所有选择的类相关的**patch**都显示出一些特定于类的特征,然而并非所有**patch**都适合用作计数示例,即一些**patch**只包含目标的一部分,而一些**patch**包含一些背景。应用误差预测器,可以识别出预测计数误差最小的最合适的**patch**。 + +![](https://pic.imgdb.cn/item/667e6bb0d9c307b7e95a5fee.png) + +实验结果表明,相比于随机采样的**patch**,使用类原型来选择与类相关的**patch**、使用误差预测器来选择最优**patch**都能进一步提高性能。 + +![](https://pic.imgdb.cn/item/667e6c05d9c307b7e95ae0fa.png) + +此外,由于条件**VAE**可以生成给定类别的类别原型,因此可以统计不同类别的目标数量。 + +![](https://pic.imgdb.cn/item/667e6cccd9c307b7e95c0a0f.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-15-cacvit.md b/_posts/paper/2023/2023-05-15-cacvit.md new file mode 100644 index 00000000..e43bacf0 --- /dev/null +++ b/_posts/paper/2023/2023-05-15-cacvit.md @@ -0,0 +1,48 @@ +--- +layout: post +title: 'Vision Transformer Off-the-Shelf: A Surprising Baseline for Few-Shot Class-Agnostic Counting' +date: 2023-05-15 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e6f17d9c307b7e9618eef.png' +tags: 论文阅读 +--- + +> 现成的视觉Transformer:令人惊讶的少样本类别无关计数基准. + +- paper:[Vision Transformer Off-the-Shelf: A Surprising Baseline for Few-Shot Class-Agnostic Counting](https://arxiv.org/abs/2303.02001) + +类别无关计数问题可以表述为模板匹配问题,即分别提取查询图像和示例的特征,然后匹配它们的特征相似性,从而形成提取-匹配流程。这项工作指出,通过视觉Transformer中的自注意力机制能够同时实现特征提取与匹配过程:**ViT**中的自注意力过程分为自注意力组和交叉注意力组,前者关注的是查询图像与样本的特征提取,后者关注的是查询图像与样本的匹配过程。 + +![](https://pic.imgdb.cn/item/667e708cd9c307b7e9644c02.png) + +基于此作者设计了**Class-Agnostic Counting Vision Transformer (CACViT)**。查询图像和相应的示例被切分成图像**patch**并嵌入为**token**,然后通过自注意力层进行处理。最后将查询图像的输出特征与最后一个注意力层的相似度图进行连接,并预测最终的密度图。 + +![](https://pic.imgdb.cn/item/667e7205d9c307b7e966f3cd.png) + +注意到**CACViT**中的自注意力图可以被划分为四部分。 +- $A_{query}$:查询图像的特征提取; +- $A_{class}$:浅层关注前景,深层关注背景; +- $A_{match}$:查询图像和样例之间的特征匹配; +- $A_{exp}$:样例图像的特征提取。 + +![](https://pic.imgdb.cn/item/667e73f8d9c307b7e96b658d.png) + +虽然**ViT**中的自注意机制适合类别无关计数任务,但该结构中的某些限制或功能可能导致信息丢失。固定尺寸的输入会丢失尺度信息(左图),用于标准化注意力图的**softmax**会削弱表达目标数量的能力(右图)。 + +![](https://pic.imgdb.cn/item/667e74abd9c307b7e96cdb7b.png) + +为了引入尺度信息,作者提出了考虑宽高比的尺度嵌入。假设一个样例的原始尺寸为$W_k\times H_k$,输入时将其尺寸调整为$W_z\times H_z$,则把$W_k, H_k$离散化为$W_z,H_z$个中间值并广播为$W_z\times H_z$的嵌入。将两者求和后连接到样例。 + +![](https://pic.imgdb.cn/item/667e7656d9c307b7e96fd5ab.png) + +为了引入数量级信息,数量级信息可以用图像尺寸与样本尺寸的比值粗略表示。假设一个样例的原始尺寸为$W_k\times H_k$,图像**patch**的尺寸为$W_p\times H_p$,则图像**patch**能够描述样例的最大容量为: + +$$ +ME_k = \frac{W_p\times H_p}{W_k\times H_k} +$$ + +如果有K个样本,可以从样本中计算嵌入**ME**的平均值,并与注意力图的相似度值相乘,得到最终的相似度图。 + +在**FSC-147**数据集上,**CACViT**在**1-shot**和**3-shot**设置上都明显优于所有比较的方法。 + +![](https://pic.imgdb.cn/item/667e775cd9c307b7e97198c7.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-17-gcnet.md b/_posts/paper/2023/2023-05-17-gcnet.md new file mode 100644 index 00000000..1772e712 --- /dev/null +++ b/_posts/paper/2023/2023-05-17-gcnet.md @@ -0,0 +1,48 @@ +--- +layout: post +title: 'GCNet: Probing Self-Similarity Learning for Generalized Counting Network' +date: 2023-05-17 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6682197ad9c307b7e922c33c.png' +tags: 论文阅读 +--- + +> GCNet:探索通用计数网络的自相似度学习. + +- paper:[GCNet: Probing Self-Similarity Learning for Generalized Counting Network](https://arxiv.org/abs/2302.05132) + +本文提出了**Generalized Counting Network (GCNet)**,这是一个零样本计数框架。**GCNet**通过利用固有重复模式的自相似性来发现范例,具有从任意输入图像中自适应识别日常物体固有重复模式的能力。**GCNet**可以自动有效地从伪样本模拟模块中推断出伪样本范例线索,进一步将提取的范例线索与原始图像的低级特征进行比较,以生成高保真的自相似图,作为随后计数回归的输入。**GCNet**仅使用计数级监督信号进行端到端训练,在训练和推理阶段不需要用户提供点级标注标签。 + +![](https://pic.imgdb.cn/item/66821c44d9c307b7e9276632.png) + +## 1. 伪样例模拟器 Pseudo Exemplar Simulator + +伪样例模拟器的构建是为了从调整大小的原始图像中捕获伪示例线索,而不需要显式地提供示例子区域。给定任意大小的自然图像,主分支提取初级2D特征映射$F_r$,次分支将图像的大小调整为**512 × 512**,以规范化具有不同形状/规模的实例,并减少计算开销。然后生成以范例为中心的输出$F_e$。 + +对输出$F_e$使用内核大小为8×8,步幅为1的“展开”操作来覆盖广泛的实例区域。然后展开一系列特征块,沿着展开维度进行像素级平均运算,得到伪样本**patch** $P_e$。将$P_e$分成16个大小为2×2的特征子**patch**,然后通过线性投影进行变换,得到伪样例一维标记$T_e$。 + +![](https://pic.imgdb.cn/item/66821df9d9c307b7e929dd62.png) + +## 2. 对偶注意力自相似学习 Dual-Attention Self-Similarity Learning + +对偶注意力自相似学习利用提取的$F_r$和$T_e$构建高质量的自相似图。引入一种新的各向异性编码器,用于探测特征空间中三个方向的各向异性特征,即水平、垂直和通道方向。具体来说,给定输入空间表示$F_r$,利用三种核(取向水平、垂直和通道维度)对$F_r$进行卷积,计算各向异性特征。 + +为了进一步完善特征,提出了一个双重注意冷凝器,以跨分支提取知识。$T_e$通过**softmax**激活传递给基于**mlp**的单元,计算三个归一化软权重α, β和γ,并将其输入各向异性编码器,以强调特征空间中信息量最大的方向,同时抑制无用的方向。 + +在对各向异性特征进行软校正的同时,还设计了一个右转注意力机制,在主分支提取知识的指导下引导伪范例线索的学习。为了对自通道滤波器之间的相似性进行建模,将特征映射$F_r$与其转置矩阵积生成自通道相似性矩阵。为了充分利用一组通道滤波器之间的相似性,利用自通道相似性矩阵生成注意力权值用于指导判别样例符号的学习。 + +![](https://pic.imgdb.cn/item/66822034d9c307b7e92cf798.png) + +## 3. 弱监督位置感知计数器 Weakly-supervised Location-aware Counter + +为了充分利用生成的相似图中的线索,同时增强原始图像的相似图和特征图之间的相关性,设计了一个弱监督位置感知的计数器,以直接估计任意输入场景的计数。 + +弱监督位置感知计数器将自相似图与低级特征图结合起来,利用空间像素上的全局相关性,同时降低维数以产生标量计数。采用简单而有效的欧几里得损失作为目标函数来优化框架。 + +![](https://pic.imgdb.cn/item/66822101d9c307b7e92e0480.png) + +## 4. 实验分析 + +为了了解所提出的对偶注意力自相似学习的有效性,使用**T-SNE**可视化了重新校准的各向异性特征和伪示例标记的学习注意权重。即使不输入类别标签,为相同类学习的权重也倾向于聚集在一起。这表明模型能够通过表示不同维度的区别性注意权重来捕获相同类的实例之间固有的相似属性。然而,由于缺乏类注释,**GCNet**没有尝试区分具有相似外观的类(例如海鸥与火烈鸟),导致这些类被分组在一起。 + +![](https://pic.imgdb.cn/item/668221bbd9c307b7e92f047b.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-18-cfocnet.md b/_posts/paper/2023/2023-05-18-cfocnet.md new file mode 100644 index 00000000..1caa7e8c --- /dev/null +++ b/_posts/paper/2023/2023-05-18-cfocnet.md @@ -0,0 +1,24 @@ +--- +layout: post +title: 'Class-agnostic Few-shot Object Counting' +date: 2023-05-18 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/668258c8d9c307b7e9849b30.png' +tags: 论文阅读 +--- + +> 类别无关少样本目标计数. + +- paper:[Class-agnostic Few-shot Object Counting](https://openaccess.thecvf.com/content/WACV2021/papers/Yang_Class-Agnostic_Few-Shot_Object_Counting_WACV_2021_paper.pdf) + +本文提出了一种有效的目标计数网络:类别无关少样本目标计数网络(**Class-agnostic Fewshot Object Counting Network, CFOCNet**),它能够根据输入的参考图像对任意类别的目标进行计数。**CFOCNet**网络由一个双流**Resnet**编码器和一个解码器组成。编码器分别提取查询图像和参考图像的特征,通过相关操作来嵌入两个分支的信息以计算不同尺度下的匹配分数;解码器通过可训练的加权求和机制融合编码器生成的分数图,以生成预测的密度图。 + +![](https://pic.imgdb.cn/item/66825ae1d9c307b7e987af93.png) + +编码器有两个流,一个是查询流,另一个是参考流。查询流和参考流使用了**Resnet-50**的前三个块,因为它具有强大的特征表示能力。为了计算查询图像与参考目标的匹配度,使用池化操作对编码器提取的参考图像特征进行聚合,在查询特征上使用自注意力机制促使模型关注由于重复目标的而产生的自相似性。然后通过无参数卷积计算匹配分数图,其中参考图像池化特征作为卷积核,自注意力增强的查询特征作为输入特征。 + +由于查询图像的尺度变化,需要一个尺度感知的融合机制。这项工作提出了一种可学习的加权求和融合机制,使模型根据编码器生成的匹配分数自动加权到期望的尺度上。为了计算三个匹配分数图的加权和,首先通过1x1卷积+求和+**Softmax**计算每个匹配分数图的权重,然后对匹配分数图进行加权融合。由于融合后特征的空间分辨率为原始图像的1/8,因此输出密度图只需通过转置卷积和双线性上采样即可生成。 + +作者使用**COCO**数据集进行实验评估,使用**4-fold**验证,将80个目标类别分成60/20进行训练和测试。因此,测试阶段的20类目标在训练阶段是不可见的,这可以衡量模型对新类别的泛化能力。 + +![](https://pic.imgdb.cn/item/66825ea5d9c307b7e98d68bf.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-19-vcn.md b/_posts/paper/2023/2023-05-19-vcn.md new file mode 100644 index 00000000..493751b4 --- /dev/null +++ b/_posts/paper/2023/2023-05-19-vcn.md @@ -0,0 +1,38 @@ +--- +layout: post +title: 'Vicinal Counting Networks' +date: 2023-05-19 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/66825fe1d9c307b7e98f59a1.png' +tags: 论文阅读 +--- + +> 邻近计数网络. + +- paper:[Vicinal Counting Networks](https://ieeexplore.ieee.org/document/9857359) + +少样本计数可以从许多视觉类别中对物体进行计数,但少样本计数网络的性能仍然受到有限的训练数据量的限制。目前该任务最大的数据集是**FSC147**,只有3659张训练图像。为了缓解训练集大小的限制,本文提出了共同学习计数和增加现有训练数据的邻近计数网络(**Vicinal Counting Networks, VCN**)。 + +**VCN**由一个生成器和一个计数回归器组成。生成器将图像与随机噪声向量一起作为输入,并生成输入图像的增强版本。计数回归器学习对原始图像和增强图像中的物体进行计数。生成器的训练信号来源于计数网络的计数损失,旨在帮助计数网络在合成图像上实现准确的预测。 + +![](https://pic.imgdb.cn/item/66826308d9c307b7e99568ad.png) + +生成器的目标是通过从训练样本附近生成虚拟样本来增强训练数据,并且使虚拟样本具有与训练样本相同的标签。生成器由映射网络、编码器、自适应实例规范化层和解码器组成。映射网络由一个8层MLP组成,将随机噪声向量$z$映射到一个中间隐特征$w$;编码器通过一组卷积层将输入图像转换为中间特征表示$Q$;自适应实例归一化使用潜在特征$w$对输入特征$Q$进行风格迁移,保留输入特征的内容,并根据潜在特征$w改变其风格。 + +回归网络接收输入图像和一组描述目标示例的边界框位置,并预测密度映射图。回归网络由三个关键模块组成:特征表示模块、特征关联模块和密度预测模块。特征表示模块为输入图像和样本提取特征;特征关联模块将样本的特征与图像特征相关联;密度预测模块使用样本与图像特征之间的相关图来预测密度图。 +- 特征表示模块使用**Resnet-50**架构的块进行特征表示,并使用来自第三和第四个卷积块的特征来获得多尺度表示。样本的多尺度特征是通过使用边界框集作为感兴趣的区域进行**ROI**池化来获得的。 +- 特征关联模块将每个样本的特征与图像特征关联起来,为每个样本生成一个单独的相关图。为了处理图像内尺度的变化,将样本特征缩放到0.9和1.1的尺度,并将缩放后的样本特征与图像特征相关联。 +- 密度预测模块使用相关图来预测密度图。密度预测模块由5个卷积块和3个上采样层组成,上采样层位于第一、第二和第三卷积层之后。在每个中间卷积层之后使用**LeakyReLU**激活函数和实例归一化。最后一个1×1卷积层之后使用**ReLu**激活。 + +**VCN**的端到端训练是通过最小化三种损失的组合:计数损失、重构损失和多样性损失。 +- 计数损失为回归网络预测的密度图与地面真点图的高斯平滑图像之间的均方误差(**MSE**)。 +- 重构损失迫使生成器生成接近输入训练图像的图像,采用**L1**损失。 +- 多样性损失为了防止生成器生成的图像完全退化为输入图像。随机采样两个噪声向量$z_1,z_2$并通过生成器生成图像,并从**Resnet-50**主干的**conv4**块中获得卷积特征,则多样性定义为两个特征映射归一化之后的点积。 + +实验结果表明,**VCN**在**FSC147 Val**和**Test**集上都优于所有以前的方法。 + +![](https://pic.imgdb.cn/item/668265bed9c307b7e999b10b.png) + +作者对一些生成的图像进行可视化: + +![](https://pic.imgdb.cn/item/66826637d9c307b7e99a745e.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-20-samcounting.md b/_posts/paper/2023/2023-05-20-samcounting.md new file mode 100644 index 00000000..b6bac023 --- /dev/null +++ b/_posts/paper/2023/2023-05-20-samcounting.md @@ -0,0 +1,28 @@ +--- +layout: post +title: 'Can SAM Count Anything? An Empirical Study on SAM Counting' +date: 2023-05-20 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6682685bd9c307b7e99db876.png' +tags: 论文阅读 +--- + +> 分割一切模型可以计数一切吗?分割一切模型计数的实验报告. + +- paper:[Can SAM Count Anything? An Empirical Study on SAM Counting](https://arxiv.org/abs/2304.10817) + +**Meta AI**最近推出了分割一切模型(**SAM**),该模型因其在类别无关的分割方面的出色表现而备受关注。这项研究探索了使用**SAM**来完成具有挑战性的计数任务,即通过提供一些示例的边界框来计数任意类别的目标。通过将**SAM**的性能与其他少样本计数方法进行比较,发现如果没有进一步的微调,尤其是计数小而拥挤的物体,**SAM**的性能目前并不令人满意。 + +首先利用**SAM**的图像编码器(**ViT-H**)对给定图像进行特征提取;其次利用给定的目标边界框作为提示来生成参考目标的分割掩码,并与图像特征相乘并取平均以产生参考目标的特征向量;之后使用点网格(每边设定32个点)作为提示对所有内容进行分割,并将输出掩码与图像特征相乘并取平均生成所有掩码的特征向量;最后计算预测掩码的特征向量与参考目标的特征向量之间的余弦相似度,如果余弦相似度超过预定阈值,则将其视为目标对象。 + +下表给出了**SAM**在**FSC-147**数据集上的性能。虽然**SAM**的性能超过了一些早期的方法,但明显不如最近的方法。 + +![](https://pic.imgdb.cn/item/66826a24d9c307b7e9a055c5.png) + +作者可视化了一些预测计数和实际真值计数差异很大的图像。前三幅图像有一个共同点:在预测过程中,小而拥挤的物体被预测为单个物体。在第四张图中,**SAM**错误地预测了葡萄等其他种类的水果。 + +![](https://pic.imgdb.cn/item/66826a70d9c307b7e9a0d18d.png) + +**SAM**目前仍落后于最先进的少样本计数方法,作者认为这是由于两个主要原因。 +1. **SAM**倾向于用单个掩码对同一类别的拥挤对象进行分割。 +2. **SAM**使用缺乏语义类注释的掩码进行训练,这可能会妨碍**SAM**区分不同对象的能力。 \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-21-clipcount.md b/_posts/paper/2023/2023-05-21-clipcount.md new file mode 100644 index 00000000..2abec394 --- /dev/null +++ b/_posts/paper/2023/2023-05-21-clipcount.md @@ -0,0 +1,73 @@ +--- +layout: post +title: 'Teaching CLIP to Count to Ten' +date: 2023-05-21 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/66826c9bd9c307b7e9a3e2ca.png' +tags: 论文阅读 +--- + +> 教CLIP模型从一数到十. + +- paper:[Teaching CLIP to Count to Ten](https://arxiv.org/abs/2302.12066) + +大型视觉语言模型**CLIP**通过学习丰富的联合图像-文本表示,促进了许多下游任务的进展。该模型有一个明显的局限性:不能封装诸如计数之类的组合概念。作者提出了一种新的计数对比损失,通过创建具有错误事实的示例,微调**CLIP**来提高其对计数概念的定量理解。此外作者引入了**CountBench**,这是一个新的图像文本计数基准,用于评估模型对目标计数的理解程度。 + +**CLIP**无法实现准确计数的主要原因包括: +- 随着目标数量的增加,准确指定目标数量的文本标题在数据中变得极其罕见。例如对于6个以上的目标,标题通常包含一个一般形式的数量(如“一组”或“许多”),而不是准确的计数。 +- 将图像中可见物体的数量与标题中的数字相关联不能充分促进**CLIP**的判别训练目标。这是因为其他文本和视觉特征(如名词和对象类别)对于将图像与其真实标题关联起来更有帮助。 + +本文框架由两个主要阶段组成。首先自动创建一个计数训练集,包括干净和多样化的图像以及描述场景中可见物体数量的相应标题。然后利用该数据集通过指定的基于计数的对比损失来微调**CLIP**,该对比损失与原始的通用图像-文本目标一起训练。 + +![](https://pic.imgdb.cn/item/668276cdd9c307b7e9b40cdb.png) + + +## 1. 创建计数训练集 + +获取图像-文本计数数据集的简单方法是通过只考虑标题包含数字的示例来过滤大规模数据集。然而,这种方法会产生高度噪声的数据集,因为标题中的数字通常指的是与计数无关的其他属性,如年龄、时间、地址等。 + +为了确保标题中的数字正确地引用图像中特定目标的实例数,在数据管道中采用了几个阶段的自动过滤: +- 过滤掉标题中不包含拼写数字(**two,...,ten**)的所有示例;没有拼写的数字或者大于10的数字,大多与时间(如日期)或地址一起出现,而不是与图像中物体的数字一起出现; +- 验证拼写的数字确实用作目标计数器,并且计数的目标在图像中是可见和可检测的。计数验证是通过应用现成的目标检测器**MobileNetV3**,并计算每个目标的检测次数来自动实现的。 +- 平衡数据至关重要。由于描述超过6个物体的图像很少,选择将数字2-6与较大的数字7-10分开平衡。对于数字2-6指代的图像,采样大约37K个样本;对于7-10的图像,使用过滤后的所有样本,有大约7K的7样本到大约1.5K的10样本。 + +## 2. 微调CLIP + +在两个训练集上对**CLIP**模型进行微调: +1. 从网络上收集的非常大的数据集,其中包含一般的野外图像和说明。 +2. 过滤后的图像-文本计数数据集,在标题中列出了目标计数。 + +**CLIP**的微调训练损失包括常规的**CLIP**对比损失和计数损失。其中对比损失在所有数据集上计算,计数损失只在图像-文本计数数据集上计算。 + +对于每个图像-文本对$(i_k, t_k)$,通过将标题$t_k$中的数字与不同的随机数交换,自动创建一个错误标题$t_k^{CF}$。在训练中,将$(i_k, t_k, t_k^{CF})$送到**CLIP**的文本和图像编码器,以获得它们的嵌入$(ei_k, et_k, et_k^{CF})$。计数损失构造为对比损失的形式,强制图像与原始标题的相似度得分高,与错误标题的相似度得分低: + +$$ +L_{count} = -\frac{1}{N} \sum_{k=1}^{N} \log \frac{e^{ei_k \cdot et_k}} {e^{ei_k \cdot et_k} + e^{ei_k \cdot et_k^{CF}}} +$$ + +## 3. 图像文本计数基准 CountBench + +作者引入了一个新的目标计数基准**CountBench**,它从公开可用的**LAION-400M**图像文本数据集中自动整理(并手动验证)。**CountBench**总共包含540张图像,其中包含2-10个特定目标的实例个60张,其相应的标题反映了这个数字。 + +![](https://pic.imgdb.cn/item/66827b61d9c307b7e9bac4ff.png) + +## 4. 实验分析 + +在**CountBench**上评估模型的零样本目标计数能力。对于**CountBench**中的每张图像,将其标题中的数字替换为所有数字2-10,并计算图像与九个标题中的每个标题之间的相似度得分。标题中与图像相似度得分最高的数字被认为是预测数字。 + +下表报告了计数精度(正确数字的选择)和模型预测与正确数字的平均偏差。所提方法实现了明显优越的计数精度,并且当缺失计数损失或数据集过滤时准确度具有巨大差距。 + +![](https://pic.imgdb.cn/item/668287d3d9c307b7e9ce926b.png) + +作者对计数评估的混淆矩阵进行可视化,改进的**CLIP**模型在所有数字上都明显优于基线。同样明显的是一些较高的数字的准确性下降,因为它们在训练数据中的数量明显降低。 + +![](https://pic.imgdb.cn/item/66828860d9c307b7e9cf8f02.png) + +为了更好地理解模型学习了什么,使用可解释性方法来可视化模型的推理。对于每个图像标题对,将其**CLIP**嵌入的余弦相似度作为其文本得分,并由图像中每个**patch**和文本中每个**token**的相关性分数生成相关性图。结果表明标题中拼写数字的相关性得分明显高于基线模型,并且模型专注于图像中的所有相关目标。 + +![](https://pic.imgdb.cn/item/66828e68d9c307b7e9da0126.png) + +为了验证模型不是简单地关注图像中出现的所有目标,使用错误文本提示生成相关性图。当使用正确的数字时,模型只关注相关的目标,这表明模型学会了将标题中的拼写数字与适当数量的目标关联起来,而不是利用快捷方式或不需要的内容。 + +![](https://pic.imgdb.cn/item/66828eaed9c307b7e9da6d16.png) + diff --git a/_posts/paper/2023/2023-05-22-clipcounting.md b/_posts/paper/2023/2023-05-22-clipcounting.md new file mode 100644 index 00000000..3291d37f --- /dev/null +++ b/_posts/paper/2023/2023-05-22-clipcounting.md @@ -0,0 +1,61 @@ +--- +layout: post +title: 'Zero-shot Improvement of Object Counting with CLIP' +date: 2023-05-22 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6683b1d9d9c307b7e99c9368.png' +tags: 论文阅读 +--- + +> CLIP模型目标计数的零样本改进. + +- paper:[Zero-shot Improvement of Object Counting with CLIP](https://openreview.net/pdf/75c3c4db0283ccf4b48f1f07b63798e3ff7fbee0.pdf) + +本文操纵**CLIP**模型的文本嵌入空间来提高**CLIP**模型的计数精度,不仅增强了**CLIP**的计数能力,而且还提高了**Stable Diffusion**等文本到图像生成模型生成具有精确目标计数图像的性能。 + +![](https://pic.imgdb.cn/item/6683c13bd9c307b7e9c66198.png) + +## 1. 自定义数据集 + +作者创建了一个自定义数据集,包含具有不同数量目标的图像,用于评估**CLIP**模型的计数能力。首先通过在互联网上手动搜索9个不同目标(“狗”,“猫”,“狮子”,“椅子”,“山羊”,“牛”,“樱桃”,“玫瑰”,“船”)的图像,对于每种类型的目标,为2-5目标计数各收集10个图像,然后使用十种不同的操作来修改每个图像(包括旋转、垂直和水平翻转,以及对图像亮度、对比度、颜色和色调的调整),产生了11张图像(包括原始图像)。数据集总共有$3960(= 9 × 10 × 4 × 11)$个样本。 + + +## 2. 零样本文本嵌入编辑方法 + +作者提出了零样本文本嵌入编辑方法,从容易计数的目标中提取计数知识(表示为嵌入空间中的线性方向),然后通过向目标嵌入中增加特定计数向量,将该知识应用于目标对象。 + +使用$v^k$表示包含类别$k$的**CLIP**文本嵌入向量,$v_i^k$表示包含$i$个类别$k$的目标的文本嵌入,则从类别$k$中提取的计数方向为: + +$$ +\Delta_{i}^{k} = (v_i^k - v^k) - \frac{\left< v_i^k-v^k,v^k \right>}{\left< v^k,v^k \right>}v^k +$$ + +计数方向$\Delta_{i}^{k}$与类别$k$的嵌入向量$v^k$正交,用于消除与类别的基本表示相关的信息。 + +假设有一种类别,**CLIP**模型可以准确地预测其计数,其文本嵌入表示为$v^{ref}$。使用提取的计数方向$\Delta_{i}^{ref}$作为参考方向。对于任意给定目标对象的嵌入表示$v^{target}$,修正其与$\Delta_{i}^{ref}$的正交性(消除与目标对象表示相关的信息): + +$$ +\tilde{\Delta}_{i}^{ref} = \Delta_{i}^{ref}-\frac{\left< \Delta_{i}^{ref},v^{target} \right>}{\left< v^{target},v^{target} \right>}v^{target} +$$ + +最后向目标嵌入中加入修正的计数方向: + +$$ +\tilde{v}^{target} = v^{target}+\tilde{\Delta}_{i}^{ref} +$$ + +![](https://pic.imgdb.cn/item/6683bd02d9c307b7e9bd592a.png) + +## 3. 实验分析 + +考虑两个计数任务。第一个任务是零样本图像分类:旨在找出给定图像中特定目标的数量,这个任务测量分类精度。第二个任务是基于文本的图像检索:根据给定的文本查询从大型数据集中搜索和检索最相关的图像,这个任务计算成功检索具有正确目标计数的图像的概率。 + +结果表明**CLIP**模型的计数性能在不同目标之间存在显著差异。作者认为如果**CLIP**模型对某些类型的目标进行计数是有效的,那么它已经学习到一些计数知识,这种知识有可能被转移到其他难以计数的物体上,从而提高**CLIP**模型整体的计数精度。 + +实验中选择“猫”和“狗”作为后续嵌入编辑的参考对象,因为所有**CLIP**模型对它们的计数始终比对其他对象的计数更准确。实验表明,利用从“狗”或“猫”中提取的计数方向来调整目标对象的文本嵌入,可以提高**CLIP**模型的计数精度。 + +![](https://pic.imgdb.cn/item/6683bf10d9c307b7e9c22b88.png) + +作者进一步探索了该方法在文本到图像生成模型中的应用。应用方法后,**Stable Diffusion**的计数保真度提高了,这意味着在不进行任何额外训练的情况下,生成计数正确的图像的可能性更高。结果表明,我们的技术可以引导模型生成具有正确数量的物体的图像。 + +![](https://pic.imgdb.cn/item/6683c031d9c307b7e9c49c83.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-24-dsaac.md b/_posts/paper/2023/2023-05-24-dsaac.md new file mode 100644 index 00000000..21dc6d21 --- /dev/null +++ b/_posts/paper/2023/2023-05-24-dsaac.md @@ -0,0 +1,47 @@ +--- +layout: post +title: 'Dilated-Scale-Aware Attention ConvNet For Multi-Class Object Counting' +date: 2023-05-24 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6684b0bbd9c307b7e94ea30b.png' +tags: 论文阅读 +--- + +> 多类别目标计数的扩张尺度感知注意力卷积网络. + +- paper:[Dilated-Scale-Aware Attention ConvNet For Multi-Class Object Counting](https://arxiv.org/abs/2012.08149) + +本文提出用点标注的方式进行多类别目标计数。具体来说,首先将单目标计数密度图改为多类别目标计数图。而由于所有类别的目标都采用同一特征提取器,因此目标特征会在特征空间内进行交互,所以本文设计了一种多任务结构来抑制目标之间的这种负的交互/联系。 + +![](https://pic.imgdb.cn/item/6684b1a4d9c307b7e950373f.png) + +本文提出了一种**Dilated-Scale-Aware Attention ConvNet (DSAA)**来实现多类别目标计数。具体来说,**DSAA** 由两个模块 **Dilated-Scale-Aware Module(DSAM)** 和 **Category-Attention Module (CAM)** 组成。首先利用**VGG16**提取特征图,**DSAM** 采用不同的卷积扩张率来提取不同尺度的特征,用于融合这些特征图。由于共享特征提取器,预测的密度图彼此会进行交互,**CAM**模块用于减少不同类别密度图中的负关联。 + +![](https://pic.imgdb.cn/item/6684b223d9c307b7e9514206.png) + +单类别目标计数方法主要采用高斯核在点标注上滑动,来产生密度图以及预测出单类别的数量。为了实现多类别计数,本文同样采用高斯核,但预测的是所有类别的密度图。 + +**DSAM**模块通过扩张卷积融合多尺度的特征信息,应用不同尺度的扩张卷积分别在 **stage_3,4,5** 上,之后经过下采样和拼接操作后,一个 $3\times 3$的卷积操作用于融合这些多尺度的特征。 + +**CAM**模块产生区分性强的密度图,主要是分别处理每个类别的空间注意力。**CAM** 仅采用 **stage_5** 上的特征图作为输入,因为该层具有更加丰富的语义信息。具体来说,首先利用距离转换将点图转化为距离图$S$: + +$$ +S_{(x, y)}=\min _{\left(x_{i}, y_{i}\right) \in A} \sqrt{\left(x-x_{i}\right)^{2}+\left(y-y_{i}\right)^{2}} +$$ + +通过使用阈值$J$将距离图$S$上的点划分为0-1来获得伪标签注意力图。之后经过多个卷积和拼接操作来联合多尺度的特征图。这里卷积指的是采用扩张因子为$1,2,3,4$的扩张卷积。空间注意力图的数量等于类别的数量。预测的空间注意力图和预测的密度图相乘获得最终的密度图,这一操作能有效减少类别间的联系。 + +利用$L_2$损失来衡量**GT**密度图和预测密度图之间的区别: + +$$ +L_{2}=\sum_{n=1}^{N} \sum_{x=1}^{W} \sum_{y=1}^{H}\left|P_{(n, x, y)}^{\prime}-P_{(n, x, y)}\right|^{2} +$$ + +采用相同的损失来训练 **DASM**,即$L_{2}^{\prime}$。采用 **BCE** 损失来训练 **CAM**: + +$$ +L_{B C E}=-\frac{1}{W \times H} \sum_{n=1}^{N} \sum_{x=1}^{W} \sum_{y=1}^{H}\left(\left(T_{(n, x, y)} \times \log R_{(n, x, y)}\right)\right.\left.+\left(1-T_{(n, x, y)}\right) \times \log \left(1-R_{(n, x, y)}\right)\right) +$$ + +其中$$T_{(n,x,y)}\in {\{}0,1{\}}$$表示位置$(x,y)$处第$n$个类别的伪标签注意力 **mask**。$R_{(n,x,y)}\in[0,1]$表示位置$(n,x,y)$处预测的空间注意力。 + diff --git a/_posts/paper/2023/2023-05-25-movie.md b/_posts/paper/2023/2023-05-25-movie.md new file mode 100644 index 00000000..9140ff89 --- /dev/null +++ b/_posts/paper/2023/2023-05-25-movie.md @@ -0,0 +1,26 @@ +--- +layout: post +title: 'MoVie: Revisiting Modulated Convolutions for Visual Counting and Beyond' +date: 2023-05-25 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6684b6c6d9c307b7e958a946.png' +tags: 论文阅读 +--- + +> MoVie:重新考虑调制卷积在视觉计数及其他领域的应用. + +- paper:[MoVie: Revisiting Modulated Convolutions for Visual Counting and Beyond](https://arxiv.org/abs/2004.11883) + +本文关注视觉计数**VQA**:给定一幅图像和一个序列(一个问题或者类别),旨在预测出图像中与序列相关的目标数量。通过重新调制卷积模块来融合序列和局部的图像,本文提出了一个简单且有效的方法。由于是在残差瓶颈模块上设计的,因此称为调制卷积瓶颈网络(**Modulated conVolutional bottlenecks,MoVie**)。该网络在推理时仅需要单次前行传播,可以作为通用 **VQA** 模型中的计数模块,性能很强。此外,也可以作为通用的推理方法用于其他任务中。 + +![](https://pic.imgdb.cn/item/6684b775d9c307b7e959cf46.png) + +卷积网络可以在具有空间维度的特征图上操作,序列表示可以经过全卷积的方式融合特征图上所有的位置信息,这表明至少有两个原因的存在使得卷积网络更加适合视觉计数: +- 计数任务是一个平移等效的问题:对于一个固定的局部窗口,输出会随着输入的变化而变化,因此,类似于调制卷积的方式更适合这些融合,尤其是当视觉特征被池化为一个单一的全局向量时(便于和问题或类别 **embedding** 融合)。 +- 计数任务需要在所有可能的位置上进行搜索,因此相比于那些在每一个位置上都产生输出的卷积特征而言,那些基于自下而上的稀疏的区域级别注意力的特征,可能在召回率上很低。 + +模型结构如图所示,输出的卷积特征来源于**ResNet**,之后送入到 **Movie** 模块。**MoVie** 模块由 **4** 个调制卷积瓶颈结构组成,每一个瓶颈结构将序列作为额外的输入来建模特征图,并输出相同尺寸的特征图,最后采用平均池化和两层的分类器来预测答案。 + +![](https://pic.imgdb.cn/item/6684b827d9c307b7e95b0402.png) + +![](https://pic.imgdb.cn/item/6684b8fbd9c307b7e95c7959.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-26-caoc.md b/_posts/paper/2023/2023-05-26-caoc.md new file mode 100644 index 00000000..97a7b0bf --- /dev/null +++ b/_posts/paper/2023/2023-05-26-caoc.md @@ -0,0 +1,35 @@ +--- +layout: post +title: 'Class-aware Object Counting' +date: 2023-05-26 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6684baacd9c307b7e95f6134.png' +tags: 论文阅读 +--- + +> 类别感知目标计数. + +- paper:[Class-aware Object Counting](https://ieeexplore.ieee.org/document/9707513) + +现有基于检测的模型非常适合类别感知目标计数以及低密度目标计数任务,但是在目标数量较多或者多类别目标的数量不同时性能较差。因此本文基于检测的方法,提出了一种带有多类别密度估计分支的端到端网络。特别之处在于将所有分支预测的结果喂给一个连续的计数估计网络,从而预测出每个类别的数量。 + +![](https://pic.imgdb.cn/item/6684bb34d9c307b7e96051a8.png) + +本文提出的方法由多类别密度估计网络 **multi-class density estimation Network (MCDEN)** 和**Mask R-CNN**检测通道组成,之后这两者的输出作为计数估计网络 **count estimation network (CEN)** 的输入。 + +![](https://pic.imgdb.cn/item/6684bbd7d9c307b7e9617a50.png) + +利用 **FPN** 作为 **backbone** 提取不同感受野和语义水平的特征图,输出 $4$ 个相关联的特征图 $f_s$,缩放因子为 $s \in {\frac{1}{4},\frac{1}{8},\frac{1}{16},\frac{1}{32}}$。对特征图构造对比特征$$\delta_{l}=s_{l}-s_{1} , l \in\{2,3,4\}$$,对尺度感知特征和对比特征进行逐元素乘法操作,并将它们与特征图$f_s$逐通道拼接。对于每一个类别$c$,利用一个特定的解码器网络生成预测密度图,解码器由多个扩张卷积组成,之后接上正则化和 **ReLU** 激活函数。 + +![](https://pic.imgdb.cn/item/6684bcedd9c307b7e963704a.png) + +$\mathcal B_{est}$和$\mathcal D_{est}$分别为检测管道和密度估计管道的输出结果。首先$\mathcal D_{est}$经过一系列2D 卷积+**BN**+ **ReLU** 激活函数,之后通过一个尺度因子$\lambda_{res}$和一个裁剪操作输出。 + +$$ +\lambda_{\text {res }, j}=\frac{\sum_{x=1}^{X} \sum_{y=1}^{Y}\left(\mathcal{F}_{\text {stage1 }}\left(D_{j}^{\text {est }}(x, y)\right)\right)}{\sum_{x=1}^{X} \sum_{y=1}^{Y} \mathcal{I}_{b i}\left(\mathcal{F}_{\text {stage } 1}\left(D_{j}^{\text {est }}(x, y)\right)\right)} +$$ + +对于每一个类别,来自于检测通道计算的目标将会保存为向量,将此向量与之前得到的检测结果$B_{j}^{\text{est}}$拼接然后喂给一个**MLP**可得到每个类别估计的数量。 + +![](https://pic.imgdb.cn/item/6684be5bd9c307b7e9660c8f.png) + diff --git a/_posts/paper/2023/2023-05-27-lc.md b/_posts/paper/2023/2023-05-27-lc.md new file mode 100644 index 00000000..3e16e01d --- /dev/null +++ b/_posts/paper/2023/2023-05-27-lc.md @@ -0,0 +1,107 @@ +--- +layout: post +title: 'Object Counting and Instance Segmentation with Image-level Supervision' +date: 2023-05-27 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6684c1c3d9c307b7e96e351e.png' +tags: 论文阅读 +--- + +> 使用图像级监督的目标计数与实例分割. + +- paper:[Object Counting and Instance Segmentation with Image-level Supervision](https://arxiv.org/abs/1903.02494) + +现有的计数方法要么依赖于实例水平的标注或者绝对的计数信息来训练出通用的目标计数器。本文引入一种低数量图像级监督的设置(仅需要标记出小于4个计数样本的类别)来减少用于通用目标计数所需的标注,提出了低数量计数 **Lower-count(LC)**框架。 + +**LC**框架由图像分类分支和密度分支组成,图像分类分支估计当前图像内是否存在目标类别,密度分支预测特定类别的目标数量。仅使用少数量的监督,**LC** 模块能够减少标注的成本;此外密度分支构建出密度图来预测每个目标类别的实例在空间中的分布,因此可进行图像水平的实例分割(弱监督实例分割)。 + +设训练图像为$I$,对应的$C$个类别的 **GT** 计数向量标签为$$t={\{}t_1,t_2,\dots,t_c,\dots,t_C{\}}$$。对于一幅图像来说,可以根据他们包含的实例数量划分为三个不重叠的集合: +- $S_0$:目标类别并未出现在图像中,即$t_c=0$; +- $S$:目标类别数量较少,$0\leq t_c \leq4$; +- $\tilde{S}$:目标类别数量较多,$t_c\geq 5$。 + +**LC**框架建立在 **ResNet50** 上,为了保留空间信息除去了全局平均池化层。其主干是两个输出分支:分类分支预测特定类别的目标是否出现在图像上;密度图分支预测特定类别的数量以及每个目标类别的空间分布。 + +这两个分支的输入都是 2048 维的特征。之后两个分支分别接上两个 $1\times1$ 卷积分开,得到 $C$ 个通道的特征,$C$是目标类别的数量。然后分别生成目标类别图用于帮助目标定位,和密度图用于评估给定区域内目标的数量。 + +![](https://pic.imgdb.cn/item/6684c60ed9c307b7e9767942.png) + +设图像分类分支中的目标类别图为: + +$$ +\mathbf{M}=\left\{\mathbf{M}^{c} \in \mathbb{R}^{H \times W} \quad: c \in[1, C]\right\} +$$ + +由密度分支产生的特定类别密度图为: + +$$ +\mathbf{D}=\left\{\mathbf{D}^{c} \in \mathbb{R}^{H \times W} \quad: c \in[1, C]\right\} +$$ + +为了解决无点标注监督的问题,本文提出利用图像分类器的粗定位能力来产生一个空间**mask**。对目标类别图利用局部最大位置来产生空间**mask**用作训练密度分支时的伪标签: + +$$ +\tilde{\mathbf{M}}^{c}(i, j)= \begin{cases} M^c(i,j), & M^c(i,j)>M^c(i−r_i,j−r_j) \\ 0, & \text{otherwise} \end{cases} +$$ +​ +其中$-r \leq r_i,r_j \leq r$为计算局部最大值时的半径。为了训练图像分类器, 第$i$个目标类别的得分$s^c$设为$\tilde{\mathbf{M}}^{c}$上的非零元素平均值。而对于这种二分类任务,采用多标签软间隔损失函数来训练。 + +图像分类分支在峰值图$\tilde{\mathbf{M}}^{c}$中使用类别置信度得分可以预测出目标类别在不在图像中,而在图像类别分类分支中获得的目标类别图可以提供一个粗目标定位,为密度图提供空间上的指引。但是由于缺乏有关目标实例数量的先验信息,因此很难区分出单个目标和多个目标,这可能会导致大量的虚假正样本出现在峰值图$\tilde{\mathbf{M}}^{c}$中。因此引入了一个硬空间指导模块来利用计数信息并从峰值图$\tilde{\mathbf{M}}^{c}$中产生一个空间**mask**。 + +对于所有的目标类别$c\in{S}$,峰值图$\tilde{\mathbf{M}}^{c}$中的第$t_c$个最大的峰值$h_c$可以根据 **heap-max** 算法得到,之后$h_c$用来产生空间 **mask** $\text{B}^{c}$: + +$$ +\text{B}^{c}=u\left(\tilde{\mathbf{M}}^{c}-{h_c}\right) +$$ + +其中$u\left(n\right)$为单位步长函数,即$n \geq 0$时,$u\left(n\right)=1$。之后用空间**mask**作为伪标签来监督密度分支的空间损失,而这个特性也使得密度图中保留着目标的空间分布信息,从而提高了实例分割的性能。 + +密度分支产生特定类别的密度图$\text D^{c}$,其中的像素一方面表明了有多少个目标属于类别$c$,另一方面也可以估计出目标类别$c$的数量,同时在目标类别图$\text M^{c}M$上的像素也表明了该像素属于目标类别$c$的置信度。密度分支采用两个损失函数:$\mathcal L_{spatial}$损失确定了每个目标实例的位置,同时$\mathcal L_{global}$确定了特定类别的目标数量。 + +空间损失$\mathcal L_{spatial}$分为$\mathcal L_{sp+}$和$\mathcal L_{sp-}$: + +$$ +\mathcal {L}_{spatial}=\hat{\mathcal{L}}_{s p+}{\llbracket c \in S \rrbracket}+\hat{\mathcal{L}}_{s p-}{\llbracket c \in S_{0} \rrbracket,} +$$ + +$\mathcal L_{sp+}$的作用是增强$S$类别中对应的正峰值;为了采用$\mathcal L_{spatial}$来监督密度图,本文利用了空间 **mask** $\text{B}^{c}$来作为伪监督 **GT mask**。虽然在$\text{B}^{c}$上的非零元素意味着目标的位置,但是 0 元素并不意味着该像素对应着背景。因此,可以用 **mask** 密度图$\tilde{\text D}^{c}$来排除掉密度图$\text{D}^{c}$位置上为 0 的值,该位置对应 $\text{B}^{c}$位置上为 0 的像素。同时密度图$\text{D}^{c}$上的值也可以在训练和反向传播时被除去(防止引入虚假的负样本): + +$$ +\tilde{\mathrm{D}}^{c}=\mathrm{D}^{c} \odot \mathbf{B}^{c} +$$ + +$\mathcal L_{sp+}$表示为: + +$$ +\mathcal{L}_{s p+}\left(\tilde{\mathbf{D}}^{c}, \mathbf{B}^{c}\right)=-\sum_{\forall c \in S} \frac{\operatorname{sum}\left(\mathbf{B}^{c} \odot \log \left(\sigma\left(\tilde{\mathbf{D}}^{c}\right)\right)\right)}{|S| \cdot \operatorname{sum}\left(\mathbf{B}^{c}\right)} +$$ +​ +$\mathcal L_{sp-}$用于惩罚$S_{0}$类别中假的正样本峰值。对于$c\in {S}_{0}$,$\text{D}^{c}$中正的激活值意味着错误的检测,即虚假的正样本。因此一个全为 0 值的 **mask** $\mathbb 0_{H\times{W}}$可以用作 **GT** 来减少这种错误的检测: + +$$ +\mathcal{L}_{s p-}\left(\mathbf{D}^{c}, \mathbf{0}_{H \times W}\right)=-\sum_{c \in S_{0}} \frac{\operatorname{sum}\left(\log \left(1-\sigma\left(\mathbf{D}^{c}\right)\right)\right)}{\left|S_{0}\right| \cdot H \cdot W} +$$ + +尽管空间损失$\mathcal L_{spatial}$能保存目标的空间分布信息,但只依赖于局部信息可能会导致目标计数存在偏差,因此引入计数损失$\mathcal L_{global}$。计数损失包含排序损失$\mathcal L_{rank}$和均方误差损失$\mathcal L_{MSE}$: + +$$ +\mathcal{L}_{\text {count }}=\hat{\mathcal{L}}_{M S E} \llbracket c \in S_{0}, S \rrbracket+\lambda * \hat{\mathcal{L}}_{\text {rank }} \llbracket c \in \tilde{S} \rrbracket +$$ + +对于超出低数量范围的目标类别($\vee{c}\in \tilde {S}$),采用排序损失$\mathcal L_{rank}$惩罚$\tilde{S}$中过低的目标类别计数: + +$$ +\mathcal{L}_{\text {rank }}\left(\hat{t_{c}}, \tilde{t}\right)=\sum_{c \in \tilde{S}} \frac{\max \left(0, \tilde{t}-\hat{t_{c}}\right)}{|\tilde{S}|} +$$ + +对于剩余的类别,均方误差损失$\mathcal L_{MSE}$惩罚与 **GT** 数量不匹配的特定类别的预测: + +$$ +\mathcal{L}_{M S E}\left(\hat{t_{c}}, t_{c}\right)=\sum_{c \in\left\{S_{0}, S\right\}} \frac{\left(\hat{t_{c}}-t_{c}\right)^{2}}{\left|S_{0}\right|+|S|} +$$ + +其中$\hat {t_c}$为类别$c$的密度图在其整个区域内的求和,即$\hat {t_c}=\text{sum}\left(\text{D}^{c}\right)$。 + +作者对不同损失函数进行消融: + +![](https://pic.imgdb.cn/item/6684f01dd9c307b7e9caf1e0.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-05-28-rlc.md b/_posts/paper/2023/2023-05-28-rlc.md new file mode 100644 index 00000000..77de33de --- /dev/null +++ b/_posts/paper/2023/2023-05-28-rlc.md @@ -0,0 +1,57 @@ +--- +layout: post +title: 'Towards Partial Supervision for Generic Object Counting in Natural Scenes' +date: 2023-05-28 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6684f331d9c307b7e9d14ade.png' +tags: 论文阅读 +--- + +> 面向自然场景中通用目标计数的部分监督. + +- paper:[Towards Partial Supervision for Generic Object Counting in Natural Scenes](https://arxiv.org/abs/1912.06448) + +[Lower-Count (LC)](https://0809zheng.github.io/2023/05/27/lc.html)框架是一种低数量图像级监督的计数框架,仅需要标记出小于4个计数样本的类别。本文在此基础上提出了更低的低数量计数 **reduced lower-count(RLC)**。**RLC**框架利用类别的子集和剩下类别的 “类别-标签” 信息,能够进一步降低大量目标类别的标记成本。 + +**LC**框架的设置考虑到了小于4个的目标类别,但自然场景中可能存在大量的目标类别,此种情况下**LC**的标注也是非常麻烦的。因此对于目标计数来说,需要更具有挑战性的部分监督设置,即所有图像类别的标签是已知的情况下,只需要知道目标类别的一个子集上类别的少数量标注,这就是**RLC**监督的定义。 + +![](https://pic.imgdb.cn/item/6684f414d9c307b7e9d30474.png) + +**RLC**框架使得目标计数器能够泛化到没有数量标注的类别上。**RLC**框架是在**LC**双分支框架上拓展的:首先引入一个权重调制层,能迁移标记好的计数类别知识到没有任何数量标注的类别上,同时又为了增强其泛化性(未标记的类别和不相关的类别),在密度分支上又引入了一个类别无关的子分支,可以估计一幅图像的所有目标数量。 + +![](https://pic.imgdb.cn/item/6684f50bd9c307b7e9d4eac2.png) + +为了解决一些类别中数量标签不提供的情况,引入权重调制层:修改分类分支卷积层的权重来产生特定类别的密度图,该密度图用于估计所有类别中特定类别的数量。调制层的结构是一个$P\times\frac{P}{2}$的全连接层+正则化的 **softmax** 非线性层+ $\frac{P}{2}\times{P}$的全连接层(相当于一个瓶颈结构)。对于标注类别训练的卷积权重$\omega_{cls}^{c}$,穿过权重调制层$\Psi$得到未标注类别的卷积$\omega_{cnt}^{c}$,以进一步获得任意类别的密度图: + +$$ +w_{c n t}^{c}=\Psi\left(w_{c l s}^{c}\right), \mathrm{D}^{c}=w_{c n t}^{c} * \mathrm{~F}_{\mathrm{cnt}} +$$ + +独立类别子分支由1个单通道$1\times 1$卷积组成,输入为 $\text{F}^{\text{cnt}}$,对输出$\text{D}^{tot}$整个区域求和可得独立类别的总数量,即$\hat{t}_{t o t}=\sum_{i j} \mathrm{D}_{i j}^{t o t}$。 + +采用带有数量标注的$S$和$\tilde S$来训练独立类别分支,其 **GT** 数量$t_{tot}$记为: + +$$ +t_{t o t}=\sum_{c \in S} t_{c}+(\tilde{t} \times|\tilde{S}|) +$$ + +独立类别分支的训练损失为: + +$$ +\mathcal{L}_{t o t}=\mathcal{L}_{M S E}\left(\hat{t}_{t o t}, t_{t o t}\right) \llbracket Z=0 \rrbracket+\mathcal{L}_{r a n k}\left(\hat{t}_{t o t}, t_{t o t}\right) \llbracket Z>0 \rrbracket +$$ + +其中$Z$为数量标注未提供的目标类别的总数,记为:$Z=\|\tilde{s}\|+\|{\mathcal B}\prime\|$。其中$\|{\mathcal B}\prime\|$为$\mathcal B$类别中的正样本集合。${L}_{M S E}=\left(\hat{t}_{t o t}- t_{t o t}\right)^2$为均方误差损失,$\mathcal{L}_{\text {rank }}\left(\hat{t}_{\text {tot }}, t_{\text {tot }}\right)=\max \left(0, t_{\text {tot }}-\hat{t}_{\text {tot }}\right)$为排序损失。 + +独立类别密度图$\text{D}^{tot}$和目标类别图$\text{M}^{c}$一起产生空间注意力图$\text{G}^{c}$:利用 **sigmoid** 激活函数得到归一化后的$\hat{\text{M}^{c}}$。类别为$c$的空间注意力图$\mathbf{G}^{c}=\hat{\mathbf{M}}^{c} \circ \mathbf{D}^{t o t}$,$\mathbf{G}^{c}$作为相应的伪标签$\text{D}^{c}$获得特定类别的密度图$\hat{\text{D}}^{c}=\mathrm{D}^{c} \circ \mathrm{G}^{c}$。 + +通过累积整个空间区域内的$\hat{\mathrm{D}}^{c}$,特定类别的目标总数量为${\hat t}_{c}=\sum_{i j} \hat{\mathrm{D}}_{i j}^{c}$,其中$i,j$为矩阵中元素的坐标。该特定类别的子分支可用 **LRC** 损失函数$\mathcal{L}_{\text {rcount }}$来训练: + +$$ +\mathcal{L}_{\text {rcount }}=\mathcal{L}_{M S E}\left(\hat{t}_{c}, t_{c}\right) \llbracket c \in S \rrbracket+\mathcal{L}_{\text {rank }}\left(\hat{t}_{c}, \tilde{t}\right) \llbracket c \in \tilde{S} \rrbracket +$$ + +需要注意的是,预测的总数${\hat t}_c$是空间注意力$\text{G}^{c}$加权给密度图$\hat{\mathrm{D}}^{c}$得到的,因此在最小化计数误差的同时,空间分布信息将会保留下来。 + +由于产生$\text{D}^{c}$的卷积权重$\omega_{cnt}^{c}$是根据调制层$\Psi\left(\omega_{cls}^{c}\right)$得到的,因此在最小化 **LRC** 损失$\mathcal{L}_{\text {rcount }}$时也会训练无关类别的权重调制层$\Psi$。 + diff --git a/_posts/paper/2023/2023-06-30-countx.md b/_posts/paper/2023/2023-06-30-countx.md new file mode 100644 index 00000000..e4e348e6 --- /dev/null +++ b/_posts/paper/2023/2023-06-30-countx.md @@ -0,0 +1,40 @@ +--- +layout: post +title: 'Open-world Text-specified Object Counting' +date: 2023-06-30 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/667e79d4d9c307b7e9760915.png' +tags: 论文阅读 +--- + +> 开放世界文本指定目标计数. + +- paper:[Open-world Text-specified Object Counting](https://arxiv.org/abs/2306.01851) + +受益于使用大规模图像-文本配对数据(如**CLIP**)进行联合文本-图像编码预训练的图像编码器的可用性,本文提出了单阶段开放世界图像计数模型**CounTX**,其中要计数的目标在推理时由文本描述指定。 + +![](https://pic.imgdb.cn/item/667e7c4dd9c307b7e97b7119.png) + +**CounTX**模型由图像编码器、文本编码器、特征交互模块和解码器组成。 +- 图像编码器使用在**LAION-2B**上预训练的**CLIP**的视觉编码器**ViTB-16**,模型的**patch**大小为16×16,共12层,最终嵌入维数为512。只图像编码器输出的**patch**令牌被使用,**CLS令**牌被丢弃。 +- 文本编码器使用与上述视觉编码器共同预训练的**CLIP**的文本编码器,上下文长度为77,有12层,最终嵌入维数为512,将类别描述转换为单个512维特征向量。 +- 特征交互模块是嵌入维数为512的两个**Transformer**解码器层,使用图像特征计算查询向量,使用文本特征计算键向量和值向量。输出被重塑成具有512通道的空间特征映射。 +- 解码器首先将空间特征的每个通道使用双线性插值上采样到24×24像素,然后渐进上采样产生与输入图像具有相同高度和宽度的特征映射,并具有256个通道。使用1 × 1卷积将这些通道组合成单通道密度图。 + +![](https://pic.imgdb.cn/item/668206f1d9c307b7e90a89c0.png) + +在计数任务上微调**CounTX**之前,图像编码器和文本编码器使用**CLIP**对大量的图像-文本对进行预训练,将输入的图像和类描述映射到联合文本-图像嵌入空间,帮助特征交互模块比较来自两种模式的数据。因此,图像编码器和文本编码器首先使用来自**CLIP**的预训练权重初始化。然后文本编码器被冻结,而图像编码器在计数任务上与模型的其余部分进行微调,这种微调和冻结图像和文本编码器的组合可以产生最佳性能。 + +![](https://pic.imgdb.cn/item/667e822fd9c307b7e985e616.png) + +作为计数任务常用的**FSC-147**数据集,其类别名不能准确描述被计数的目标。作者将**FSC-147**类名转换为对“应该计算什么目标”这个问题的回答。并纠正发现的错误。将这组描述命名为“**FSC-147-D**”。 + +![](https://pic.imgdb.cn/item/667e82dcd9c307b7e98703c4.png) + +实验结果表明,在**FSC-147-d**上训练的**CounTX**在**FSC-147**上的所有测量中,对于文本指定的目标计数都达到了最先进的性能。 + +![](https://pic.imgdb.cn/item/667e83bcd9c307b7e9887e58.png) + +为了验证**CounTX**使用类别描述对目标进行计数,将**FSC-147**测试集中的图像对拼接在一起,并让**CounTX**负责预测同一拼接图像中不同类别的计数。下图给出了一些使用类别描述来区分目标的例子。 + +![](https://pic.imgdb.cn/item/667e8478d9c307b7e989adbb.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-09-09-abc123.md b/_posts/paper/2023/2023-09-09-abc123.md new file mode 100644 index 00000000..1cc92a5d --- /dev/null +++ b/_posts/paper/2023/2023-09-09-abc123.md @@ -0,0 +1,56 @@ +--- +layout: post +title: 'ABC Easy as 123: A Blind Counter for Exemplar-Free Multi-Class Class-agnostic Counting' +date: 2023-09-09 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/6683aa3bd9c307b7e986a5ea.png' +tags: 论文阅读 +--- + +> 无模板多类别类不可知计数的盲计数器. + +- paper:[ABC Easy as 123: A Blind Counter for Exemplar-Free Multi-Class Class-agnostic Counting](https://arxiv.org/abs/2309.04820) + +本文提出了一个多类别、类不可知计数数据集(**MCAC**)和一个盲计数器(**ABC123**),**ABC123**可以在训练或推理期间同时计数多种类型的目标而不依赖于用户提供的目标样本。 + +## 1. 多类别、类不可知计数数据集 MCAC + +**MCAC**数据集中的每张图像包含具有1到4种目标类别,每个类别具有1到400个实例。每个图像的类别数和每个类别的实例分布如图所示。 + +![](https://pic.imgdb.cn/item/6683aa30d9c307b7e9868405.png) + +**MCAC**数据集的训练集从287个类中提取4756张图像(8298个目标计数),验证集从37个类中提取的2413个图像(3640个目标计数),测试集从19个类中提取的2114个图像(4286个目标计数)。每个目标都提供了类标签、模型标签、中心坐标、边界框坐标、分割图、未遮挡分割图和遮挡百分比。 + +![](https://pic.imgdb.cn/item/6683ab11d9c307b7e988e68e.png) + +## 2. 盲计数器 ABC123 + +**ABC123**同时学习预测类别数与每个类别的密度图。使用**ViT-Small**提取图像特征后,使用$m$个卷积上采样头回归$m$个类别密度图($m$通常大于所有可能出现的类别数)。之后构造$m$个预测密度图和$n$个真实密度图之间的最优二分匹配: + +$$ +\min_{\mathcal{M}} \sum_{i=1}^m \sum_{j=1}^n \mathcal{M}_{ij}\mathcal{C}_{ij} +$$ + +其中代价矩阵$\mathcal{C}$定义为归一化的真实密度图$d_i$和预测密度图$d_j$的像素距离。 + +$$ +\mathcal{C}_{ij} = \left\| \frac{d_i}{||d_i||_2} - \frac{d_j}{||d_j||_2} \right\|_2 +$$ + +**ABC123**的损失函数为真实密度图与其被匹配的预测密度图的**L1**距离: + +$$ +\mathcal{L} = \sum_{i=1}^m \sum_{j=1}^n \mathcal{M}_{ij} ||d_i-d_j||_1 +$$ + +![](https://pic.imgdb.cn/item/6683af4ad9c307b7e9959f56.png) + +## 3. 实验分析 + +实验结果表明,所提方法在具有4个类的图像上表现良好,即使这些图像具有较高的类内外观变化(如不同侧面的颜色不同)和较低的类间变化。 + +![](https://pic.imgdb.cn/item/6683b041d9c307b7e99818f3.png) + +通过使用预测密度图中的峰值作为预训练分割方法的点输入,在输入图像中可视化被计数的目标示例。 + +![](https://pic.imgdb.cn/item/6683af4ad9c307b7e9959f56.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-11-28-semaug.md b/_posts/paper/2023/2023-11-28-semaug.md new file mode 100644 index 00000000..7d1b019b --- /dev/null +++ b/_posts/paper/2023/2023-11-28-semaug.md @@ -0,0 +1,34 @@ +--- +layout: post +title: 'Semantic Generative Augmentations for Few-Shot Counting' +date: 2023-11-28 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/66864476d9c307b7e91d5d77.png' +tags: 论文阅读 +--- + +> 少样本计数的语义生成增强. + +- paper:[Semantic Generative Augmentations for Few-Shot Counting](https://arxiv.org/abs/2311.16122) + +少样本目标任务依赖于用边界框注释的目标样本,采用提取-匹配的方式比较样本和查询图像的特征,然后将匹配的特征转换成密度图(表示感兴趣目标的密度),然后对密度图求和以获得预测计数。其中计数数据集的数据样本通常包括查询图像、若干个目标样本的检测框以及目标的密度图。 + +![](https://pic.imgdb.cn/item/668647ead9c307b7e92727ce.png) + +本文提出在输入文本提示和密度图条件下合成计数图像的方法。对于计数数据集中的数据样本,首先使用现成的图像描述模型**BLIP2**获得多样化的描述性文本。然后通过**ControlNet**微调策略,输入文本与密度图来微调在**LAION 2B**上训练的**Stable diffusion v1.5**模型。微调完成后,可以通过生成模型构造新的样本。 + +![](https://pic.imgdb.cn/item/66864bead9c307b7e933cf46.png) + +作者进一步通过改变文本描述或物体的空间位置来使数据增强的结果更加多样化。通过混合密度图和文本描述来创建新的组合,产生比原始数据集在语义和几何上更多样化的增强数据集。为了使生成模型具有逼真的(密度图,文本)对,依靠文本描述相似性来发现共享某些语义的图像之间的新关联。如果两张图片的文本描述$c_i,c_k$相似度超过阈值$t_c$,则称它们是兼容的: + +$$ +sim(c_i,c_k) = \frac{E_{text}(c_i)^TE_{text}(c_k)}{||E_{text}(c_i)||_2||E_{text}(c_k)||_2} > t_c +$$ + +在数据生成时使用初始密度图对新图像进行采样,但将原始文本描述替换为随机选择的兼容文本描述。这个过程产生了更多样化的增强,并且比传统增强(颜色抖动、作物等)改变了更多的图像。 + +![](https://pic.imgdb.cn/item/66864d3dd9c307b7e937b993.png) + +实验结果表明,所提数据增强策略对**SAFECount**和**CounTR**两种计数网络均是有效的。 + +![](https://pic.imgdb.cn/item/66864ef8d9c307b7e93e48e7.png) \ No newline at end of file diff --git a/_posts/paper/2023/2023-12-27-vlcounter.md b/_posts/paper/2023/2023-12-27-vlcounter.md new file mode 100644 index 00000000..bd146c9f --- /dev/null +++ b/_posts/paper/2023/2023-12-27-vlcounter.md @@ -0,0 +1,81 @@ +--- +layout: post +title: 'VLCounter: Text-aware Visual Representation for Zero-Shot Object Counting' +date: 2023-12-27 +author: 郑之杰 +cover: 'https://pic.imgdb.cn/item/66824a94d9c307b7e96d54a6.png' +tags: 论文阅读 +--- + +> VLCounter:零样本目标计数的文本感知视觉表示. + +- paper:[VLCounter: Text-aware Visual Representation for Zero-Shot Object Counting](https://arxiv.org/abs/2312.16580) + +本文提出了一种简化的零样本目标计数框架,即视觉语言基线(**Visual-Language Baseline, VLBase**),它由**CLIP**编码器和计数解码器组成。利用**CLIP**的嵌入空间,实现语义和补丁嵌入的隐式关联,从而对目标物体进行定位。在**VLBase**的基础上作者进一步提出了**VLCounter**,通过引入语义条件提示微调、可学习仿射变换与语义感知跳跃连接,实现对目标物体的计数。 + +![](https://pic.imgdb.cn/item/66824eacd9c307b7e9739c62.png) + +## 1. 视觉语言基线 Visual-Language Baseline + +给定输入查询图像和类别名, **VLBase**分别使用**CLIP**视觉编码器 $V(·)$和文本编码器 $T(·)$获得图像嵌入$V$和文本语义嵌入$T$。通过计算$T$与$V$之间的余弦相似度,得到相似度图$S$。 + + +$$ +S_{i j}(\mathcal{V},\mathcal{T})=\frac{v_{i j}\mathcal{T}^T}{||v_{i j}||\cdot ||\mathcal{T}||} +$$ + +**CLIP**编码的文本嵌入和图像嵌入之间的相似度图可以充分表明图像和文本嵌入之间的语义相似程度。这种相似度图是解码器定位目标对象的一个很好的线索。因此基于**CNN**的计数解码器利用图像嵌入$V$和相似度图$S$的特征来预测密度图。最后,通过对密度图中的所有值求和得出目标计数预测。 + +## 2. 语义条件提示微调 Semantic-conditioned Prompt Tuning + +为了在不牺牲其泛化能力的情况下赋予**CLIP**图像编码器任务特异性,作者引入了语义条件提示调优(**SPT**),它利用语义信息和可学习的**token**来帮助图像编码器提取目标语义突出显示的视觉特征。 + +**SPT**对每个编码层都引入新的可学习**token**。第$l$层的可学习**token**定义为$P^l = [p^l_1, p^l_2,...,p^l_M]$,然后将这些**token**与线性投影文本嵌入$T$相加,以生成语义条件提示符: + +$$ +\hat{\mathcal{P}}^l=[p_1^l+\hat{\mathcal{T}},p_2^l+\hat{\mathcal{T}},p_M^l+\hat{\mathcal{T}}] +$$ + +因此图像编码器第$l$层的**patch**嵌入过程可表示为: + +$$ +[[cls],\_,\mathcal{V}^{l+1}]=Layer_{\mathrm{enc}}^{l}([[cls],\hat{\mathcal{P}}^{l},\mathcal{V}^{l}]) +$$ + +![](https://pic.imgdb.cn/item/66825166d9c307b7e97803a5.png) + +## 3. 可学习仿射变换 Learnable Affine Transformation + +相似度图$S$表示目标类的相应区域被突出显示的视觉表示。然而,由于目标计数的本质是发现目标的中心点,而不是包含整个目标区域,因此相似图中包含的信息与训练过程中需要反向传播的损失之间可能产生差异。作者提出了可学习仿射变换矩阵来促进相似度图$S$转换到计数图$\hat{S}$:联 + +$$ +\hat{S}=W\otimes S+B +$$ + +使用等级感知的对比损失来优化计数图$\hat{S}$,以学习目标计数的适当激活程度。为了设计等级感知对比损失的分层指导,首先将真值密度图归一化,以映射在0和1之间。然后使用不同的阈值迭代批处理K次,以准备正集和负集:如果真值密度图中对应的**patch**的值高于阈值,则被收集为正值;否则为负值。形式上,正集与负集的秩对比损失表示为: + +$$ +\mathcal{L}_{\mathrm{rank}}=-\sum_{k=1}^K\log\frac{\sum_{\hat{S}_i\in\hat{S}_r^{\mathrm{pos}}}\exp(\hat{S}_i/\tau)}{\sum_{\hat{S}_j\in(\hat{S}_r^{\mathrm{pos}}\cup\hat{S}_r^{\mathrm{neg}})}\exp(\hat{S}_j/\tau)} +$$ + +## 4. 语义感知跳跃连接 Semantic-aware Skip Connection + +模型在推理过程中可能遇到看不见的类,因此在保持泛化能力的同时训练一个为目标计数量身定制的解码器是很重要的。作者采用跳跃连接,将编码器的中间特征合并到解码器中的对应部分。 + +具体地,编码器输出的视觉特征$V$在空间上进行连接和投影,然后乘以计数图$\hat{S}$来强调目标相关的**token**。最后将这些**patch**特征添加到解码器的对应层特征中: + +$$ +\mathcal{F}^k=Layer_{\mathrm{dec}}^k(\mathcal{F}^{k-1}+\phi_{\mathrm{proj}}^k(\mathcal{V}^l)\otimes\hat{S}) +$$ + +![](https://pic.imgdb.cn/item/66825406d9c307b7e97cab42.png) + +## 5. 实验分析 + +结果表明,尽管**VLBase**的设计很简单,但性能可以与两阶段方法相媲美。**VLcounter**明显超过了其他基线。单阶段方法(**VLBase**和**VLCounter**)只需要计算目标的时间,因此它们的推理速度比两阶段方法快得多,需要学习的参数更少,训练时间更短。 + +![](https://pic.imgdb.cn/item/66825629d9c307b7e9808b5b.png) + +下图比较了**VLBase**和**VLCounter**的相似度图和预测密度图。通过传递语义条件和对相似度图进行微调,相似度图保留了更紧凑的显著区域;背景中的激活被抑制,目标区域被明确定位。然后通过将丰富语义的多层次表示与解码器中的这些相似图聚合在一起,密度图能够获得更高质量的结果,特别是对于密集填充的图像。 + +![](https://pic.imgdb.cn/item/668256c7d9c307b7e9816981.png) \ No newline at end of file