DeepLAC论文笔记

DeepLAC: Deep Localization, Alignment and Classification for Fine-grained Recognition

CUB accuracy: 80.26%

主要贡献是提出了一种用于反向传播链的阀连杆函数(VLF),并形成了深度定位、对齐和分类(LAC)系统,在训练LAC系统时,VLF可以自适应地折中分类和对齐误差,反过来可以有利于定位。

1 Introduction

  虽然之前大量研究表明,CNN特征对缩放和旋转变化相当稳健,但是作者认为有必要直接捕获这些类型的变化,以提高识别精度。

  在本文章提出之时的现有解决方案都是独立并且连续地执行定位、对齐和分类过程,下图就使用实线箭头说明了这一过程,其中各种零件被定位,根据模板进行对齐,然后输入分类神经网络。显然,定位过程中出现的任何错误都可能会影响对齐和分类。

20221012105721

图1:从定位到模板对齐的单向过程使每个模块都依赖于前一个模块的结果。相反,虚线箭头突出显示的反向传播可以根据分类和对齐结果优化定位。它形成了一个双向细化过程。

  这篇文章的主要重点是提出一种集成在对齐子网中用以在我们的深层LAC框架中连接定位模块和分类模块的阀门连接函数(VLF),因为我们在单个网络中涉及这些任务,所以可以使用正向传播和反向传播来求解程序。大致结构如图2所示:

20221012110634

图2:在VLF的支持下,对齐子网输出姿势对齐的部件图像,用于FP阶段的分类;而分类和对齐错误也可以在BP阶段传播回定位,此时VLF应该是一个包含更新定位子网所需参数的函数

  本文的其他贡献包括提出了新的定位和对齐子网。如图2所示,定位与部件位置的回归有关。它不同于一般的物体检测,它利用了细粒度物体(如鸟)和部分区域(如鸟头)之间相对稳定的关系,而这些关系对于一般物体来说是无法保留的。在对齐方面,则是引入了多模板选择来有效地处理部件的姿势变化。

2 The Approach

  主网络由上述三项任务的三个子网络组成—定位子网络提供部件位置;对齐子网络执行模板对齐,以偏移定位部件的平移、缩放和旋转;姿势对齐部件被送入分类子网,一般是一些经典的分类器,如SVM。

  首先描述根据CNN模型实现的定位和分类子网络,接着详细介绍实现了前向传播(FP)和反向传播(BP)阶段的对齐子网络。

2.1 定位子网络

  给定一个用于细粒度识别的输入图像,定位子网络输出输出左上角和右下角边界框角的常用坐标,表示为 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)。在训练阶段,我们回归部件区域的边界框。使用部件注释(part annotation)生成Ground truth边界框。我们统一输入图像的分辨率(将图像裁剪到同样尺寸)并构造一个定位子网络,它由5个卷积层和3个全连接层组成。最后一个全连接层是一个用于回归边界框角点 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)的四路输出。

  输出 L = ( x 1 , y 1 , x 2 , y 2 ) L = (x_1,y_1,x_2,y_2) L=(x1,y1,x2,y2)时,我们的定位子网络就表示为:
L = f l ( W l ; I ) , (1) L = f_l(W_l;I), \tag{1} L=fl(Wl;I),(1)
其中 W l W_l Wl是权重参数集, I I I是输入图像。在训练期间,使用到部件的ground truth locations L g t L^{gt} Lgt,位置目标函数由以下公式给出:
E l ( W l ; I , L g t ) = 1 2 ∣ ∣ f l ( W l ; I ) − L g t ∣ ∣ 2 . (2) E_l(W_l;I,L^{gt}) = {{{1}\over{2}}||f_l(W_l;I)-L^{gt}||^2}.\tag{2} El(Wl;I,Lgt)=21∣∣fl(Wl;I)Lgt2.(2)
W l W_l Wl上最小化它,该框架在部件位置回归方面工作良好,因为对象和部件区域的外观在细粒度任务中通常是稳定的。因此可以合理预测部件的位置。图3显示了定位鸟头和鸟身的例子;

