点击我爱计算机视觉标星,更快获取CVML新技术


编者按:双线性特征在学习细粒度图像表达上效果很好,但计算量极大,无法在深层的神经网络中被多次使用。因此,微软亚洲研究院设计了一种深度双线性转换模块,能够深层地将双线性表达应用在卷积神经网络中,来学习细粒度图像特征。这项工作发表在了 NeurIPS 2019 上。

双线性特征在学习细粒度图像表达上取得了很好的效果,但逐对计算卷积通道之间的信息交互会带来极大的计算代价,使得这样有较强表达能力的操作无法在深层的神经网络中被多次使用,从而限制了其应用的有效性和广泛性。

因此,我们设计了一种深度双线性转换模块,能够深层地将双线性表达应用在卷积神经网络中,来学习细粒度图像特征。深度双线性转换模块主要通过引入基于部位表达的语义分组信息,对组内的特征进行双线性操作和组间特征进行整合来得到低维的双线性表达,从而在深度神经网络中多次叠加使用双线性操作。我们提出的深度双线性模型在三个常用的细粒度图像分类任务上取得了明显的提高,下文中我们将详细介绍研究背景、实现细节以及实验结果。

研究背景

细粒度图像分类(fine-grained image recognition)旨在区分同一个大类(比如鸟类、汽车、飞机等)里面不同小类的图像之间细微的差别。这类问题的数据通常有两个特点:

1)较强的结构性,比如所有的鸟类样本都由鸟头、鸟翅、鸟尾等部位组成,所有的汽车样本都由车头、车轮、车门等部件组成;

2)复杂的细节特征,比如呆头伯劳鸟(Loggerhead Shrike,图1左)与南灰伯劳鸟(Great Grey Shrike,图1右)相比,区别仅仅在于眼周围的黑色条纹比较粗,这就要求算法的特征表达可以捕捉到这样的细节。

基于这两个特性,目前最好的细粒度分类方法主要可以分为两类:基于部位检测的表达学习和基于双线性的精细特征学习。

图1:细粒度图像的结构性和复杂的细节特征

基于部位检测的表达学习需要显式地定位到各个部位,并对定位到的部位进行放大、对齐等,来进一步得到更好的表达。这类方法通常会伴随复杂的部位处理和较多的计算量,有很多方法还会因为将定位和分类分成两个子任务而无法得到全局最优解。基于双线性的特征学习通过对特征向量进行外积操作来实现通道信息之间的逐对交互,从而得到对细节信息更好的表达。但受到极高维的双线性特征的影响,这类方法会大大增加参数量,而且只能被应用在神经网络的最后一层,作为一种池化操作。

深度双线性转换

针对以上问题,我们提出了“利用基于部位的语义信息,得到一种低维而高效的双线性表达”的构想,让能够表达丰富细节的双线性特征能够很深地集成到卷积神经网络中,因此提出了深度双线性网络(Deep Bilinear Transformation Network, DBT-Net)网络结构

图2:Deep Bilinear Transformation (DBT, 深度双线性转换)

如图2所示,“DBT”的输入是图像的卷积特征,首先根据部位的语义信息将卷积特征的各个通道分组,得到分组后的卷积特征,对于每一个位置的特征向量,进一步将这个特征中同一个组内的通道进行双线性操作,来得到针对这个部位的丰富的细节表达,再将不同组之间的双线性表达求和得到低维特征。最后,我们将这样的表达进行向量化,来恢复成卷积特征原本的维度。

我们通过设计一种语义分组的约束将卷积特征的各个通道进行分组。由于卷积特征的每一个通道对特定语义的图像模式响应比较高,描述某一个语义的所有卷积通道的响应会集中在相应的空间区域。因此我们设计了一种语义分组约束,要求同一个语义组内的卷积通道两两之间有尽可能大的空间交叠,而不同组件的通道尽可能没有交叠。这种逐对的分组约束可以使后续的分组双线性操作更好地捕捉针对每个语义块的细节特征。图3展示了通过这种约束优化后的卷积通道组内和组间逐对的信息交互,黄色高亮代表交互的数值比较大,紫色代表交互比较小。

图3:组内和组间逐对的信息交互示意图

