《Deep learning for fine-grained image analysis: A survey》
作者魏秀参,旷世研究院
初读 摘要细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。
细粒度性质引起的类间小变化和类内大变化使其成为一个具有挑战性的问题。
本文旨在系统地调查基于深度学习的 FGIA 技术的最新进展。
本文将现有的 FGIA 技术研究分为三大类:
细粒度图像识别
细粒度图像检索
细粒度图像生成
本文还涵盖了 FGIA 的其他一些重要问题,例如公开的基准数据集及其相关的特定领域应用。
最后在总结这项调查时强调了几个方向和有待社会进一步探索的问题。
结论这篇文章主要是未来展望,后面写。
再读 Section 1 Introduction第一段:介绍 CV
第二段:介绍细粒度图像分析(FGIA)
FGIA 的目标是检索、识别和生成属于超类别(也称为元类别)的多个次级类别的图像,例如不同种类的动物/植物、不同型号的汽车、不同种类的零售产品等。
关于 FGIA 的一些有影响力的学术竞赛经常在 Kaggle 上举行。几项具有代表性的竞赛,例如自然保护协会渔业监测(用于鱼类物种分类)、座头鲸识别(用于鲸鱼身份分类)等。每项竞赛都吸引了全球 300 多个团队参加,有些甚至超过了 2000 支队伍。
第三段:深度学习+FGIA 很火
根据每年的粗略统计,平均每年约有十篇基于深度学习的 FGIA 技术的会议论文发表在人工智能和简历的高级会议上,如 IJCAI、AAAI、CVPR、ICCV、ECCV 等。
第四段:本文工作亮点
在文献中,已有一项与细粒度任务相关的调查 [Zhao et al., 2017](上一篇读的那个),其中仅包括几种用于比较的细粒度识别方法。
本文工作更全面。
本文还分析和讨论了另外两个核心且不可忽视的细粒度分析任务,即细粒度图像检索和细粒度图像生成。
此外,在环太平洋国家举行的另一次重要的人工智能会议上,PRICAI、Wei 和 Wu 组织了一场针对细粒度图像分析主题的专题辅导会。我们推荐感兴趣的读者参考教程,该教程提供了一些额外的详细信息。
第五段 三大贡献:
对基于深度学习的 FGIA 技术进行了全面的综述,包括问题背景、基准数据集、具有深度学习的一系列 FGIA 方法、特定领域的 FGIA 应用等。
以分层和结构化的方式对基于深度学习的 FGIA 技术的最新进展进行了系统概述,参见下图。
讨论了挑战和悬而未决的问题,并确定了新的趋势和未来方向,为细粒度的研究人员或广泛的人工智能社区中的其他感兴趣的读者提供了一个潜在的路线图。
第六段:其他部分
第二节介绍了本文的背景,即 FGIA 问题及其主要挑战。第三节回顾了多个常用的细粒度基准数据集。第四节分析了细粒度图像识别的三种主要范式。第五节介绍了细粒度图像检索的最新进展。第六节从生成的角度讨论细粒度图像生成。第七节中介绍了现实世界中与 FGIA 相关的其他一些特定领域的应用。第八节总结了本文并在中讨论了未来的方向和悬而未决的问题。 Section 2 Background: problem and main challenges背景:问题和主要挑战
细粒度识别(FGIA)是干啥的:
FGIA 专注于处理属于同一元类别的多个子类别的对象(如鸟、狗和汽车),通常涉及细粒度图像识别、细粒度图像检索、细粒度图片生成等核心任务。
FGIA 与一般图像分析的区别:
在一般图像分析中,目标对象属于粗粒度的元类别(例如,鸟类、橙子和狗),因此在视觉上截然不同。
然而,在 FGIA 中,由于对象来自一个元类别的子类别,细粒度的特性使它们在视觉上非常相似。
以图像识别为例。在细粒度识别中,需要识别多个类似物种的狗,例如哈士奇、萨摩耶和阿拉斯加。为了准确识别,需要通过捕捉细微的差异(如耳朵、鼻子、尾巴)来区分它们,这也满足了其他 FGIA 任务(如检索和生成)的需求。
FIGA 的挑战:
细粒度性质还带来了由高度相似的子类别引起的小的类间变化,以及姿态、尺度和旋转方面的大的类内变化,
它与一般图像分析(即小的类内变化和大的类间变化)相反,这使得细粒度图像分析成为一个具有挑战性的问题。下图分别展示了图中每行四种燕鸥中的每一种。
Section 3 Benchmark datasets基准数据集
数据集介绍:
在过去的十年里,视觉社区发布了许多基准细粒度数据集,涵盖了不同的领域,如鸟类、狗、汽车、飞机、花卉、蔬菜、水果,零售产品等等。下表列出了细粒度社区常用的一些图像数据集,并具体指出了它们的元类别、细粒度图像的数量、细粒度类别的数量、额外不同类型的可用监督,即边界框、零件注释、层次标签、属性标签和文本视觉描述,下图为示例。
示例图像及其与 CUB200-2011 相关的监督。如图所示,多种类型的监督包括:图像标签、零件注释(也称为关键点定位)、对象边界框(即绿色边界框)、属性标签(即“ATR”)和自然语言的文本描述。
这些数据集功不可没:
这些数据集是该领域取得长足进展的最重要因素之一,不仅是衡量和比较竞争方法性能的共同基础,而且将该领域推向越来越复杂、实用和具有挑战性的问题。
CUB200-2011 记首功:
具体来说,其中 CUB200-2011 是最受欢迎的细粒度数据集之一。几乎所有的 FGIA 方法都选择它来与现有技术进行比较。此外,CUB200-2011 不断为进一步的研究做出贡献,例如,收集细粒度图像的文本描述用于多模态分析。这两年的新数据集及其引入的新特征:
此外,近年来越来越多地提出了更具挑战性和实用性的细粒度数据集,例如,用于植物和动物自然物种的 iNat2017 和用于日常零售产品的 RPC。从这些数据集衍生出的许多新特征,仅举几个例子,就是大规模、层次结构、域间隙和长尾分布,这揭示了现实世界中的实际需求,并可能引发在更现实的环境中对 FGIA 的研究。 Section 4 Fine-grained image recognition细粒度图像识别
地位:
在过去的十年里,细粒度图像识别一直是 FGIA 最活跃的研究领域。
从广义上讲,这些细粒度识别方法可以分为三个主要范式:
具有本地化分类子网络;具有端到端特征编码;具有外部信息。第一和第二范式通过仅利用与细粒度图像相关联的监督来限制自身,所述细粒度图像诸如图像标签、边界框、零件注释等。
多模态趋势:
由于细粒度的挑战,自动识别系统还不能获得优异的性能。因此,研究人员逐渐尝试将外部但廉价的信息(如网络数据、文本描述)纳入细粒度识别,以进一步提高准确性,这与细粒度识别的第三范式相对应。
评估指标:
细粒度识别中常用的评估指标是数据集所有次级类别的平均分类精度。
4.1 By localization-classification subnetworks按本地化分类的子网络
第一个范式——具有本地化分类子网络的细粒度识别
思想:
为了缓解类内变异的挑战,细粒度社区的研究人员关注捕捉细粒度对象的判别语义部分,然后构建与这些部分相对应的中级表示,用于最终分类。
架构:
定位子网络:定位这些关键部分;分类子网络紧随其后用于识别;这两个协作子网络的框架形成了第一个范式。定位信息的作用:
定位信息,例如零件级边界框或分割掩码,可以获得与这些细粒度零件相比更具鉴别力的中级(零件级)表示。进一步增强了分类子网络的学习能力,可以显著提高最终识别的准确性。
注释依赖:
属于该范式的早期工作依赖于额外的密集部分注释(也称为关键点定位)来定位对象的语义关键部分(例如,头部、躯干)。他们中的一些人训练基于零件的检测器,另一些人利用分割方法定位零件。这些方法将多个部分级特征连接为一个完整的图像表示,并将其输入到下面的分类子网络中进行最终识别。因此,这些方法也被称为基于零件的识别方法。克服注释依赖的新趋势:
获得如此密集的零件注释是费力的,这限制了现实世界细粒度应用程序的可扩展性和实用性。最近,出现了一种趋势,即在这种范式下,更多的技术只需要图像标签来实现准确的零件定位。它们的共同动机是首先找到相应的部分,然后比较它们的外观。具体来说,我们希望捕捉语义部分(例如,头部和躯干),以便在细粒度的类别中共享,同时,我们也渴望发现这些部分表示之间的细微差异。先进的技术,如注意力机制和多阶段策略使集成定位分类子网络的联合训练复杂化。 4.2 By end-to-end feature encoding通过端到端特征编码
第二范式思想:
与第一种范式不同,第二种范式,即端到端特征编码,倾向于通过开发用于细粒度识别的强大深度模型来直接学习更具鉴别力的特征表示。
其中最具代表性的方法——双线性 CNN
它将图像表示为源自两个深层 CNN 的特征的合并外积,并因此对卷积激活的高阶统计量进行编码,以增强中级学习能力。由于其高模型容量,双线性 CNN 实现了显著的细粒度识别性能。问题与解决: 但同时,双线性特征的极高维数仍然使其在现实应用中不切实际,尤其是在大规模应用中。针对这个问题的最近的尝试:试图通过应用张量绘制来聚合低维嵌入,这可以近似双线性特征并保持可比或更高的识别精度。其他工作,专注于设计针对细粒度定制的特定损失函数,并能够驱动整个深度模型来学习有区别的细粒度表示。
4.3 With external information有外部信息
第三范式思想:
第三范式是利用外部信息,例如网络数据、多模态数据或人机交互,来进一步帮助细粒度识别。
使用 web 数据:
利用自由但有噪声的网络数据来提高识别性能。这条线路上的大多数现有工程大致可以分为两个方向。
一是网络监督学习:抓取测试类别的有噪声标记的网络数据作为训练数据。
此方法的主要努力集中在:
克服容易获取的 web 图像和来自标准数据集的标记良好的数据之间的数据集差距;
减少由噪声数据引起的负面影响。
为了解决上述问题:经常使用对抗性学习的深度学习技术和注意力机制。
另一是将知识从具有良好标记的训练数据的辅助类别转移到测试类别,这通常采用零样本学习或元学习来实现这一目标。
使用多模态数据:
思想:
在细粒度识别中用多模态数据来建立联合表示/嵌入,以合并多模态信息,能够提高细粒度识别的准确性。
常用的两种多模态数据
经常使用的多模态数据包括文本描述(例如,自然语言的句子和短语)和图形结构知识图谱。
文本描述
与细粒度图像的强监督(例如,零件注释)相比,文本描述是弱监督。
普通人可以相对准确地返回文本描述,而不是特定领域的专家。
图形结构知识图谱:
高级知识图是现有的资源,包含丰富的专业知识,如 DBpedia。在实践中,文本描述和知识库都是有效的,可以作为更好的细粒度图像表示学习的额外指导。具体应用:
[Reed et al.,2016] 收集文本描述,并通过结合文本和图像,为零样本细粒度图像识别引入结构化联合嵌入。
后来,[He和Peng,2017a] 以端到端的联合训练方式结合了视觉和语言流,以保留模态内和模态间信息,用于生成互补的细粒度表示。
对于具有知识库的细粒度识别,例如 [Chen et al.,2018;Xu et al.,2018a],引入了知识库信息(总是与属性标签相关联),以隐含地丰富嵌入空间(也推理细粒度对象的判别属性)。
人在循环:
循环中有人的细粒度识别通常是一个由机器和人类用户组成的迭代系统,它结合了人类和机器的努力和智能。此外,它要求该系统尽可能以人类劳动经济的方式工作。通常,对于这类识别方法,每一轮的系统都在寻求了解人类是如何进行识别的, 例如,通过要求未经训练的人类标记图像类别并选取硬例子;或者通过识别关键部分定位并选择判别特征进行细粒度识别。 Section 5 Fine-grained image retrieval细粒度图像检索
评估指标:共同平均精度(mAP)
细粒度图像检索是什么:
给定相同子类别(例如,鸟类或汽车)的数据库图像和查询,它应该返回与查询相同种类的图像,而不需要求助于任何其他监督信号。
与基于内容相似性(如纹理、颜色和形状)检索近似重复图像的通用图像检索相比,细粒度检索侧重于检索相同类型的图像(如动物的相同从属物种和汽车的相同模型)。同时,细粒度图像中的对象只有细微的差异,并且在姿势、比例和旋转方面各不相同。
示例:
下图给定“Dodge Charger Sedan 2012”的查询图像(又名探测器),通过细粒度检索从汽车数据库(又名星系)返回同一车型的图像。在这张图中,红色矩形标记的前4名返回图像显示了错误的结果,因为其型号是“Dodge Caliber Wagon 2012”。
相关工作:
[Wei et al.,2017] 首次尝试使用深度学习进行细粒度图像检索。它使用预先训练的 CNN 模型,通过在细粒度图像中无监督地定位主要对象来选择有意义的深度描述符,并进一步表明,只选择去除背景或噪声的有用深度描述符可以显著有利于检索任务。最近,为了突破预训练模型进行无监督细粒度检索的局限性,一些试验倾向于在监督度量学习范式下发现新的损失函数。同时,他们仍然为细粒度对象设计了额外的特定子模块,例如,在 [Zheng et al.,2018] 中提出的弱监督定位模块,该模块是在 [Wei等人,2017] 的启发下提出的。 Section 6 Fine-grained image generation细粒度图像生成
什么是图像生成:
细粒度生成将合成细粒度类别中的图像,例如特定人物的面部或从属类别中的对象。
相关工作:
这方面的第一项工作是 [Bao et al.,2017] 中提出的 CVAE-GAN,它将变分自动编码器与条件生成过程下的生成对抗性网络相结合,以解决这个问题。具体地,CVAE-GAN 将图像建模为概率模型中的标签和潜在属性的组合。然后,通过改变输入生成模型的细粒度类别,它可以生成特定类别的图像。最近,从文本描述生成图像由于其多样性和实际应用,如艺术生成和计算机辅助设计,表现得很流行。通过执行具有注意力的生成网络,该模型可以通过关注文本描述的相关单词来合成细微区域的细粒度细节。 Section 7 Domain specific applications related to fine-grained image analysis与细粒度图像分析相关的特定领域应用程序
基于深度学习的细粒度图像分析技术在现实世界中各种特定领域的应用 推荐系统中的衣服/鞋子检索、电子商务平台中的时尚图像识别、智能零售中的产品识别等。在极端情况下,人脸识别可以被视为细粒度识别的一个实例,其中粒度低于身份粒度级别。人/车再识别是另一项细粒度相关任务,旨在确定两张图像是否取自同一特定人/车。显然,重新识别任务也处于身份粒度之下。在实践中,这些工作通过遵循 FGIA 的动机来解决相应的领域特定任务,包括捕捉物体(人脸、人和车辆)的辨别部分,发现从粗到细的结构信息。
Section 8 Concluding remarks and future directions结束语和今后的方向
自动细粒度模型 **自动机器学习(AutoML)和神经架构搜索(NAS)**正吸引着人工智能界尤其是在计算机视觉领域的热烈关注 AutoML 的目标是将机器学习应用于现实世界任务的端到端过程自动化。NAS,即自动化神经网络架构设计的过程,因此是 AutoML 中合乎逻辑的下一步。 AutoML 和 NAS 的最新方法在各种计算机视觉应用中可以与手工设计的架构相媲美,甚至优于手工设计的体系结构。因此,利用 AutoML 或 NAS 技术开发的自动细粒度模型也有望找到更好、更具针对性的深度模型,同时反过来推动 AutoML 和 NAS 的研究。 细粒度的少镜头学习 人类能够在很少的监督下学习一个新的细粒度概念,例如,一种鸟类的示例图像很少,但我们最好的深度学习细粒度系统需要数百或数千个标记的示例。更糟糕的是,对细粒度图像的监督既耗时又昂贵,因为领域专家应该始终准确地标记细粒度对象。因此,需要开发细粒度的少镜头学习(fine-grained few-shot,FGFS)。FGFS 的任务要求学习系统以元学习的方式从几个例子(只有一个或少于五个)中为新的细粒度类别构建分类器。稳健的 FGFS 方法可以极大地增强细粒度识别的可用性和可扩展性。 细粒度哈希 在参考数据库非常大的情况下,找到精确的最近邻居的成本高得令人望而却步。哈希作为最流行、最有效的近似近邻搜索技术之一,具有处理大规模细粒度数据的潜力。因此,细粒度哈希是一个值得进一步探索的方向。 在更真实的设置中进行细粒度分析 在过去的十年中,细粒度图像分析相关技术得到了发展,并在其传统设置中取得了良好的性能,例如经验协议。然而,这些设置无法满足当今各种现实世界应用的日常要求,例如,通过使用在受控环境中收集的图像训练的模型来识别货架中的零售产品,以及识别/检测野生自然物种。因此,新的细粒度图像分析主题,仅举几个例子——具有域自适应的细粒度分析、具有知识转移的细粒度解析、具有长尾分布的细粒度剖析,以及在资源受限的嵌入式设备上运行的细粒度分析,为更先进、更实用的 FGIA 提供了大量研究工作。