多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记

多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记


写在前面
  过年在家,工作时间减少了很多,玩的也很嗨,花零散时间读完了这篇论文及代码,抽空做个总结。
  这篇论文写的是多类别目标计数,思路稍显复杂,改进的空间应该蛮多的。

一、Abstract

  单类别目标计数已经取得了不错的效果,但是现实场景仍然是多类别目标计数。该任务难点在于目标标注的收集:回归框标注成本较高,本文提出用点标注的方式进行计数。具体来说,首先将单目标计数密度图改为多类别目标计数图。而由于所有类别的目标都采用同一特征提取器,因此目标特征会在贡献的特征空间内进行交互。所以本文设计了一种多任务结构来抑制目标之间的这种负的交互/联系。

二、引言

  目标计数在计算机视觉中很重要,而大部分的方法都是单类别目标计数,因此当改变计数类别时就需要重新训练网络。另外有少量的多类别目标计数,这一应用在现实中更加重要。下面是对计数方法的介绍:多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记
  基于检测的方法同时进行检测和计数,但依赖于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 自适应地抑制特征提取时的类别内交互;
  • 大量的实验表明本文提出的方法效果很好。

三、方法

多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记
  如上图所示,提出的方法主要由两个关键模块组成,DSAM 和 CAM。首先利用 VGG16 作为 backbone,但是去掉了 stage_4, 5中的池化层。之后利用 DSAM 提取不同尺度的特征,CAM 用于减少不同类别密度图中的负关联。

A、Multi-Class Object Counting Problem Definition

  目前的单类别目标计数方法主要采用高斯核在点标注上滑动,来产生密度图以及预测出单类别的数量。为了实现多类别计数,本文同样采用高斯核,但预测的是所有类别的密度图。
具体来说,对于一幅包含 N N N 个类别的物体图像,GT密度图为:
D = { ∑ i = 1 C 1 δ ( U 1 − U i 1 ) ∗ G σ 1 ( U 1 ) ⋮ ∑ i = 1 C n δ ( U n − U i n ) ∗ G σ n ( U n ) ⋮ ∑ i = 1 C N δ ( U N − U i N ) ∗ G σ N ( U N ) 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)​
其中 U i n U_{i}^{n} Uin​ 为第 n n n 个类别中的第 i i i 个实例。在第 n n n 个类别中,共有 C n C_{n} Cn​ 个实例。 σ n \sigma^{n} σn 为高斯函数中第 n n n 个类别的高斯核,取决于第 n n n 个类别的相对大小。

B、Dilated-Scale-Aware Module

  提出DSAM模块,通过膨胀卷积融合多阶段/尺度的特征信息。提出的 DSAM 应用不同尺度的膨胀卷积分别在 stage_3,4,5 上,之后经过下采样和拼接操作后,一个 3 × 3 3\times3 3×3 的卷积操作用于融合这些多尺度的特征。采用 L 2 ′ L_{2}^{\prime} L2′​ 正则化来监督训练过程。

C、Category-Attention Module

  虽然DSAM有用,但是不完全有用,因此设计 CAM 来产生区分性强的密度图,主要是分别处理每个类别的空间注意力。具体来说,首先利用距离转换将点图转化为距离图 S S S,定义如下:
