多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记
- 一、Abstract
- 二、引言
- 三、方法
-
- A、Multi-Class Object Counting Problem Definition
- B、Dilated-Scale-Aware Module
- C、Category-Attention Module
- D、损失函数
- 四、实验
-
- A、实施细节
- B、数据集
-
- VisDrone-DET Dataset
- RSOC Dataset
- C、评估标准
- D、Comparisons With the State-of-The-Art
- E、消融实验
- 五、结论
写在前面
??过年在家,工作时间减少了很多,玩的也很嗨,花零散时间读完了这篇论文及代码,抽空做个总结。
??这篇论文写的是多类别目标计数,思路稍显复杂,改进的空间应该蛮多的。
- 论文链接:Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting
- 代码链接:Github
一、Abstract
??单类别目标计数已经取得了不错的效果,但是现实场景仍然是多类别目标计数。该任务难点在于目标标注的收集:回归框标注成本较高,本文提出用点标注的方式进行计数。具体来说,首先将单目标计数密度图改为多类别目标计数图。而由于所有类别的目标都采用同一特征提取器,因此目标特征会在贡献的特征空间内进行交互。所以本文设计了一种多任务结构来抑制目标之间的这种负的交互/联系。
二、引言
??目标计数在计算机视觉中很重要,而大部分的方法都是单类别目标计数,因此当改变计数类别时就需要重新训练网络。另外有少量的多类别目标计数,这一应用在现实中更加重要。下面是对计数方法的介绍:
??基于检测的方法同时进行检测和计数,但依赖于box的标注,因此主流的目标计数数据集仅仅提供点水平的标注,这对于采用检测的方法来说基本不太可能。
??基于回归的方法仅依赖于点的标注且实现了很大的成功,但这类方法大多在点标注上采用一系列的高斯blobs,因此当前基于回归的计数方法很难应用在多类别计数上。
??为了解决上述问题,本文提出了一种 Dilated-Scale-Aware Category-Attention ConvNet (DSACA)来实现多类别目标计数。具体来说,DSACS 由两个模块 Dilated-Scale-AwareModule(DSAM) 和 Category-Attention Module (CAM) 组成。首先,利用CNN提取特征图,DSAM 采用不同的膨胀率来同时捕捉大小目标之间的视觉反应,用于融合这些特征图。另外,由于共享目标提取器,预测的密度图彼此会进行交互,促使本文设计一种CAM模块来提供高质量孤立的类别密度图。
??本文贡献如下:
- 本文是第一个尝试基于点标注的进行多类别目标计数的方法;
- 提出了DSACA,由 DSAM 和 CAM 模块组成,DSAM 捕捉多尺度信息,CAM 自适应地抑制特征提取时的类别内交互;
- 大量的实验表明本文提出的方法效果很好。
三、方法
??如上图所示,提出的方法主要由两个关键模块组成,DSAM 和 CAM。首先利用 VGG16 作为 backbone,但是去掉了 stage_4, 5中的池化层。之后利用 DSAM 提取不同尺度的特征,CAM 用于减少不同类别密度图中的负关联。
A、Multi-Class Object Counting Problem Definition
??目前的单类别目标计数方法主要采用高斯核在点标注上滑动,来产生密度图以及预测出单类别的数量。为了实现多类别计数,本文同样采用高斯核,但预测的是所有类别的密度图。
具体来说,对于一幅包含 NNN 个类别的物体图像,GT密度图为:
D={∑i=1C1δ(U1?Ui1)?Gσ1(U1)?∑i=1Cnδ(Un?Uin)?Gσn(Un)?∑i=1CNδ(UN?UiN)?GσN(UN)D=\left\{\begin{array}{c} \sum_{i=1}^{C_{1}} \delta\left(U^{1}-U_{i}^{1}\right) * G_{\sigma^{1}}\left(U^{1}\right) \\ \vdots \\ \sum_{i=1}^{C_{n}} \delta\left(U^{n}-U_{i}^{n}\right) * G_{\sigma^{n}}\left(U^{n}\right) \\ \vdots \\ \sum_{i=1}^{C_{N}} \delta\left(U^{N}-U_{i}^{N}\right) * G_{\sigma^{N}}\left(U^{N}\right) \end{array}\right. D=??????????????????∑i=1C1??δ(U1?Ui1?)?Gσ1?(U1)?∑i=1Cn??δ(Un?Uin?)?Gσn?(Un)?∑i=1CN??δ(UN?UiN?)?GσN?(UN)?
其中 UinU_{i}^{n}Uin? 为第 nnn 个类别中的第 iii 个实例。在第 nnn 个类别中,共有 CnC_{n}Cn? 个实例。 σn\sigma^{n}σn 为高斯函数中第 nnn 个类别的高斯核,取决于第 nnn 个类别的相对大小。
B、Dilated-Scale-Aware Module
??提出DSAM模块,通过膨胀卷积融合多阶段/尺度的特征信息。提出的 DSAM 应用不同尺度的膨胀卷积分别在 stage_3,4,5 上,之后经过下采样和拼接操作后,一个 3×33\times33×3 的卷积操作用于融合这些多尺度的特征。采用 L2′L_{2}^{\prime}L2′? 正则化来监督训练过程。
C、Category-Attention Module
??虽然DSAM有用,但是不完全有用,因此设计 CAM 来产生区分性强的密度图,主要是分别处理每个类别的空间注意力。具体来说,首先利用距离转换将点图转化为距离图 SSS,定义如下:
P(x,y)=min?(xi,yi)∈A(x?xi)2+(y?yi)2P_{(x, y)}=\min _{\left(x_{i}, y_{i}\right) \in A} \sqrt{\left(x-x_{i}\right)^{2}+\left(y-y_{i}\right)^{2}} P(x,y)?=(xi?,yi?)∈Amin?(x?xi?)2+(y?yi?)2?
其中,P(x,y)P_{(x, y)}P(x,y)? 表示距离图 SSS 位置 (x,y)(x,y)(x,y) 上的值。AAA 为标注点的坐标集合。通过使用阈值 JJJ 将距离图 SSS 上的点划分为 0?10-10?1 来获得伪标签注意力 masks 。
??CAM 仅采用 sage_5 上的特征图作为输入,因为该层具有更加丰富的语义信息。之后经过多个卷积和拼接操作来联合多尺度的特征图。这里卷积指的是采用膨胀因子为 1,2,3,41,2,3,41,2,3,4 的膨胀卷积。空间注意力图的数量等于类别的数量。预测的空间注意力图和预测的密度图相乘就能获得最终的密度图了,这一操作能有效减少类别间的联系。
D、损失函数
??利用 L2L_2L2? 损失来衡量GT密度图和预测密度图之间的区别:
L2=∑n=1N∑x=1W∑y=1H∣P(n,x,y)′?P(n,x,y)∣2L_{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} L2?=n=1∑N?x=1∑W?y=1∑H?∣∣∣?P(n,x,y)′??P(n,x,y)?∣∣∣?2
其中,NNN 为类别的总数,W,HW,HW,H 分别为图像的高和宽。P(n,x,y)′P_{(n, x, y)}^{\prime}P(n,x,y)′?和P(n,x,y)P_{(n, x, y)}P(n,x,y)?分别表示位置 (x,y,z)(x,y,z)(x,y,z) 上的预测密度图和GT密度图的值。采用相同的损失来训练 DASM,即L2primeL_{2}^{prime}L2prime?。
??采用 BCE 损失来训练 CAM:
LBCE=?1W×H∑n=1N∑x=1W∑y=1H((T(n,x,y)×log?R(n,x,y))+(1?T(n,x,y))×log?(1?R(n,x,y)))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) LBCE?=?W×H1?n=1∑N?x=1∑W?y=1∑H?((T(n,x,y)?×logR(n,x,y)?)+(1?T(n,x,y)?)×log(1?R(n,x,y)?))
其中 T(n,x,y)∈{0,1}T_{(n,x,y)}\in {\{}0,1{\}}T(n,x,y)?∈{
0,1}表示位置 (x,y)(x,y)(x,y) 处第 nnn 个类别的伪标签注意力 mask。R(n,x,y)∈[0,1]R_{(n,x,y)}\in[0,1]R(n,x,y)?∈[0,1] 表示位置 (n,x,y)(n,x,y)(n,x,y) 处预测的空间注意力。
??训练过程的总损失为:
L=L2+L2′+LBCEL = L_{2}+L_{2}^{\prime}+L_{BCE} L=L2?+L2′?+LBCE?
四、实验
A、实施细节
??端到端方式训练,采用VGG16预训练权重中的前13个卷积层。高斯初始化因子设为0.01标准差。距离阈值 JJJ 设为 202020。图像预处理采用随机翻转和图像裁剪,尺寸为 512×512512\times512512×512。采用Adam优化器更新网络参数,单个NVDIA2080Ti进行训练,实验结果如下:
B、数据集
??由于目前没有公开的多类别目标计数数据集,因此利用带有多个单类别目标计数集 RSOC 和目标检测数据集 VisDrone。对于目标检测数据集,通过计算 bouding box 的中心坐标来获得点标注,所有实验均在点标注的情况下进行。
VisDrone-DET Dataset
??该数据集包含10209个图像,多个类别,只考虑行人+人融合后的人类数据集以及自行车数据集,其挑战在于目标的尺寸极小。
RSOC Dataset
??该数据集包含3057个图像,收集自 Google Earth 和 DOTA 遥感数据集,包含4个类别:建筑物,小的交通工具,大的交通工具和船。特别地,小的交通工具和大的交通工具总是同时出现在图像中,而这刚好满足了多类别目标计数的要求。本文考虑的是其中小的交通工具和大的交通工具子集。其挑战在于 RSOC 数据集中包含有一些背景噪声。
C、评估标准
??绝对平均误差 MAE 和均方误差 MSE 是最主要的评价指标,来统计所有类别的平均得分,多类别计数的能力可以表示为:
MAE=1M∑m=1M∣Qm′?Qm∣,MSE=1M∑m=1M(Qm′?Qm)2,MAEAverage =1N∑n=1NMAEn,MSEAverage =1N∑n=1NMSEn,\begin{aligned} M A E &=\frac{1}{M} \sum_{m=1}^{M}\left|Q_{m}^{\prime}-Q_{m}\right|,\\ M S E &=\sqrt{\frac{1}{M} \sum_{m=1}^{M}\left(Q_{m}^{\prime}-Q_{m}\right)^{2},} \\ M A E_{\text {Average }} &=\frac{1}{N} \sum_{n=1}^{N} M A E_{n}, \\ M S E_{\text {Average }} &=\frac{1}{N} \sum_{n=1}^{N} M S E_{n}, \end{aligned} MAEMSEMAEAverage ?MSEAverage ??=M1?m=1∑M?∣Qm′??Qm?∣,=M1?m=1∑M?(Qm′??Qm?)2,?=N1?n=1∑N?MAEn?,=N1?n=1∑N?MSEn?,?
其中 MMM 为测试集中图像的数量,NNN 为类别的数量。Qm′,QmQ_{m}^{\prime},Q_{m}Qm′?,Qm? 为第 mmm 幅图像中预测的目标数量和GT数量。
D、Comparisons With the State-of-The-Art
E、消融实验
五、结论
??本文提出了 DSACA 框架,能够在只依赖点标注的情况下同时实现最佳的多类别目标计数性能。设计了 DSAM 和 CAM 分别用于克服密度图之间的关联以及缓解多尺度的影响,实验表明效果很好。
写在后面
??2021年结束了,2022年,希望有更多的成果发表,早日毕业~
??祝大家新年快乐呀~