我们设计的深度双线性转换模块可以很容易地集成到深度卷积神经网络的结构中。比如可以将其插入到传统残差块(ResNet Bottleneck Block)的第一个卷积层和第二个卷积层之间来得到能够融合双线性特征的残差块。如图4所示,我们在传统残差块的第一个卷积上施加语义分组的约束,将其变成语义分组层(SG),同时在后面插入一个分组双线性操作(GB),并利用残差链接将通过分组双线性操作之前和之后的特征加起来。这样的双线性特征再通过3X3的卷积操作来进一步学习丰富的细节特征。

图4:Deep Bilinear Block (深度双线性残差块)

实验结果

为了验证我们提出的深度双线性转换的有效性,我们在三个常用的细粒度分类数据集上进行了实验,分别是 CUB-200-2011 鸟类数据集,Stanford-Car 汽车数据集和 FGVC-Aircraft 飞机数据集。表1显示了在 CUB-200-2011 数据集上(输入图像分辨率为224)深度双线性残差块在不同阶段融合的效果比较。我们可以看出,在最后一层使用分组双线性表达会带来一定的提升(1.1%),而将这种结构深层次的融入卷积神经网络之中可以带来进一步的提升,比如再将 ResNet-50 后两个阶段的残差块都变成深度双线性残差块会达到85.1%的分类精度。

表1:深度双线性残差块在不同阶段融合的效果比较

表2显示了不同语义分组约束的效果比较,不加任何分组约束的分类精度只有79.85%,使用 MA-CNN 一文中提出的分组方法可以达到83.2%的精度,而利用我们提出的约束可以达到85.1%的分类精度。这体现了我们设计的逐对形式的分组约束对分组双线性更加有效。

表2:不同语义分组约束的效果比较

表3显示了不同方法在三个常用细粒度图像分类任务上的实验结果比较(输入图像分辨率为448)。实验表明我们提出的深度双线性网络可以在同样使用 ResNet-50 作为基础网络,而且特征维度很低的情况下达到好的效果。我们将提出的深度双线性应用到 ResNet-101 上,可以观察到进一步的提升。

表3:不同方法在三个常用细粒度图像分类任务上的实验结果比较

结语

本文我们通过引入语义信息,提出了基于语义分组的双线性转换,大大降低了双线性特征的维度,使得双线性操作可以被深层次地融入到卷积神经网络中。我们设计的深度双线性网络在三个常用的细粒度图像分类任务上取得了明显的提高。在后续的工作中,我们会研究深度双线性转换在底层特征的应用。此外,我们还将把矩阵归一化操作引入到深度双线性转换中,进一步增强其表达能力。

了解更多技术细节,请点击阅读原文查看论文:

Learning Deep Bilinear Transformation for Fine-grained Image Representation

论文链接:https://papers.nips.cc/paper/8680-learning-deep-bilinear-transformation-for-fine-grained-image-representation.pdf

代码链接:https://github.com/researchmm/DBTNet

(还未开源)


图像分类/细粒度分类交流群

关注最新最前沿的图像分类模型设计、细粒度分类技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:分类)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