20221012124637

图3.定位示例:(a)鸟头,(b)鸟身

2.2 分类子网络

  分类子网络是图2所示的网络的最后一个模块。我们的分类以姿势对齐的部件图像作为输入,表示为 ϕ ∗ \phi^* ϕ,并且生成类别标签。该分类CNN表示为:
y = f c ( W c ; ϕ ∗ ) , (3) y = f_c(W_c;\phi^*), \tag{3} y=fc(Wc;ϕ),(3)
其中 W c W_c Wc是此子网中设置的权重参数。输出是类别标签 y y y

  在训练期间,提供类别ground truth 标签 y g t y^{gt} ygt。公式(3)中预测的类别标签 y y y应该与 y g t y^{gt} ygt一致。我们对y施加惩罚,表示为 E c ( W c ; ϕ ∗ , y g t ) E_c(W_c;\phi^*,y^{gt}) Ec(Wc;ϕ,ygt)。在分类中,遵循AlexNet中的方法,使用softmax回归损失函数来惩罚分类错误。

  我们在该系统中主要的贡献是构建对齐子网,下面将详细介绍该子网以及公式(3)中 ϕ ∗ \phi^* ϕ的公式。

2.3 对齐子网

  对齐子网络从定位模块接收部件位置 L L L(即边界框),按照Mutual-information-based registration of medical images: a survey.Medical Imaging, 2003.中的方法执行模板对齐,并将姿势对齐的部件图像提供给分类子网,如图2所示。我们的对齐子网络偏移平移、缩放和旋转,以生成位置对齐的部件区域,这对准确分类很重要。除了姿势对齐外,该子网络在桥接整个LAC模型的后向传播(BP)阶段方面起着关键作用,这有助于利用分类和对齐结果来优化定位。

  下文中将详细介绍对齐部分,然后根据LAC模型的FP和BP阶段详细说明VLF。

2.3.1 模板对齐

  我们校正定位的部件区域,使其姿势和模板接近。为了评估姿势的相似性,我们定义了部件区域 R i R_i Ri R j R_j Rj之间的函数如下:
S [ R i , R j ] = ∑ m = 0 255 ∑ n = 0 255 P i j ( m , n ) l o g ( p i j ( m , n ) p i ( m ) p j ( n ) ) , (4) S[R_i,R_j] = {{{\sum_{m=0}^{255}}{\sum_{n=0}^{255}}}{{P_{ij}(m,n)}{{log(}{{p_{ij}(m,n)}\over{p_i(m)p_j(n)}})}}},\tag{4} S[Ri,Rj]=m=0255n=0255Pij(m,n)log(pi(m)pj(n)pij(m,n)),(4)
其中 p i , p j ∈ R c p_i,p_j \in \mathbb R^c pi,pjRc分别表示等尺寸图像 R i R_i Ri R j R_j Rj的灰度值分布。 p i j ∈ R 256 × 256 p_{ij} \in \mathbb R^{256 \times 256} pijR256×256表示联合分布。这个姿势相似性函数是基于互信息(mutual information)的。较大的值表示 R i R_i Ri R j R_j Rj之间的姿势相似。

  为了抵抗较大的姿势变化,我们生成了一个用于对齐的模板集。对于 N N N个训练部件图像中的每一对,我们使用公式(4)计算其相似度,最后形成一个相似度矩阵 S t ∈ R N × N S_t \in \mathbb R^{N \times N} StRN×N。然后使用On spectral clustering:Analysis and an algorithm. NIPS, 2002中的光谱聚类方法处理 S t S_t St,将 N N N个部件图像分割为 K K K个聚类。从每个簇中,我们选择离簇中心最近的部件区域作为模板来表示该集合。为了包含镜像姿势,我们还反转每个模板,最后,我们得到了一个模板集 T \mathfrak T T

20221012233220

