细粒度图像分类论文研读-2016

Compact Bilinear Pooling

Abstract

双线性模型很成功,但是双线性特征是高维的。因此,本文提出了两种紧双线性表示,具有与双线性表示相同的辨别能力,但只有几千维。

本文提出的紧凑的表示允许分类错误的反向传播。

Introduction

视觉特征的编码和池化是语义图像分析方法的重要组成部分。

双线性结构是一种编码和池化机制。

本文提出的方法由一个新的双线性池化的核化观点所驱动,并且允许反向传播的端到端学习。

本文提出的紧凑的双线性方法依赖于核函数的低维特征映射的存在性。本文证明了双线性特征和多项式核关系密切,并在先人工作的基础上提出了压缩双线性特征的新方法。

本文的贡献在于三方面:

  1. 压缩维度;
  2. 验证反向传播;
  3. 提出双线性池化的核化视角。

请添加图片描述

Compact bilinear models

双线性模型定义为:
请添加图片描述

B是一个cxc的矩阵,但是为了方便分析,将其视为一个长度为 c 2 c^2 c2的向量。

A kernelized view of bilinear pooling

一般对图像表征采用支持向量机来或者逻辑回归进行分类,他们都可以视为线性核机器。
请添加图片描述

双线性池使得线性分类器具备二阶核向量机辨别能力。

Compact bilinear pooling

如果我们能找到一些低维度的映射函数 ϕ ( x ) ∈ R d , d < < c 2 \phi(x)\in R^d,d<<c^2 ϕ(x)Rd,d<<c2,满足 < ϕ ( x ) , ϕ ( y ) > ≈ k ( x , y ) <\phi(x),\phi(y)>\approx k(x,y) <ϕ(x),ϕ(y)>≈k(x,y),之后,我们就能近似上图中的内积:

请添加图片描述
C属于紧凑双线性特征。

本文调查了两种近似策略,分别是Random Maclaurin和Tensor Sketch。
请添加图片描述

RM是一种早期的方法,用来作为一种低维显式特征映射来近似多项式核。entry在矩阵中的意思是元素。

此处给的算法与原文还是有区别的,这里取了N=2。

Tensor Sketch Projection算法在此不多赘述,明白是一种近似即可。

Some properties of compact bilinear pooling

请添加图片描述

上表展示了bilinear pooling和compact bilinear feature的一些特征。

SPDA-CNN:Unifying Semantic Part Detection and Abstraction for Fine-grianed Recognition

Abstract

大多数卷积神经网络缺乏对对象的语义部分进行建模的中间层。这限制了基于CNN的方法在识别任务中进行检测和利用小的语义局部的潜力。

在本文中,我们提出了一个新的CNN架构,其汇集了语义局部检测与抽象(SPDA)的能力。

本文提出的网络包含两个模块:

  1. detection:有一个自上而下的提议方法来生成小的语义局部候选;
  2. recognition:提取局部特征并且组合他们来进行识别。

Introduction

目前大多数的细粒度识别方法都包含局部定位。然而他们并没有建模或者利用小的富含语义的局部

比如说,Part-based RCNN、Deep LAC都只定位了头部以及身体,更小的翅膀或者尾巴则不再关注。

另外,对于小的区域,比如头部,效果也不好。

具体来说,传统的CNN模型缺乏中间层来对对象的语义局部进行建模,为了引入这样的层来促进局部的特征提取,很多工作单独对零件进行获取再分别提取特征最后连接成一个长的向量。

这样的框架使得训练和测试成为一个多阶段的过程,并且使得在独立的局部网络之间共享卷积滤波器变得困难。此外,这样的框架使得模型难以了解不同部分的关系

Approach

Part Detection Sub-network

Geometrically-constrained Top-down Region Proposals for Small Semantic Parts

传统的区域提议方案通常关注自下而上的图像线索而忽略了几何约束,因此无法为小的语义部分生成候选区域。

