论文阅读(1)--Fine-grained Image Classification by Exploring Bipartite-Graph Labels

这是阅读《Fine-grained Image Classification by Exploring Bipartite-Graph Labels》这篇论文所做的笔记。

这篇论文是来自NEC实验室,是一篇有关细粒度分类/精细分类方面的论文。

0. 摘要

首先提出一个问题,给定一张食物的图片,对于一个细粒度物体识别机器是否可以给出该食物是属于哪家饭店以及其食物名称。这是一个超细粒度图片识别问题,也是许多根据图片进行搜索的关键问题,但是由于训练数据缺乏,这个问题变得非常有挑战性,需要能识别出类间的非常微小的差异。不过,论文给出一个观点,the ultra-fine granularity naturally brings rich relationships among object classes也就是说这种超细粒度在类间是有着丰富的关联的。基于这个观点,论文提出一种新的方法来利用这种关联,方法称为bipartite-graph labels (BGL),双偶图标记。然后论文会展示如何在卷积神经网络上使用这个方法,并且这种方法会由于其双边结构而提高计算效率,然后还建立了一个来自6家饭店,总共975个类别,37885张图片的数据库,会对这个数据库以及其他三个数据库使用这个方法,并且实验结果都是有所提高的。

1. 介绍

首先是列举了十来篇论文是有关细粒度分类的论文,包括狗,鸟,花卉,植物,车,食物,衣服,字体等说明细粒度图像分类的任务是对一些基类在纵向上的分类,或者说就是将这些基类比如狗,要进行更细致的划分,其难点就是这些子类的区别相比基类的分类要更加不明显,更加细微,但是细粒度物体分类是非常有用的。
在最近几年,一般的图像分类是取得非常大的突破,但是对于超细粒度图片的识别还是依旧很有挑战性。这里列举了下面这张图片的例子,其问题也是摘要部分提出来的,如何识别图中的三个食物分别是来自哪家饭店,分别叫什么名字。
此处输入图片的描述

所以这里提出了对于超细粒度分类在两方面的挑战。

  1. 不同类别的物体在视觉上非常相似;比如上图中第一幅图片与第三幅图片看起来很相似,但是两者是属于不同饭店的。
  2. 每个类别由于其超细粒度的原因,不一定具有足够的训练图片

因此,如何在保持明显的区分性前提下,在相似的类间分享信息,就变得更加矛盾了。

基于这个目的,论文提出了BGL的方法。该方法是有以下几个优点:

  1. BGL方法可以利用额外的约束来归一化CNN的训练过程,因此对于数量不大的训练集是可以大大降低过拟合的概率
  2. 在已知类别是属于同一个比较粗略的类或者是分享一些相同属性的情况下,可以允许我们从相关的其他类别借用一些知识。(这个原话是Knowing classes that belong to the same coarse category or share some common attributes can allow us to borrow some knowledge from relevant classes,还不是很了解这句话的意思)
  3. 通过全局的反向传播来进行监督性特征学习可以在相似的类别中捕抓到细微的差异从而学习到具有区分性的特征
  4. 最后一点是将结构限制为双偶图(bipartite graphs),BGL方法在推理阶段就使用穷举法避免了指数爆炸增长的问题(这个优点应该是针对计算效率问题吧)

目前在细粒度分类方法,主要研究方向是学习更有区分性的特征,这个可以通过调整物理的姿势或者位置,或者是通过物体分割方法过滤掉背景。而BGL方法可以结合上述方法之一,来获得一个更好的效果。

2. 相关工作

这部分内容,论文会介绍在细粒度图像分类和结构标签学习(structural label learning)两方面的研究现状。

2.1 细粒度图像分类

细粒度分类需要解决的问题就是在相似类别中辨别细微的差异。因此,现在大部分方法都是集中在局部化以及描述在精细区域的有区分性的物体部件。
具体说来,有这些方法。第一种是需要调整姿势的会结合一些二维或者三维图片,其用于识别鸟类,狗和车,但是其主要缺点就是对这些部件的标注是非常有挑战性的;第二种方法是通过无监督或者半监督方式来寻找物体的部件。这种方法就有比较多不同的具体实施方法,有结合对齐和分割方法来产生所需的部件的,也有使用两个独立的CNN特征提取器,还有使用一个新的能嵌入已存在的卷积结构中,然后在空间上转换feature maps的。
在第一部分中也说了,还有一个方向其实就是通过分割和检测方法来过滤掉有噪声和杂乱的背景,以此获得更好的特征。但是这种方法由于需要额外进行图像分割,而分割是有很大计算量的,所以这种方法最大缺点就是计算量大了。
最后也提及到最近还有其他取得更好效果的方法,而这些方法都是有可能跟BGL方法相结合来获得一个更好效果的。