图4:对齐子网络选择最佳姿势对齐部件进行分类

  图4展示了对齐管道。给定一个输入图像 I I I,由定位子网络生成的回归部件边界框 L L L和边界框的中心点 c r ( L ) = ( x 1 + x 2 2 , y 1 + y 2 2 ) c^r(L) = ({{x_1+x_2}\over{2}},{{y_1+y_2}\over{2}}) cr(L)=(2x1+x2,2y1+y2),我们假设姿势对齐部件区域的中心位置为 c c c,旋转 θ \theta θ度,并以因子 α \alpha α进行缩放。为了将它与模板 t t t进行比较,我们提取区域,表示为 ϕ ( c , θ , α ; I ) \phi(c,\theta,\alpha;I) ϕ(c,θ,α;I)。使用上述相似度函数,通过找到最大化以下公式的 c , θ , α , t c,\theta,\alpha,t c,θ,α,t完成对齐:
E a ( c , θ , α , t ; I , L ) = S [ ϕ ( c , θ , α ; I ) , t ] + λ exp ⁡ ( − 1 2 ∥ c − c r ( L ) ∥ 2 ) c ∈ [ x 1 , x 2 ] × [ y 1 , y 2 ] , θ ∈ Θ , α ∈ A , t ∈ T (5) \begin{array}{l} E_a(\mathbf{c}, \theta, \alpha, \mathbf{t} ; \mathbf{I}, \mathbf{L})= \\ \quad S[\phi(\mathbf{c}, \theta, \alpha ; \mathbf{I}), \mathbf{t}]+\lambda \exp \left(-\frac{1}{2}\left\|\mathbf{c}-\mathbf{c}^r(\mathbf{L})\right\|^2\right) \\ \mathbf{c} \in\left[x_1, x_2\right] \times\left[y_1, y_2\right], \theta \in \Theta, \alpha \in \mathfrak{A}, \mathbf{t} \in \mathfrak{T} \end{array} \tag{5} Ea(c,θ,α,t;I,L)=S[ϕ(c,θ,α;I),t]+λexp(21ccr(L)2)c[x1,x2]×[y1,y2],θΘ,αA,tT(5)
其中 λ \lambda λ是一个常数,使用公式(5)中的第二项,我们根据零件的回归中心 c r ( L ) c^r(L) cr(L)调整对齐中心 c c c。这有助于抵抗不完全回归中心和在零件区域内定位对齐中心,能够使得对齐结果更加可靠。 Θ \Theta Θ等三个符号定义了参数的范围。等式5计算出较大值表示对齐可靠。方程5的最大化是通过搜索量化参数空间来实现的。

2.3.2 阀门链接函数(VLF)

  我们的VLF定义了对齐子网络的输出,这对于连接子网络并使其在训练和测试中作为一个整体工作非常重要,它表示为:
P ( L ; I , L f ) = E a ( c ∗ , θ ∗ , α ∗ , t ∗ ; I , L ) E a ( c ∗ , θ ∗ , α ∗ , t ∗ ; I , L f ) ϕ ( c ∗ , θ ∗ , α ∗ ; I ) (6) P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right)=\frac{E_a\left(\mathbf{c}^*, \theta^*, \alpha^*, \mathbf{t}^* ; \mathbf{I}, \mathbf{L}\right)}{E_a\left(\mathbf{c}^*, \theta^*, \alpha^*, \mathbf{t}^* ; \mathbf{I}, \mathbf{L}_f\right)} \phi\left(\mathbf{c}^*, \theta^*, \alpha^* ; \mathbf{I}\right) \tag{6} P(L;I,Lf)=Ea(c,θ,α,t;I,Lf)Ea(c,θ,α,t;I,L)ϕ(c,θ,α;I)(6)
其中,
{ c ∗ , θ ∗ , α ∗ , t ∗ } = arg ⁡ max ⁡ c , θ , α , t E a ( c , θ , α , t ; I , L f ) ,  s.t.  c ∈ [ x 1 , x 2 ] × [ y 1 , y 2 ] , θ ∈ Θ , α ∈ A , t ∈ T (7) \begin{aligned} &\quad\left\{\mathbf{c}^*, \theta^*, \alpha^*, \mathbf{t}^*\right\}=\underset{\mathbf{c}, \theta, \alpha, \mathbf{t}}{\arg \max } E_a\left(\mathbf{c}, \theta, \alpha, \mathbf{t} ; \mathbf{I}, \mathbf{L}_f\right), \\ &\text { s.t. } \mathbf{c} \in\left[x_1, x_2\right] \times\left[y_1, y_2\right], \theta \in \Theta, \alpha \in \mathfrak{A}, \mathbf{t} \in \mathfrak{T} \end{aligned} \tag{7} {c,θ,α,t}=c,θ,α,targmaxEa(c,θ,α,t;I,Lf), s.t. c[x1,x2]×[y1,y2],θΘ,αA,tT(7)
这里 ϕ ( c ∗ , θ ∗ , α ∗ ; I ) \phi (c^*,\theta^*,\alpha^*;I) ϕ(c,θ,α;I)是姿势对齐部分, L f L_f Lf是当前正向传播(FP)阶段定位子网络的输出。下文会讨论阀门函数在FP和BP中的作用。