本文提出了一种类似于kNN的几何约束局部提议算法,以此来生成一些候选局部区域。

本文的方法是自上而下的,首先计算出物体的bboxes中的方向梯度直方图来表示他大概的形状。然后基于HOG特征,从训练数据集中检索给定图像的k个近邻。根据给定测试的图像大小,按比例缩放每个邻居的局部区域。

B = [ b 11 , . . , b 1 m , . . . , b k 1 , . . . , b k m ] B=[b_{11},..,b_{1m},...,b_{k1},...,b_{km}] B=[b11,..,b1m,...,bk1,...,bkm]是所有k个近邻的局部bboxes,其中m是对象中的局部个数。

这些被转换的局部继承了来自邻居的先验信息,其中包含了有规则的局部注释与几何约束。

本文调查了两种先验:

  1. 强先验:从近邻继承局部类别标签和局部几何约束。有了这种先验,我们为使用近邻的局部位置为给定图像的第i个局部生成候选框 [ b 1 i , . . . , b k i ] [b_{1i},...,b_{ki}] [b1i,...,bki]。因此每一部分的候选数量是k,总的候选数量是km。
  2. 弱先验:不考虑局部类别标签,每个part的候选区域都是整个B矩阵。
Fast RCNN based Part Detection

给出了由KNN得到的局部候选,检测网络采用Fast RCNN对每一个候选局部区域进行回归并且指定一个局部标签。

每个对象有m个局部标签,因此DET-NET有m+1种输出,包含了m个局部和一个背景标签。

输出的每一路都包含一个回归框b和一个置信度分数。

我们对所有局部候选区域进行分类,并使用简单的后处理策略对结果进行过滤。

对于每个局部,只有置信度最高的局部bbox被选择。

Part Abstraction and Classification

CLS-NET共分为三个部分:语义局部RoI池化层、基于局部的全连接层(pfc)以及一个拼接全连接层(cfc)。

语义局部RoI池化层致力于仅仅从检测子网络监测到的语义局部中提取特征。

pfc只允许同一局部内的连接,目的是抽象出中间层的特定局部的特征。

cfc层用于组合所有局部的pfc层,以便在一个网络中实现所有局部的端到端训练。

Semantic Part RoI Pooling Layer

盲目的对图像进行池化没有意义,因此,我们提出的RoI池化只对语义部分进行操作。

提议层有两个操作,池化和重组。首先,基于来自检测的结果或者GT,RoI Pooling进行操作:

  1. 每个局部被分割成HxW个子窗然后对每个子窗进行最大池化;
  2. 不属于语义部分的特征被丢弃。

来自不同部分的汇集的特征以预定义的顺序重新组织。

Part-based Fully Connected Layer

pfc层的目的是为了建模中间层次的局部信息。

与全连接层相比,其减少了不同局部节点的冗余交互。其弥补了底层图像特征和高层整体信息之间的鸿沟。

作者是第一个提出在模型结构中加入局部的FC层实现对中级特征建模的。

Concatenation Fully Connected Layer

本文使用串联全连接层来构建一个集成的网络,处理不同部分以实现细粒度分类。这允许分类误差传播到所有部分。

这一模块的另一好处是能够学习不同部分对识别任务的重要性。

早期的工作是通过CNN得到局部特征之后串联起来直接送给SVM。这边用FC代替SVM,一方面是可以进行端到端的学习,另一方面也解决了权重问题。

Unifying Two Sub-network

本文为了统一两个子网络,使用交替优化,并共享卷积层。

其三步训练法如下:

  1. 针对相应任务分别训练检测子网络和分类子网络(为了训练CLS网络,用了GT);
  2. 使用CLS的前n个conv层来替换DET中相应层,然后微调DET只能够所有其他独特的层;
  3. 使用DET的部分检测微调CLS中除了共享Conv层之外的所有其他层。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值