论文笔记之:Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grained Recognition

简介: Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grained Recognition     细粒度的识别(Fine-grained recognition)的挑战性主要来自于 类内差异(inter-class differences)在细粒度类别中通常是局部的,细微的;类间差异(intra-class differences)由于姿态的变换而导致很大。

 

Fully Convolutional Attention Localization Networks:

Efficient Attention Localization for Fine-Grained Recognition

 

  细粒度的识别(Fine-grained recognition)的挑战性主要来自于 类内差异(inter-class differences)在细粒度类别中通常是局部的,细微的;类间差异(intra-class differences)由于姿态的变换而导致很大。为了从类间变化区分他们,放大到具有高度判别性的局部区域是非常重要的。本文提出了一种基于强化学习的全卷积注意力局部网络来自适应的选择多任务驱动的视觉注意力区域 (In this work, we introduce a reinforcement learning-based fully convolutional attention localization network to adaptively select multiple task-driven visual attention regions.) 作者的实验表明将相关区域放大处理,可以得到更好的结果,这一点就相当于我们人类看东西的时候,当全局看的不是很仔细的时候,就需要放大镜来看,从局部得到所需要的信息,从而做出进一步的判断。本文在三个数据集上做了实验,分别是:斯坦福dog, cars, CUB-200-2011。

 

  前人的工作大多是使用手工设计的 part 来进行 fine-grained recognition。依赖于手工定义的part有几个缺点:

  1. 精确的part 标注需要非常昂贵的代价;

  2. 强监督的基于part的模型可能在part被遮挡时,失效;

  3. 最后但也是最重要的,即:没有线索表明,手工设计的part对于所有的 fine-grained recognition tasks来说是最优的。例如:对于食物的识别来别,是非常难以设计part的。

 

  针对以上问题,本文提出了一种框架,即:Fully Convolutional Attention Localization Network 来定位物体的part,而没有任何人工的标注。本文利用基于强化学习的视觉 attenation model 来模拟学习定位物体的part,并且在场景内进行物体分类。这个框架模拟人类视觉系统的识别过程,通过学习一个任务驱动的策略,经过一系列的 glimpse 来定位物体的part。那么,这里的 glimpse 是什么呢?每一个 glimpse 对应一个物体的part。将原始的图像以及之前glimpse 的位置作为输入,下一次 glimpse位置作为输出,作为下一次物体part。每一个 glimpse的位置作为一个 action,图像和之前glimpse的位置作为 state,奖励衡量分类的准确性。本文方法可以同时定位多个part,之前的方法只能一次定位一个part,但是仔细想想,也奇怪,既然是 attenation model,那么像人类一样,一次只能将目光注意到一个地方,只定位一个part也是正常且合理的,这里搞一个多个part的同时定位,有点不太合理。

 

  


  Fully Convolutional Attention Localization Networks

  该网络结构可以借助 attention mechanism 来同时定位多个物体的part。不同的part可以拥有不同的预先定义的尺寸,主要包含两个成分:Part localization component and classification component.

  定位 part的成分利用一个全卷积的神经网络来定位part的位置。给定一张输入图像,我们用 VGG-16 以及在ImageNet上训练好的model 提取基础的卷积特征映射。attention localization network 定位多个parts,利用基础的卷积特征映射对每一个part都产生一个score map。每一个score map 都是由两层累积的卷积层和一个spatial softmax layer构成。第一个卷积层利用64个3*3的kernel,第二层利用一个3*3的kernel来产生一个单通道的置信图。spatial softmax layer作用于confidence map,用来将置信得分转化为概率。拥有最高概率的 attention region 被选为part location。

  分类的部分(classification component) 对于每一个part 以及 全图都给定一个CNN分类器。不同的part 可能有不同的尺寸,局部的图像区域根据其大小以及part的位置进行crop操作。我们对每一个局部图像区域和整体图像分开来进行图像分类器的训练。最终分类的效果是所有单独分类器结果的平均。为了判别出具有细微视觉不同的地方,每一个局部图像区域被resize成高分辨率的。每一个part都单独的训练一个CNN网络。

 

  虽然resize局部图像区域可以达到很好的分类性能,但是其需要我们执行多步前向和后向传播,这是非常耗时的。所以,此处采用了估计part 分类的方法,类似于 fast-rcnn,训练过程中的卷积特征映射对于part的定位,part的分类,以及整张图像的分类都是共享的。在整幅图像的卷及特征映射上选择对应的区域,从而得到每一个part的卷积特征,所以 所选中区域的接受域是和part部分相同的。所有时间步骤的卷积特征也是共享的。所以,我们只要在一个训练batch中,执行前向传递即可。Note:这些分类网络仅仅用来在attention localization network training的时候得到奖励。最后的分类网络是基于resized 高分辨率图像。

 

  Inference

  接下来说说如何利用 attention localization network 在inference的过程中进行识别。像上图所示,给定一张图,我们首先定位多个 attention regions,通过选择每一个part 拥有最高概率的区域。

  然后放大每一个part的位置,通过resize围绕它的分辨率到对应的高分辨率。每一个resize的part region 以及原本的图像利用分类part单独的进行预测。最后的预测score是原本图像的平均和所有attention region的平均。

 


 

  Training Attention Localization Networks

  由于并没有groundtruth来辅助进行定位 attention region,我们采用RL的方法来学习 attention localization networks。

  整个attention定位问题被描述成 马尔科夫决策过程(Markov Decision Process, MDPs)。在MDP的每一步中,attenation localization network作为agent 来基于观察,执行一个action,并且得到一个reward。

 

  在我们的工作中:

  action ---> the location of the attention region;

  observation ---> the input image and the crops of the attention regions;

  the reward ---> measures the quality of the classification using the attention region.

 

  我们的学习目标自然就是:学习一个最优的决策来根据观测产生动作,具体表现为 通过attention localization network的参数来最大化所有时间步骤的期望奖励的总和。

 

  作者额外又训练了一个分类网络来衡量分类的质量。每一步的分类网络是一个全卷积网络紧跟着一个softmax layer,将最后一个timestep的所有part的attention maps 以及 整幅图像的卷积特征作为输入。

  分类网络和attention localization network 联合优化来最大化接下来的目标函数:

  其中,θL, θC 是 attention localization network 和 classification network 的参数。注意到,我们应用L(θC)是交叉熵分类损失,R(θL)的定义是:

  是N个训练样本的平均期望奖励 和 T个不同的选择区域。

  是第n个样本的第t个选择的attention region的期望奖励。

  

  1. Reward Strategy

 

 

  像上面公式表达的那样,有两种情况可以给出奖励:

  1. 第一次迭代(t=1),并且预测的结果和gt值相等,则马上给出奖励,即:Cn,1 = y;

  2. 第t次迭代,当预测的结果和gt值相等,然后当前迭代的loss值小于前一次迭代的loss,那么也给出奖励;

  否则,就不出给奖励。

 

  其实,还有一种直观的关于reward奖赏的方法,即:从整体上,利用最终的分类结果来衡量attention region 选择策略的质量, i.e. r(An, t) = 1 如果t = T,并且当前图像被正确的分类;否则就是0.文中提到这可能会导致难以收敛的问题。

  所以,作者认为当图像可以利用当前attention region 被正确分类时,就立刻给出奖励,训练时就立刻更加简单和快速的收敛。

 

  2. Optimization 

  

  

  直接计算 期望的梯度有点困难,本文采用的是蒙特卡洛方法来近似计算:

 

  


  attention 区域的可视化:

  

  

 

  


  我的感受:

  z

   

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章
|
3月前
|
人工智能 自然语言处理 API
AI战略丨阿里云百炼,让企业应用大模型更简单
企业级的大模型开发,是一个复杂的过程,阿里云百炼平台以更经济高效的模型推理服务和更智能灵活的模型定制能力,让更多的企业以更低的门槛、更好的效果使用大模型产品赋能业务。
AI战略丨阿里云百炼,让企业应用大模型更简单
|
13天前
|
人工智能 API iOS开发
新手小白抄作业!2026年OpenClaw(Clawdbot)一键部署教程+接入iMessage指南
在AI智能体全民普及的2026年,OpenClaw(原Clawdbot,曾用名MoltBot)凭借开源免费、操作简单、场景适配广的核心优势,成为新手小白解锁AI自动化的首选工具。它无需复杂编程基础,就能实现文件处理、任务提醒、信息检索等日常需求,更可无缝接入iMessage,让你通过手机短信直接发送指令,实现“随时随地调用AI”的便捷体验。
324 0
|
11月前
|
算法
重磅!2025年中科院预警期刊名单正式发布!
中国科学院文献情报中心发布的《国际期刊预警名单》旨在防范学术不端与不当出版行为,保护科研生态良性发展。2025年版本聚焦两大问题:学术不端(如引用操纵、论文工厂)和不利于中国学术成果国际化传播的行为(如中国作者占比过高或APC费用不合理)。预警名单动态调整,发布时点从年底改为年初,便于科研人员及时调整投稿策略。被列入预警名单的期刊可能影响职称评审及科研经费认可,建议优先选择中科院分区表推荐期刊,警惕“快速代发”陷阱,并关注期刊官网声明。未来科研生态将更注重规范化与原创性,推动高质量学术发表。维护健康的学术环境对提升中国科研全球影响力至关重要。
1773 0
|
机器学习/深度学习 并行计算 测试技术
BiTCN:基于卷积网络的多元时间序列预测
该文探讨了时间序列预测中模型架构的选择,指出尽管MLP和Transformer模型常见,但CNN在预测领域的应用较少。BiTCN是一种利用两个时间卷积网络来编码历史和未来协变量的模型,提出于《Parameter-efficient deep probabilistic forecasting》(2023年3月)。它包含多个由扩张卷积、GELU激活函数、dropout和全连接层组成的临时块,有效地处理序列数据。实验表明,BiTCN在具有外生特征的预测任务中表现优于N-HiTS和PatchTST。BiTCN的效率和性能展示了CNN在时间序列预测中的潜力。
945 1
|
存储 编译器 C语言
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
505 0
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
|
图形学
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱1(附带项目源码)
【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱1(附带项目源码)
488 0
|
编解码
Open3D Voxelization 体素化
Open3D Voxelization 体素化
621 1
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
595 1
|
Web App开发 JavaScript 前端开发
强大的矢量图形库:Raphael JS 中文帮助文档及教程
  Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库。它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出各种复杂的柱状图、饼图、曲线图等各种图表,还可以绘制任意形状的图形,可以进行图表或图像的裁剪和旋转等复杂操作。
3195 0
|
人工智能 机器人
AI智能外呼机器人工作流程
AI外呼机器人是集合了自动拨打电话、多轮语音交互、客户意向智能分级、外呼任务自定义等多功能于一体智能语音对话机器人。 一个完整的智能外呼流程(不涉及转人工)包含了四个环节,各环节会由外呼系统整体串联起来进行运作: 1.用户接听:外呼工作流程的开始,外呼系统需识别用户接听信号。 2.客户机器人响应:这一环节关键在策略输出,外呼系统需根据用户应答,识别用户意图或动作,根据机器人预设任务流和策略给出响应话术。 3.用户应答/动作:这一模块主要在外呼系统需对用户的意图和动作进行精准识别,做用户状态记录,以便一下步策略的实施。 4.用户/客服机器人挂机:当机器人走完任务流会主动挂断,或用户提前