FP阶段

  在神经网络的前向传播阶段,对齐子网络接受部件位置 L f L_f Lf,并将其对齐为 P ( L f ; I , L f ) P(L_f;I,L_f) P(Lf;I,Lf)以便进一步分类,输出表示为:
P ( L f ; I , L f ) = ϕ ( c ∗ , θ ∗ , α ∗ ; I ) , (8) P(L_f;I,L_f) = \phi(c^*,\theta^*,\alpha^*;I), \tag{8} P(Lf;I,Lf)=ϕ(c,θ,α;I),(8)
这正是姿势对齐的部分。

BP阶段

  在BP阶段,对齐子网络 P ( L f ; I , L f ) P(L_f;I,L_f) P(Lf;I,Lf)的输出成为 L L L的一个函数。因此,LAC的目标函数表示为:
J ( W c , W l ; I , L g t , y g t ) = E c ( W c ; P ( L ; I , L f ) , y g t ) + E l ( W l ; I , L g t ) (9) \begin{aligned} &J\left(\mathbf{W}_c, \mathbf{W}_l ; \mathbf{I}, \mathbf{L}^{g t}, y^{g t}\right)= \\ &\quad E_c\left(\mathbf{W}_c ; P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right), y^{g t}\right)+E_l\left(\mathbf{W}_l ; \mathbf{I}, \mathbf{L}^{g t}\right) \end{aligned} \tag{9} J(Wc,Wl;I,Lgt,ygt)=Ec(Wc;P(L;I,Lf),ygt)+El(Wl;I,Lgt)(9)
其中 W c W_c Wc W l W_l Wl是待确定的参数。 E c E_c Ec E l E_l El是在另外两个子网络中定义的。我们最小化这个目标函数,以便在训练期间更新定位和分类子网络。

  为了更新分类子网络,我们计算目标函数 J J J相对于 W c W_c Wc的梯度,它与AlexNet中介绍的相同。

  为了更新定位子网络,计算与 W l W_l Wl相同的梯度,写为:
∇ W l J = ∂ E l ∂ W l + ∂ E c ∂ W l = ∂ E l ∂ W l + ∂ E c ∂ P ( L ; I , L f ) ∂ P ( L ; I , L f ) ∂ L ∂ L ∂ W l (10) \begin{aligned} \nabla_{\mathbf{W}_l} J &=\frac{\partial E_l}{\partial \mathbf{W}_l}+\frac{\partial E_c}{\partial \mathbf{W}_l} \\ &=\frac{\partial E_l}{\partial \mathbf{W}_l}+\frac{\partial E_c}{\partial P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right)} \frac{\partial P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right)}{\partial \mathbf{L}} \frac{\partial \mathbf{L}}{\partial \mathbf{W}_l} \end{aligned} \tag{10} WlJ=WlEl+WlEc=WlEl+P(L;I,Lf)EcLP(L;I,Lf)WlL(10)
其中前一项 ∂ E l ∂ W l {\partial E_l}\over{\partial W_l} WlEl表示定位中的BP阶段。