2.2 结构标签学习(structural label learning

目前大多数任务都是单标签的分类问题,但是对现实世界的图片使用像标签或者属性一样的多个标签来描述才是更自然的。现在有关结构标签学习的相关工作可以粗略地分为学习二进制,相对的或者分层属性。

一部分工作是主要学习二进制属性,也就是表示图片中是否存在某个属性。这些工作包括有人脸验证,纹理识别,衣服搜索等,但是当对于物体属性是连续的或者是模糊不清的时候,二进制属性就会受到限制。

为了解决二进制属性的缺陷,在过去几年更多任务使用到了对比属性。学习相对属性的方法是对每种属性都学习一个全局的线性排序函数,在语义上提高一个更加丰富的方法来描述和对比物体。但是看起来是很有前途的一个方向,在遇到细粒度视觉比较的时候却是没有得到很好的效果。

论文的方法BGL是采用第三种策略,也就是在细粒度标签和属性间的关系是通过分层方式在塑造的。(Our method falls into the third category where the relation between the fine-grained labels and attributes is modeled in a hierarchical manner.)跟其他相关的工作相比,论文的不同点在时基于CNN的框架,同时其主要集中在多标签的物体。这里是有几篇论文的工作是有点相似,但是论文也分别给出比这几篇论文要更胜一筹的内容。

3. CNN with Bipartite-Graph Labels

第三部分会介绍论文提出的BGL方法,基于一个普通的多类卷积神经网络框架,其网络结构相比于现在流行的几个结构,如AlexNet,GoogLeNetVGGNet,只是修改了softmax层和最后一个全连接层以便于使用BGL方法,同时通过一个全局的反向传播来优化。

这部分主要就是说明如何修改softmax层和最后一个全连接层,因为涉及到原理,所以也是有不少数学公式,主要就是增加了一个粗略分类(coarse label)的标签,然后设计公式表示这种粗略分类标签和初始图片的标签(fine-grained label)之间的关联。然后就是如何通过反向传播来进行优化效果。

4. 小结

论文在第四部分就是介绍实验部分,其实验用了4个数据库,除了在摘要部分介绍的食物数据库,还用了两个有关车的数据库和一个鸟类的数据库,均都是比标准结果,也就是使用正常的卷积神经网络结构,如AlexNet等的效果要有所提高。

大概简单看完这篇论文,对于实现原理还需要好好看看,但是看完感觉就是这篇论文的思路应该是虽然要做细粒度分类,但它是从使用这些分类的基类来考虑的,因为一开始给的类别标签算是分得更加细了,比如一开始摘要部分的图中几种都是属于豆腐的不同做法,论文就考虑再给出一个更粗略分类,比如豆腐,这样对于相似的类,可以共享一些信息,毕竟这种精细分类问题,在相似的类别中,是有很大部分信息是相同的,可能是极小部分区域的差别才导致两者属于不同类别,所以这篇论文就应该是从这个角度去思考,同时这种做法也可以降低对数据量的需求。跟当前主流做法相比,是另辟蹊径了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java注释和注解_深入理解JAVA注解(Annotation)以及自定义注解

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。注解可以看作是一种特殊的标记,在程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。本文对 Annotation 进行了…

[机器学习笔记]Note10--支持向量机(SVM)

继续是机器学习课程的笔记,这节课的内容是介绍支持向量机(SVM)的内容。SVM是一个非常强大且流行的算法,在一些情况下,面对一些复杂的非线性问题可以提供比逻辑回归或神经网络更加简洁更加有效的结果。 优化目标 首先…

[机器学习笔记]Note11--聚类

继续是机器学习课程的笔记,本节介绍的是聚类方法,主要是K-means算法。 非监督学习 首先介绍监督学习和非监督学习的区别。一个监督学习的例子如下图,给定训练集如:{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},每个训练实例都有对应的标签。 …

[机器学习笔记]Note12--降维

继续是机器学习课程的笔记,本节介绍的是降维方法,这也是非监督学习中的一个问题,主要介绍主要成分分析(Principal Component Analysis,PCA)算法。 降维 动机一:数据压缩 使用降维的一个原因是…

[机器学习笔记]Note13--异常检测

继续是机器学习课程的笔记,本节课内容是异常检测,它是一个非监督学习算法,用于发现可能不应该属于一个已定义的组中的数据。 密度估计 首先是给出一个例子,如下图所示,是一个测试飞机引擎的例子,给定数据…

[机器学习笔记]Note14--推荐系统

继续是机器学习课程的笔记,本节课将介绍推荐系统的内容。 问题形式化 推荐系统是机器学习的一个非常重要的应用,在很多音乐、购物等网站都有推荐系统,如豆瓣,淘宝,网易云音乐等都是有使用到推荐系统的,因…

[机器学习笔记]Note15--大规模机器学习

继续是机器学习课程的笔记,本节内容主要是介绍大规模机器学习的内容。 大型数据集的学习 对于一个过拟合的模型,增加数据集的规模可以帮助避免过拟合,并获得一个更好的结果。 但是对于一个大规模的数据,比如有100万个数据量的训…

[机器学习笔记]Note16--应用示例:图像文字识别

继续是机器学习课程的笔记,本节课是最后一节内容了,主要是介绍一个应该–图中文字的识别。 问题描述和流程图 图像文字识别应用就是从给定的图片中识别文字。这比从一份扫描文档中识别文字要复杂得多。一个例子图片如下所示: 为了完成这样的…

python小老鼠编程_邯郸pythonnot学习费用多少

邯郸pythonnot学习费用多少更新时间:2020-08-02 12:49:04注意:如果出现错误,可能是因为安装时未勾选AddPython3.5toPATH选项,此时卸载Python后重新安装时勾选AddPython3.5toPATH选项即可。1.2Mac中安装Python3Mac系统中自带了Pyth…