NeurIPS 2019丨深度双线性转换改进细粒度图像分类相关推荐

  1. 原创《基于深度特征学习的细粒度图像分类研究综述》

    原创,未经同意,请勿转载 后记:这篇综述文章虽然是19年放出来,但是我在18年初的时候写的,当时准备找个国内期刊投一下的,后面某些原因放弃了.所以文中引用的方法都是17年以前的,有点过时了,现在又出现 ...

  2. 深度学习浪潮下的自然语言处理,百度NeurIPS 2019展现领域新突破

    2019 年 12 月8 日-14 日,机器学习领域国际顶级会议 NeurIPS 2019于加拿大温哥华拉开帷幕.此次大会共吸引了全球1万余名专家学者共赴盛会.本年度,自然语言处理领域在深度学习浪潮下 ...

  3. NeurlPS 2019丨微软亚洲研究院 5 篇精选论文解读

    点击我爱计算机视觉标星,更快获取CVML新技术 编者按:NeurlPS 2019 正于12月8-14日在加拿大温哥华举行.微软亚洲研究院有11篇论文入选本届 NeurlPS,内容涵盖社交网络影响力最大 ...

  4. 细粒度图像分类研究综述

    细粒度图像分类问题是计算机视觉领域一项极具挑战的研究课题, 其目标是对子类进行识别,如区分不同种类的鸟.由于子类别间细微的类间差异和较大的类内差异, 传统的分类算法不得不依赖于大量的人工标注信息.近年 ...

  5. 细粒度图像分类 fine-grained classification

    细粒度图像分类又被称作子类别图像分类,是近年来计算机视觉.模式识别等领域的研究热点,其目的是对粗粒度的大类别进行更加细致的子类划分.但由于子类别间的细微差别以及较大的类内差异,较之普通的图像分类任务, ...

  6. 商汤插帧算法让视频顺滑如丝丨NeurIPS 2019 Spotlight论文

    点击我爱计算机视觉标星,更快获取CVML新技术 自相机被发明以来,人们对更高画质视频的追求就没有停止过. 分辨率从480p,720p,再到1080p,现在有了2K.4K:帧率也从25FPS到60FPS ...

  7. 【NeurIPS 2019】Yoshua Bengio报告:深度学习系统从1代到2代,未来将朝何处发展?

    NeurIPS 2019正在加拿大温哥华召开.作为机器学习领域最重要的顶会,NeurIPS一直有着很强的影响力和排名,被认为是神经计算方面最好的会议之一. 本文为大家带来了深度学习推动者.图灵奖得主Y ...

  8. 英特尔计算引擎、阿里大规模图形神经网络平台、百度飞桨平台、索尼音乐生成AI套件......重量级深度学习工业产品亮相NeurIPS 2019行业展览会!

    NeurIPS 2019的正式会议将于加拿大/温哥华时间的12月9日早上8点开始.会议前一天将会举办为期一整天的行业展览会(可能是赞助商太多了--) 当别人为明天的正式会议捉急准备时,小助手已经在展览 ...

  9. NeurIPS 2019|腾讯AI Lab详解入选论文,含模仿学习、强化学习、自动机器学习等主题...

    感谢阅读腾讯 AI Lab 微信号第 89 篇文章.本文将解读腾讯 AI Lab 入选 NeurIPS 2019 的 14 篇论文. 第 33 届神经信息处理系统大会(NeurIPS 2019)将于当 ...

最新文章

  1. Ubuntu 16.04 install NVDIA display driver
  2. debian下为python2.7 安装MySQLdb扩展(mariadb)
  3. Burrard 大桥
  4. 我要当皇帝等微信小游戏的wbs
  5. JS判断是否是微信页面,判断手机操作系统(ios或android)并跳转到不同下载页面...
  6. python显示数据长度_Python数据分析之初识可视化
  7. Taro+react开发(28)本地用require线上不必
  8. 利用DotRAS组件,实现ADSL的自动拨号断网自动化操作[转]
  9. pythondict函数_Python的dict()函数
  10. SAP License:一个 SAP 新手的困惑
  11. python安装不上怎么办_python依赖安装失败怎么办
  12. 新增的表单元素 结构伪类选择器
  13. python pdb pip安装_Python调试器,一个优秀开发人员的必备技能包
  14. Java后端开发常用规范
  15. 基于龙芯CPU银河麒麟操作系统的国产半实物仿真系统ETestDEV
  16. 【错误记录】Google Play 上架报错 ( 对于在 APK 中使用该权限的应用,您必须设置隐私权政策 | 生成并托管 隐私政策 )
  17. 互联网之父Vint Cerf:互联网的下一个十年
  18. duilib开发(五):界面布局
  19. 遗传算法(Python) #5 用DEAP框架解决OneMax问题
  20. 浅谈大数据业务处理流程

热门文章

  1. h0152. 故事计算题(计蒜客——西邮K题)解析
  2. 服务器多个网站开启quarz,GitHub - WuLex/QuartzSynchroData: 多个不同站点服务器数据同步到总服务器(数据中心)...
  3. c语言用指针求Amn,[工学]第5章数据结构C语言描述耿国华.ppt
  4. python定义_python __xx__的定义和用处
  5. 老年机按键串号_为什么老人机依然很多人在用?
  6. activemq java 重发_java – 无法让ActiveMQ重新发送我的消息
  7. 易语言注入 c dll,易语言DLL注入模块简单型
  8. 计算机应用基础教学反思与改进,中职《计算机应用基础》课程教学反思
  9. go语言如何调用java接口,[译] 如何在 Go 中使用接口
  10. Tomcat 5.0.18 安装配置指南