分析

  在公式(10)的第二项中, ∂ E c ∂ P ( L ; I , L f ) {\partial E_c}\over{\partial P(L;I,L_f)} P(L;I,Lf)Ec ∂ L ∂ W l {\partial L}\over{\partial W_l} WlL分别在分类和定位子网络的BP阶段传递有用信息。没有阀门连接函数部分 ∂ P ( L ; I , L f ) ∂ L {\partial P(L;I,L_f)}\over{\partial L} LP(L;I,Lf),分类子网到定位子网的信息传播将被阻塞。

  我们进一步表明,VLF提供了从分类到其他子网络的信息控制。在BP阶段, P ( L ; I , L f ) P(L;I,L_f) P(L;I,Lf)可以重写为:
P ( L ; I , L f ) = 1 e E a ( c ∗ , θ ∗ , α ∗ , t ∗ ; I , L ) ϕ ( c ∗ , θ ∗ , α ∗ ; I ) (11) P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right)=\frac{1}{e} E_a\left(\mathbf{c}^*, \theta^*, \alpha^*, \mathbf{t}^* ; \mathbf{I}, \mathbf{L}\right) \phi\left(\mathbf{c}^*, \theta^*, \alpha^* ; \mathbf{I}\right) \tag{11} P(L;I,Lf)=e1Ea(c,θ,α,t;I,L)ϕ(c,θ,α;I)(11)
其中 e = E a ( c ∗ , θ ∗ , α ∗ , t ∗ ; I , L f ) e = E_a(c^*,\theta^*,\alpha^*,t^*;I,L_f) e=Ea(c,θ,α,t;I,Lf)是在FP阶段生成的对齐能量(alignment energy)。随着它成为反向传播的一个常数, ∂ P ( L ; I , L f ) ∂ L {\partial P(L;I,L_f)}\over{\partial L} LP(L;I,Lf)可以表示为:
∂ P ( L ; I , L f ) ∂ L = 1 e ϕ ( c ∗ , θ ∗ , α ∗ ; I ) ∂ E a ∂ L (12) \frac{\partial P\left(\mathbf{L} ; \mathbf{I}, \mathbf{L}_f\right)}{\partial \mathbf{L}}=\frac{1}{e} \phi\left(\mathbf{c}^*, \theta^*, \alpha^* ; \mathbf{I}\right) \frac{\partial E_a}{\partial \mathbf{L}} \tag{12} LP(L;I,Lf)=e1ϕ(c,θ,α;I)LEa(12)
∂ E a ∂ L {\partial E_a}\over{\partial L} LEa这一项可以扩展为:
∂ E a ∂ L = − λ 2 exp ⁡ ( − 1 2 ∥ c − c r ( L ) ∥ ) ∂ ∥ c − c r ( L ) ∥ 2 ∂ L (13) \frac{\partial E_a}{\partial \mathbf{L}}=-\frac{\lambda}{2} \exp \left(-\frac{1}{2}\left\|\mathbf{c}-\mathbf{c}^r(\mathbf{L})\right\|\right) \frac{\partial\left\|\mathbf{c}-\mathbf{c}^r(\mathbf{L})\right\|^2}{\partial \mathbf{L}} \tag{13} LEa=2λexp(21ccr(L))Lccr(L)2(13)
其中 c = ( c x , c y ) c = (c_x,c_y) c=(cx,cy)以及
∂ ∥ c − c r ( L ) ∥ 2 ∂ L = ( x 1 + x 2 2 − c x , y 1 + y 2 2 − c y , x 1 + x 2 2 − c x , y 1 + y 2 2 − c y ) . (14) \begin{aligned} \frac{\partial\left\|\mathbf{c}-\mathbf{c}^r(\mathbf{L})\right\|^2}{\partial \mathbf{L}}=&\left(\frac{x_1+x_2}{2}-c_x, \frac{y_1+y_2}{2}-c_y,\right.\\ &\left.\frac{x_1+x_2}{2}-c_x, \frac{y_1+y_2}{2}-c_y\right) . \end{aligned} \tag{14} Lccr(L)2=(2x1+x2cx,2y1+y2cy,2x1+x2cx,2y1+y2cy).(14)
这里,因子 1 e 1\over e e1可以视为分类网络的阀门控制影响。如同2.3.1中所述,较大的对齐分数 e e e对应于FP阶段更好的对齐效果。在BP阶段, 1 e 1\over e e1用于重新加权分类中的BP误差 ∂ E c ∂ P ( L ; I , L f ) {\partial E_c}\over{\partial P(L;I,L_f)} P(L;I,Lf)Ec。它在分类和对齐错误中起到折衷作用(compromise)。

  在这种情况下,较大的 e e e意味着BP阶段的良好对齐,对于较小的 1 e 1\over e e1,来自分类子网络的信息会自动减少。相反,如果 e e e较小,则当前对齐的可靠性会降低。因此,较大的 1 e 1\over e e1会自动引入更多的分类信息,以指导 W l W_l Wl进行更新。简而言之,我们可以将 1 e 1\over e e1理解为BP阶段的动态学习速率。
  在我们的VLF连接分类和对齐中使用这种自动调整机制,可以在BP阶段细化定位。我们在实验中验证了该设计的强大性

