论文来自微软亚洲研究院,做细粒度分类。

论文下载:Look Closer to See Better:Recurrent Attention Convolutional Neural Network for Fine-Grained Image Recognition

知乎专栏计算机视觉一隅,文章(CVPR 2017) Look Closer to See Better:RA-CNN

Abstract

识别纹理细密的物体类别(比如鸟类)是很困难的,这是因为判别区域定位(discriminative region localization)和细粒度特征学习(fine-grained feature learning)是很具有挑战性的。现有方法主要都是单独地来解决这些挑战性问题,然而却忽略了区域检测(region detection)和细粒度特征学习(fine-grained feature learning)之间的相互关联性,而且它们可以互相强化。

本文中,提出了一个全新的循环注意力卷积神经网络(recurrent attention convolutional neural network——RA-CNN),用互相强化的方式对判别区域注意力(discriminative region attention)和基于区域的特征表征(region-based feature representation)进行递归学习。在每一尺度规模(scale)上进行的学习都包含一个分类子网络(classification sub-network)和一个注意力建议子网络(attention proposal sub-network——APN)。APN 从完整图像开始,通过把先期预测作为参考,由粗到细迭代地生成区域注意力(region attention),同时精调器尺度网络(finer scale network)以循环的方式从先前的尺度规格输入一个放大的注意区域(amplified attended region)。

RA-CNN 通过尺度内分类损失(intra-scale classification loss)和尺度间排序损失(inter-scale ranking loss)进行优化,以相互学习精准的区域注意力(region attention)和细粒度表征(fine-grained representation)。RA-CNN 并不需要边界框(bounding box)或边界部分的标注(part annotations),而且可以进行端到端的训练。

Introduction

识别细粒度物体这一类任务往往是极具挑战性的,这是因为一些纹理细密的物体种类只能被该领域的专家所识别出来。与一般的识别不同,细粒度图像识别(fine-grained image recognition)是应该能够进行局部定位(localizing),并且能在其从属(subordinate)类别中表征很小的视觉差异的,从而使各种应用受益,比如专家级的图像识别、图像标注等等。

图 1. 两种啄木鸟。我们可以从高度局部区域(highly local regions),比如黄色框里的头部,观察到非常不易察觉的视觉差异,这是难以在原始图像规格中进行学习的。然而,如果我们可以学着去把注意区域放大到一个精细的尺度,差异可能就会更加生动和显著。

如图1所示,精确的头部定位可以促进学习辨别头部特征,这进一步帮助精确定位后脑中存在的不同颜色。

提出的RA-CNN是一个叠加网络(stacked network),其输入为从全图像到多尺度的细粒度局部区域(fine-grained local regions)。在网络结构设计上主要包含3个scale子网络,每个scale子网络的网络结构都是一样的,只是网络参数不一样,在每个scale子网络中包含两种类型的网络:分类网络和APN网络。因此数据流是这样的:输入图像通过分类网络提取特征并进行分类,然后APN网络基于提取到的特征进行训练得到attention region信息,再将attention region剪裁(crop)出来并放大(zoom in),再作为第二个scale网络的输入,这样重复进行3次就能得到3个scale网络的输出结果,通过融合不同scale网络的结果能达到更好的效果。

Related Work

关于细粒度图像识别的研究沿着两个维度进行:
1. Discriminative Feature Learning
依赖于强大的卷积深层特征
2. Sophisticated Part Localization
使用无监督的方法来挖掘注意力区域
放大判别性的局部区域,以提高细粒度识别性能.

Approach

图 2. RA-CNN框架。

输入图像从上到下按粗糙的完整大小的图像到精炼后的区域注意力图像排列。不同的网络分类模块(蓝色部分)通过同一尺度的标注预测 Y(s) 和真实 Y∗之间的分类损失 Lcl 进行优化,注意力建议(红色部分)通过相邻尺度的 p (s) t 和 p (s+1) t 之间的成对排序损失 Lrank(pairwise ranking loss Lrank)进行优化。其中 p (s) t 和 p (s+1) t 表示预测在正确类别的概率,s 代表尺度。APN 是注意力建议网络,fc 代表全连接层,softmax 层通过 fc 层与类别条目(category entry)匹配,然后进行 softmax 操作。+代表「剪裁(crop)」和「放大(zoom in)」。

每个scale网络是有两个输出的multi-task结构:

1. 分类
p(X) = f(Wc* X)
Wc: (b1)或(b2)或(b3)网络的参数,也就是一些卷积层、池化层和激活层的集合,用来从输入图像中提取特征.
Wc* X: 就是最后提取到的特征.

f()函数: 就是fully-connected层和softmax层,用来将学习到的特征映射成类别概率,也就是p(X).

2. 区域检测
[tx, ty, tl] = g(Wc* X)
这里假设检测出来的区域都是正方形,即tx和ty表示区域的中心点坐标,tl表示正方形区域边长的一半.

g()函数: 也就是APN网络,可以用两个fully-connected层实现,其中最后一个fully-connected层的输出channel是3,分别对应tx、ty、tl。

Loss:

a. intra-scale classification loss

b. inter-scale pairwise ranking loss

一部分是Lcls,也就是classification loss.

Y(s)表示预测的类别概率,Y*表示真实类别.

pairwise ranking loss:

pt(s): prediction probability on the correct category labels t.

从Lrank损失函数可以看出,当更后面的scale网络的pt大于相邻的前面的scale网络的pt时,损失较小.

通俗讲模型的训练目标是希望更后面的scale网络的预测更准.

