-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
29 changed files
with
1,412 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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} | ||
$$ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
Oops, something went wrong.