3 实验

  在实验过程中,我们修改了Caffe平台,用于CNN搭建。鸟的头部和身体被认为是语义部分。我们分别为它们训练了两个深度LAC。所有CNN模型都使用预处理的ImageNet模型进行微调。提取CNN分类模型的第6层(即两个部分模型+一个整体图像模型),形成4096×3D特征。然后,我们遵循流行的CNN-SVM方案,根据我们的CNN特征训练SVM分类器。

  每个部分模型的主要参数设置如下。1) 在定位子网络中,所有输入图像的大小都调整为227×227。我们用4路层替换原来的1000路全连接层,以回归部件边界框。预先训练的ImageNet模型用于初始化定位子网络。2) 对于对齐,在模板选择中,使用了Caltech UCSD Bird-200-2011训练集中头部或身体的所有5994个零件注释。将5994个部分裁剪并调整为227×227。使用光谱聚类,我们将5994部分拆分为30个簇。从每个簇中,我们选择离簇中心最近的部件区域及其镜像版本作为两个模板。该过程最终形成60个模板 T \mathfrak{T} T

  模板对齐时,旋转角度 θ \theta θ是一个整数,其范围为 Θ = [ − 60 , 60 ] \Theta = [-60,60] Θ=[60,60]。同时,我们在 A = { 2.5 , 3 , 3.5 , 4 , 4.5 } \mathfrak A = \{2.5,3,3.5,4,4.5\} A={2.5,3,3.5,4,4.5}内搜索尺度 α \alpha α。对齐中的另一个可控参数是公式(5)中的 λ \lambda λ。根据经验,我们将它设置为0.01.最后,分类子网络获取大小为227$\times$227的图像。最后一个全连接层是200路一层,因为这个数据集包含200个类别。同样,预先训练的ImageNet模型用于初始化权重参数。

总体比较

  比较我们与其他先进水平的最终分类精度比较如表1所示。所有结果都是在训练和测试中给出整只鸟的边界框的设置下完成的。在我们的系统中,我们将每个图像输入到两个经过训练的网络中,以提取头部和身体的特征。表1显示,使用头部和身体的特征可以达到72.00%和52.65%的精度。我们将这两个特征向量连接起来,形成一个组合表示。准确率为78.12%。最后,我们使用预先训练的模型,根据整个图像调整CNN模型。第6层被提取出来用于训练SVM分类器,获得了65.00%的准确率。在连接头部、身体和整个图像的特征之后,我们的准确率提高到80.26%。相比之下,Zhang等人的方法还考虑了相同的头部和身体部位,并结合了整个图像的CNN特征。我们认为,我们的精度提高主要是由于VLF启用的LAC的具有可靠的定位和对齐效果。

20221012222425

表1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值