于是这样的网络就可以得到输入图像X的不同scale特征,用{F1, F2, ... FN}表示.
N: scale的数量
Fi: 第i个scale的分类子网络全连接层输出,文中称Fi为descriptor.
融合不同scale网络的输出结果:

把每个分类子网络的最后的全连接层堆叠起来,然后将它们连接到一个全连接层,随后通过softmax层,进行分类.

Training strategy:

a. 初始化分类子网络: 用预训练的VGG-Net初始化分类子网络中卷积层和全连接层的参数;
b. 初始化APN: 查找分类子网络的最后一层卷积层(conv5_4 in VGG-19)具有最高响应值(highest response)的区域,用该区域的中心点坐标和原图边长的一半来初始化(tx,ty,tl);

c. 固定APN的参数,训练分类子网络直至Lcls收敛; 随后固定分类子网络的参数,训练APN网络直至Lrank收敛.这个训练过程是迭代交替进行的,直到两个网络的损失收敛.

Experiments

Datasets:

Caltech-UCSD Birds (CUB-200-2011)
Stanford Dogs

Stanford Cars

Baselines:

采用bounding box/part annotation标注的监督式训练和不采用bounding box标注的无监督式训练这两种不同的attention localization算法。
输入图像尺寸方面:

Input images (at scale 1) and attended regions (at scale 2,3) are resized to 448×448 and 224×224 pixels respectively in training, due to the smaller object size in the coarse scale.

Conclusion

Propose a recurrent attention convolutional neural network(RA-CNN) for fine-grained recognition, which recursively learns discriminative region attention and region-based feature representation at multiple scales.

RA-CNN does not need bounding box/part annotations for training and can be trained end-to-end.

In the future:
1. How to simultaneously preserve global image structure and model local visual cues, to keep improving the performance at finer scales;
2. How to integrate multiple region attention to model more complex fine-grained categories.

论文阅读笔记 | (CVPR 2017 Oral) Look Closer to See Better:RA-CNN相关推荐

  1. 论文阅读笔记 (CVPR 2019) Gait Recognition via Disentangled Representation Learning

    一.论文摘要   步态是个体的行走方式,是最重要的生物特征识别手段之一.现有的步态识别方法大多以轮廓或关节体模型为步态特征.这些方法在处理诸如服装.携带和视角等混杂变量时会导致识别性能下降.为了解决这 ...

  2. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

  3. PointConv论文阅读笔记

    PointConv论文阅读笔记 Abstract 本文发表于CVPR. 其主要内容正如标题,是提出了一个对点云进行卷积的Module,称为PointConv.由于点云的无序性和不规则性,因此应用卷积比 ...

  4. 2019 sample-free(样本不平衡)目标检测论文阅读笔记

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...

  5. ResNet 论文阅读笔记

    ResNet 论文阅读笔记 #机器学习/深度学习 文章介绍 论文地址:https://arxiv.org/pdf/1512.03385.pdf 原文题目:Deep Residual Learning ...

  6. DSSD : Deconvolutional Single Shot Detector论文阅读笔记

    文章目录 DSSD : Deconvolutional Single Shot Detector论文阅读笔记2017 Abstract 1. Introduction 2. Related Work ...

  7. [论文阅读笔记15]Recognizing Complex Entity Mentions:A Review and Future Directions

    一,题目 Recognizing Complex Entity Mentions:A Review and Future Directions 识别复杂实体mentions:回顾与未来方向 Dai X ...

  8. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

    <Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...

  9. 论文阅读笔记《USAC: A Universal Framework for Random Sample Consensus》

      本文总结了RANSAC算法的流程与存在的问题,整理了近几年基于RANSAC提出的改进算法,并整合各个算法的优势,提出一个统一的RANSAC算法框架.因此本文也可以看做是一片关于RANSAC算法的论 ...

最新文章

  1. 【原】iOS学习之事件处理的原理
  2. The 30 CSS Selectors you Must Memorize
  3. 我在芝加哥大学经济学系的博士生涯
  4. Activity 横竖屏切换
  5. 概率论 方差公式_【考研数学】概率论与数理统计
  6. mysql5.6系列使用记录信息
  7. 区间dp讲解之石子合并问题 区间dp的分析方法
  8. ZigBee串口发送字符串函数
  9. 射频识别(RFID)
  10. Python图形界面编程
  11. Vue.use 写多个_做好4件事,周记不难写
  12. 【imessage群发苹果推信】[iMessageSuspic](Apple推送服务)使用信息推送服务
  13. python 怎么建立文件夹_如何用PYTHON新建文件夹
  14. Cesium 获取当前屏幕范围内的中心点以及相机姿态
  15. 转:关于正太分布和多维正态分布的理解(知乎)
  16. 基于Redis的消息中心缓存搭建
  17. Linux下查看内存泄露的命令
  18. 【电子设计大赛】2021 年全国大学生电子设计竞赛仪器设备和主要元器件及器材清单
  19. 【剑指Offer打卡】48. 最长不含重复字符的子字符串
  20. 重启tomcat报错 Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”

热门文章

  1. c++语言中break的作用,c++ 中break的用法介绍
  2. 第十五章 文正学院成绩录入系统
  3. HTTP协议详解由浅入深看HTTP
  4. 12枚硬币中取1枚假币的问题
  5. 2022生物降解塑料展|广州可降解塑料展
  6. rabbitMq用guest登录失败解决办法
  7. 全国各大城市的地铁数据、json格式
  8. linux服务器中病毒后的清除处理
  9. redis清空所有数据 php
  10. 解决jrebe-JVMTI[FATAL] Couldnt write to C:\Users\启动报错