P ( x , y ) = min ⁡ ( x i , y i ) ∈ A ( x − x i ) 2 + ( y − y i ) 2 P_{(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)​ 表示距离图 S S S 位置 ( x , y ) (x,y) (x,y) 上的值。 A A A 为标注点的坐标集合。通过使用阈值 J J J 将距离图 S S S 上的点划分为 0 − 1 0-1 0−1 来获得伪标签注意力 masks 。
  CAM 仅采用 sage_5 上的特征图作为输入,因为该层具有更加丰富的语义信息。之后经过多个卷积和拼接操作来联合多尺度的特征图。这里卷积指的是采用膨胀因子为 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 的膨胀卷积。空间注意力图的数量等于类别的数量。预测的空间注意力图和预测的密度图相乘就能获得最终的密度图了,这一操作能有效减少类别间的联系。

D、损失函数

  利用 L 2 L_2 L2​ 损失来衡量GT密度图和预测密度图之间的区别:
L 2 = ∑ n = 1 N ∑ x = 1 W ∑ y = 1 H ∣ P ( n , x , y ) ′ − P ( n , x , y ) ∣ 2 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} L2​=n=1∑N​x=1∑W​y=1∑H​∣∣∣​P(n,x,y)′​−P(n,x,y)​∣∣∣​2
其中, N N N 为类别的总数, W , H W,H W,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,即 L 2 p r i m e L_{2}^{prime} L2prime​。
  采用 BCE 损失来训练 CAM:
L B C E = − 1 W × H ∑ n = 1 N ∑ x = 1 W ∑ y = 1 H ( ( 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) 处第 n n n 个类别的伪标签注意力 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 = L 2 + L 2 ′ + L B C E L = L_{2}+L_{2}^{\prime}+L_{BCE} L=L2​+L2′​+LBCE​

四、实验

A、实施细节

  端到端方式训练,采用VGG16预训练权重中的前13个卷积层。高斯初始化因子设为0.01标准差。距离阈值 J J J 设为 20 20 20。图像预处理采用随机翻转和图像裁剪,尺寸为 512 × 512 512\times512 512×512。采用Adam优化器更新网络参数,单个NVDIA2080Ti进行训练,实验结果如下:
多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记

B、数据集

  由于目前没有公开的多类别目标计数数据集,因此利用带有多个单类别目标计数集 RSOC 和目标检测数据集 VisDrone。对于目标检测数据集,通过计算 bouding box 的中心坐标来获得点标注,所有实验均在点标注的情况下进行。

VisDrone-DET Dataset

  该数据集包含10209个图像,多个类别,只考虑行人+人融合后的人类数据集以及自行车数据集,其挑战在于目标的尺寸极小。

RSOC Dataset

  该数据集包含3057个图像,收集自 Google Earth 和 DOTA 遥感数据集,包含4个类别:建筑物,小的交通工具,大的交通工具和船。特别地,小的交通工具和大的交通工具总是同时出现在图像中,而这刚好满足了多类别目标计数的要求。本文考虑的是其中小的交通工具和大的交通工具子集。其挑战在于 RSOC 数据集中包含有一些背景噪声。

C、评估标准

  绝对平均误差 MAE 和均方误差 MSE 是最主要的评价指标,来统计所有类别的平均得分,多类别计数的能力可以表示为:
M A E = 1 M ∑ m = 1 M ∣ Q m ′ − Q m ∣ , M S E = 1 M ∑ m = 1 M ( Q m ′ − Q m ) 2 , M A E Average  = 1 N ∑ n = 1 N M A E n , M S E Average  = 1 N ∑ n = 1 N M S E n , \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​,​
其中 M M M 为测试集中图像的数量, N N N 为类别的数量。 Q m ′ , Q m Q_{m}^{\prime},Q_{m} Qm′​,Qm​ 为第 m m m 幅图像中预测的目标数量和GT数量。

D、Comparisons With the State-of-The-Art

多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记
多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记

E、消融实验

多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记
多类别目标计数 Dilated-Scale-Aware Category-Attention ConvNet for Multi-Class Object Counting 论文笔记

五、结论

  本文提出了 DSACA 框架,能够在只依赖点标注的情况下同时实现最佳的多类别目标计数性能。设计了 DSAM 和 CAM 分别用于克服密度图之间的关联以及缓解多尺度的影响,实验表明效果很好。
写在后面
  2021年结束了,2022年,希望有更多的成果发表,早日毕业~
  祝大家新年快乐呀~

上一篇:【Python】多终端发送、订阅mqtt消息


下一篇:MySQL_查询用"关键字"