背景
2019年6月18日,京东AI研究院在美国长滩召开的计算机视觉顶级会议CVPR 2019上获得视频动作识别、商品图片识别、精细粒度蝶类图片识别3项学术比赛第一。此外,京东AI研究院还在多人人体解析、菜品类图像识别竞赛中获得第二名,其中多人人体解析比赛是继在2018年获LIP单人及多人姿态估计赛道两项第一后,再次获奖。
京东AI研究院在精细图像识别 (Fine-Grained Visual Categorization, FGVC) 学术比赛中获得2项冠军、1项亚军。FGVC学术竞赛目前已经举办了六届,是计算机视觉领域中最为权威的精细图像识别比赛。此次比赛中,京东AI研究院分别在商品图片识别和蝶类图片识别的竞赛中获得第一名,其中在商品图片识别竞赛中战胜了美团点评和东信北邮。此外,京东AI研究院在菜品类图像识别中取得了第二名。
商品图像识别比赛由码隆科技、Google Research、FGVC6 联合主办。比赛共涵盖2019类SKU超过一百万图像数据,是 CVPR 迄今数据规模最大、种类最多的商品识别竞赛。商品数量庞大、品类众多,许多品类之间的区别十分微小,且训练数据均直接源自各大电商网站,包含大量噪声数据。京东AI研究院所采用的技术方案是基于自研的全新精细图像分类算法,该算法通过对原始图像输入按块进行打乱,进而“破坏”图像中的结构信息,然后训练神经网络识别被 “破坏” 局部区域顺序的图像,强迫神经网络抓住重点视觉区域,增强网络对具有区分度局部细节的特征学习能力。
下面将对该方法进行学习以及复现。
Paper
原论文:Destruction and Construction Learning for Fine-grained Image Recognition
源代码:JDAI-CV/DCL
目标局部(part)的精细特征表示在精细识别(fine-grained recognition)中起着关键作用。例如,专家凭借其专业知识可以仅根据目标局部特征来区分细微差别的目标。
本文提出了一种新的“破坏和构建学习”(Destruction and Construction Learning,DCL)方法来增加精细识别的难度,强行让分类模型获取专家的知识。除了标准分类骨干网络之外,引入另一个“破坏和构建”分支先按规则“破坏”然后“重建”输入图像,用于学习具有判别性的区域特征。具体来说,对于“破坏”部分,首先将输入图像划分为局部区域,然后通过区域混淆机制(Region Confusion Mechanism, RCM)把它们打乱。为了能正确地识别这些被破坏的图像,分类网络必须更多地关注判别性的区域来发现差异。为了补偿RCM引入的噪声,使用能区分原始图像和破坏图像的对抗性损失,以抑制RCM引入的噪声分布;对于“构造”部分,使用一个区域对齐网络对打乱的局部区域之间的语义相关性建模,用于恢复局部区域的原始空间分布。通过参数共享的联合训练,DCL向分类网络提供更多有判别性的局部细节。
实验结果表明,本文提出的框架在三个标准数据集上实现了最先进的性能。此外,该方法在训练期间不需要提供任何外部知识,并且在预测时除了标准分类网络外,没有计算开销。
概述
在过去十年,通用目标识别借助大规模标注数据和复杂的模型设计取得了稳步进展。 然而,识别精细物体类别(例如,鸟类、蝴蝶、汽车模型、SKU级商品)仍然是一项具有挑战性的任务。
差异细微的物体在视觉上往往类似粗略一瞥,但它们可以通过有区别的局部区域细节来正确识别。所以从有区别的目标局部学习判别特征表示在精细图像识别中起关键作用。 现有的精细识别方法可以大致分为两类:一种(图2 a)是首先定位有判别性的目标局部区域,然后根据这些判别区域进行分类。这种两步法需要在目标或目标局部上添加额外的边界框标注,这些标注的成本往往都很高。另一种(图2 b)试图以无监督的方式通过注意力机制自动定位判别区域,因此不需要额外的注释。 然而,这些方法通常需要额外的网络结构(例如,注意力机制),因此为训练和预测阶段引入了额外的计算开销。
本文提出了的方法,名为“破坏与构造学习”(DCL),如图1 c 所示。 除了标准分类骨干网络之外,引入了DCL分支来自动学习判别区域。 首先破坏输入图像以强调有判别性的局部细节,然后对局部区域之间的语义相关性建模以重建图像。 一方面,DCL自动定位判别区域,因此在训练时不需要额外的标注。 另一方面,DCL结构仅在训练阶段采用,因此在预测时不引入计算开销。
对于“破坏”,使用一种区域混乱机制(RCM)将输入图像划分为局部图块然后随机打乱(图3)。精细识别中局部细节比全局结构起着更重要的作用,因为来自不同精细类别的图像通常具有相同的全局结构或形状,仅在局部细节上不同。放弃全局结构保持局部细节可以迫使网络关注具有判别性的局部区域。图像中的局部区域被打乱,就会忽略对精细识别不重要的无关区域,并将迫使网络基于判别性的局部细节对图像进行分类。使用RCM,图像的视觉外观已经大大改变。如图3的底部,尽管识别变得更加困难,但鸟类专家仍然可以轻松发现差异。类似地,神经网络需要学习专家的知识以对破坏的图像进行分类。
同时,RCM引入了几种视觉噪声模式,如图3所示。为了抵消这种负面影响,使用对抗性损失来区分原始图像和被破坏的图像。 结果是可以最小化噪声的影响,仅保留有益的局部细节。从概念上讲,对抗性损失和分类损失以对抗的方式运行,以便从“破坏”中更加细致的学习。
对于“构造”,引入区域对齐网络(region alignment network)以恢复原始区域分布,作用与RCM相反。该网络需要理解每个区域的语义,包括那些有判别性的区域。 通过“构造”,可以对不同局部区域之间的相关性进行建模。
相关工作
精细图像识别任务的研究主要有两个方向。一是直接从原始图像学习更好的视觉表示,另一个是使用基于局部/注意力的方法来获得图像中的判别性区域并学习基于这些区域的特征表示。
视觉表示
深度学习的成功,使精细识别方法从基于手工特征的多阶段框架转变为使用CNN特征的多阶段框架。二阶双线性特征相互作用被证明对视觉表征学习有显着改善。深度度量学习也用于捕捉细微的视觉差异。 使用这些方法的神经网络模型往往有复杂的网络计算。
局部定位
这种方法的理论是,目标局部对于学习精细分类的判别特征至关重要。与早期的基于局部/注意力的方法相比,一些最近的方法往往是弱监督的,并且不需要局部或关键区域的标注。但是,区域之间的相关性有助于深入理解目标,以往的研究通常会忽略它。研究表明,利用区域的位置信息可以增强神经网络的视觉表示能力,从而提高分类和检测任务的性能。
本文提出的方法与先前工作的区别主要有三个方面:
- 通过使用 RCM 训练分类器,除目标的分类标签外不需要任何先验知识就可以自动检测判别性的区域。
- 不仅考虑了精细的局部区域特征表示,而且考虑了整个图像中不同区域之间的语义相关性。
- 计算高效,在预测时除了骨干分类网络外没有额外的计算开销。
网络架构
DCL 框架由四部分组成,如图4所示。注意:在预测时只需要 “classification network”。
Destruction Learning
对于精细图像识别,局部细节比全局结构重要得多。在一般情况下,不同的精细类别通常具有相似的全局结构,仅在局部细节上有所不同。本文的工作通过打乱局部区域来小心地破坏全局结构,以便更好地识别判别区域并学习判别特征。 同时为了防止网络学习破坏全局结构引入的噪声模式,使用对抗性损失来抑制RCM引入的噪声模式。
RCM
对比自然语言处理,打乱句子中的词序将迫使神经网络聚焦判别性单词忽略不相关单词。类似地,如果图像中的局部区域被“打乱”,则迫使神经网络学习判别区域的细节。
如图3所示,RCM 旨在破坏图像局部区域的空间分布。给定输入图像 ,首先将图像均匀地划分为 个子区域,每个子区域由 表示,其中 分别是水平和垂直索引,。RCM将这些分块的局部区域混合在它们的2D邻域中。对于第 行的子区域 ,会生成长度为 的随机向量 ,其中第 个元素 , 是服从均匀分布的随机变量, 是定义邻域范围的可调参数 。这样通过对数列 重新排序得到第 行区域的新排列 ,同时可以验证:
同理,我们可以在列上运用 来对区域重新排列,同时也可以验证:
这样就把原图中的区域坐标由 转换到了 :
这种打乱方法破坏全局结构的同时能确保局部区域在其邻域内以可调整的大小随机变动。
原始图像 ,其破坏版本 及表明其真实精细类别的 one-vs-all 标签,这三个部分在训练时会被组合到一起 。 分类网络会将输入图像映射到概率分布向量 ,其中 是分类网络中的所有层的可学习参数。分类网络的损失函数 可以写成:
其中 是所有训练集。
由于全局结构已被破坏,为了识别这些随机打乱的图像,分类网络必须找到判别区域并学习类别之间的细微差异。
解释:输入图片的标签 值为1(图片属于该类),0(不属于该类),要么是这一类要么是其他类。当属于该类时,需要 和 都接近于1损失才会很小。当二者都接近1时, 可以保证分类网络能学习到原输入图片正确的特征,但是 不一定能保证从被破坏的图片学习到正确的特征,因为 RCM 引入了很多噪声,所以分类网络可能认为被破坏的图片中只要符合某些噪声分布就属于该类,这样就会导致对噪声的过拟合。当不属于该类时就不用计算了。
Adversarial Learning
使用 RCM 破坏图像并不总是有益的。 例如在图3中,由于 RCM 打乱了局部区域所以引入了干扰的视觉模式,从这些噪声视觉模式中学习的特征对分类任务是有害的。 为此,文中提出了另一种对抗性损失 ,以防止过拟合RCM引起的噪声模式进入特征空间。
考虑把原始图像和被破坏的图像作为两个域,对抗性损失和分类损失以对抗方式工作:(1)保持域不变模式;(2)抑制 和 之间的特定域模式。前者用于区分两种域,后者用于消除两种域之间的差异。
给每张图片贴上 one-hot 标签向量 ,表示图像是(0)否(1)被破坏过。这样可以在DCL框架中添加判别器(discriminator)作为新分支,通过以下方式判断图像 是否被破坏过:
其中, 是从主干分类网络的第 m 层输出的特征向量, 是分类网络的从第 1 层到第 m 层的可学习参数, 是一个线性映射。判别器网络的损失 计算方式为:
解释
这个其实就是生成对抗网络GAN里面的判别器所做的,这里的判别器是用来判别破坏了的图像和原始图像,然后计算损失。注意判别器的计算公式的输入是分类网络从图片(原始/破坏)学习到的特征向量。输入从原输始图片学到的特征,判别器可以判断出这是原输入图片;如果从被破坏的图片学习到很多噪声特征,那么从被破坏的图片学到的特征和从原始图片学到的特征肯定是不同的,判别器就会判断出这是被破坏的图片,这是由于 RCM 引入的噪声的影响。现在想要的是判别器不能判别出哪个是破坏了的图像哪个是原始图像,即意味着从原输入图片和被破坏的图片学到的特征是很接近的,这样也就做到了自动忽略噪声的影响。让对抗性损失最小的话,就是让 和 都接近于1,这样就达到了去除特征域中噪声视觉模式的目的。对抗性损失和分类损失对抗的过程中,就会迫使分类网络既要学到判别性的特征同时又不能学习噪声特征。
为了更好地理解对抗性损失如何调整特征学习,作者进一步可对主干分类网络 ResNet-50 的特征可视化,包含使用和不使用对抗性损失两种情况。 给定输入图像 ,使用 表示第 m 层的第 k 个特征图。 对于ResNet-50,取最后一个全连接层前面的层的输出特征来进行对抗性学习。 因此,第 m 个卷积层的第 k 个卷积核对应真实类别 c 的响应为 :
其中 是第 k 个特征图和对应的类别 c 之间的权重,即响应 等于第 k 个卷积核对应的特征图乘以全连接层对应 c 的权重,以此来衡量卷积核是否能把输入图像映射到 c,响应越大表明映射的可信度越高。
作者比较了不同卷积核对原始图像和破坏后的图像的响应,结果如图5的散点图所示,每个卷积核的积极响应(positive response)对应的数据点为 ,横坐标为 , 纵坐标为 。观察散点图发现经过 训练得到的特征图分布比 训练的更加紧凑,这表明不同的卷积核对原始图像和被破坏的图像的响应差不多,而被破坏的图像存在大量的噪声,即在原始图像上具有较大的响应的卷积核对由RCM引入的噪声也具有较大的响应,这就说明卷积核也学到了很多噪声的特征。比如把A,B,C可视化,发现有很多的滤波器对RCM引入的边缘型视觉模式或不相关的模式有响应,这样就会导致对原始输入图像的误判,比如输入一张背景杂乱的猫的图片可能会识别噪声模式误判成鸟。
然后作者又对 训练的分类网络得到的散点图上色,根据值
其中, 是连接特征图 和表示原始图像标签的权重, 是连接特征图 和表示破坏图像标签的权重。即判别器的结果,根据特征图判断来自原原图还是破坏的图。 衡量第 k 个卷积核倾向于原图还是破坏图像中的视觉模式,值越大表明越倾向于原图。可以看到,通过对抗性损失把对噪声视觉模式有响应的卷积核区分出来(D vs F)。图中的点可分为三部分——D:卷积核倾向于响应由RCM引入的噪声视觉模式;F:卷积核倾向于响应整体图像结构(原始图像中的特有的图像特征);E:这类滤波器最多,是原始图像和破坏图像之间的共同特征,这些局部细节被分类损失增强了。
和 共同促进“破坏”学习,要想损失最小,既不能只学习总体轮廓这些粗略的特征,也不能学习边缘型的噪声模式,只能学习二者共有的特征。因此,增强了具有判别性的局部细节,并且过滤掉了不相关的特征。
Construction Learning
考虑到图像中相关区域的组合构成了复杂多样的视觉模式,文中提出另一种学习方法来对局部区域间的相关性进行建模。具体来说,提出一种区域对齐网络(region align network),使用区域构造损失 来衡量图像中不同区域的位置精度,引导主干分类网络通过端到端训练对区域间的语义相关性进行建模。
给定图像 以及相应的破坏图像 ,位于图像 中位置 处的区域 与图像 中的区域 一致。区域对齐网络是对分类网络第 n 个卷积层的输出特征图 进行操作特征图经过 的卷积处理得到的只有两个通道的输出。然后这个输出经过 ReLU 和平均池化,得到一个大小为 的特征图。区域对齐网络的输出可以写为:
中这两个通道分别对应的是行和列位置坐标, 是区域对齐网络, 是区域对齐网络的参数。即输出的二通道的特征图的每个空间位置点预测一个区域位置,每个空间位置点有两个值分别预测区域的横纵坐标,一共有 个子区域。记对区域 预测位置为 ,对区域 的预测位置是 。这两个预测位置的真值都是 。然后计算区域对齐损失 ,定义为预测坐标与原始坐标的 距离:
区域重建损失有助于定位图像中的主要目标,并且倾向于找到子区域之间的相关性。 通过端到端的训练,区域重建损失可以帮助主干分类网络建立对目标的深层理解,并对结构信息进行建模,如目标的形状和目标各部分之间的语义相关性。
Destruction and Construction Learning
在整个DCL框架中,分类、对抗性和区域对齐损失以端到端的方式进行训练,这样网络可以利用增强的局部细节和良好建模的目标局部间的相关性来进行精细识别。 具体来说,希望最小化以下目标:
图4是DCL模型的框架结构。破坏学习有助于从判别性区域中进行学习,重建学习有助于根据区域之间的语义相关性重新布置学习到的局部细节。 因此,DCL基于来自判别区域的结构良好的细节特征得到一组复杂且多样的视觉表示。
注意:预测给定图像的类别标签时只会用到分类网络 。因此,除了基础分类网络之外,没有额外计算开销。
实验
在CUB-200-2011(关于鸟类)、Stanford Cars和FGVC Aircraft 三个标准精细识别数据集上做了实验,不使用任何边界框或者局部标注。
实现细节
- 训练标签只有图片的类别。
- 基础网络:评估方法时,使用了两种网络,Resnet-50和VGG-16,都在ImageNet上预训练。
- 数据增强:输入图像先调整为 512x512,而后随机裁剪为 448x448,随机旋转,随机水平翻转。
- 为了识别更高分辨率的图像,将VGG-16的前两个全连接层改为卷积层。
- 分类网络最后一个卷积层输出的特征图送入区域对齐网络,最后一个卷积层加平均池化得到的特征向量送入对抗性学习网络。
- RCM的区域数 N 与主干网络和输入图像尺寸有关,每个区域的高和宽要能被 32 整除(VGG和Resnet的网络步长)。为了保证区域对齐的可行性,输入图像的宽和高必须能被 N 整除,N设置为7,后面会有实验验证(448=7x64)。
- 每次训练使用180个epoch,学习率每 60 个epoch就降低为原来的十分之一。
- 测试时,只对输入图像进行中心裁剪。
性能比较
在CUB-200-2011(关于鸟类)、Stanford Cars和FGVC Aircraft三个数据集和其他方法比较,无论是需要额外边框注释还是添加其他机制的方法均被DCL超越。
本文中所有实验设置 α=β= 1。 对于 CUB-200-2011 这样的非刚性物体识别任务,不同区域之间的相关性对于深入理解目标非常重要,设置 γ= 1。而对于刚性物体识别任务,如Stanford Cars 和 FGVC-Aircraft,目标局部是具有判别性并互相补充,因此为刚性物体识别任务设置 γ= 0.01,以突出破坏学习在学习判别区域的细节视觉表示中的作用。与鸟类和汽车等不同,飞机的结构可以随着设计显着变化。例如机翼、起落架、轮子、发动机的数量等是变化的。 因此,在表1中的 FGVC-Aircraft上将 N 设置为2,以在一定程度上保留结构信息。
消融实验
使用ResNet-50作为主干网络在三个数据集中设计不同的运行方式,结果见表2。结果表明,DCL显着提高了性能。 DL引起的性能提升证明,区分噪声视觉模式、局部细节视觉模式和全局视觉模式的结构良好的视觉特征空间有利于精细识别任务。 同样,使用 CL 对目标建模形成的形状和结构可以进一步改善精细分类模型的性能。 此外,对抗性学习和区域构建是高度互补的。
讨论
1. 不同的N(RCM中的区域数)的影响
当N增加时,识别准确度先增加然后减小。 在 CUB-200-2011 和 Stanford Cars 上 N = 7时,性能最佳。 对于 FGVA-Aircraft 的实验,即使设置N = 7,仍然可以获得比最先进方法更好的性能,绝对改进率为0.5%。如果将 N 设置为小数,本文方法的优点可能会受到限制。 另一方面,如果将 N 设置得更大,则从区域学习的视觉模式将更加有限,并且区域构建网络将更难以收敛。当设置N = 1时,DCL的性能等同于ResNet-50基线。
2. 破坏图像在一个mini-batch中的比例的影响
小批次中原始图像和破坏图像的默认比率设置为1:1。表4显示了 CUB-200-2011 比率范围为 1:0 到 0:1的识别精度。如图所示,当我们将比率设置为0:1时,由于训练数据中没有全局上下文信息,性能会大幅减少。
3. 特征可视化:最后一个卷积层特征
比较基础模型和提出的方法的特征图,可以发现DCL的特征图响应更集中在判别区域。 通过不同的打乱,基于DCL的模型一致地突出显示判别区域,这证明了DCL方法的鲁棒性。
4. 目标定位
作者还使用SPN在VOC2007数据集上对弱监督目标定位任务进行了DCL测试。 选择指向定位精度(PL Acc)作为评估标准,其测量网络是否可以定位目标的正确区域。 实验结果如表5所示。 可以发现,在应用DCL后,PL Acc从87.5%提高到88.7%,这提供了另一个数据证据,即DCL有助于学习正确的区域。
5. 破坏学习时的超参数 k 的影响
k=2 时效果最好,但 k 的影响不大。
6. 模型复杂度
在训练期间,DCL仅需要简单的打乱操作(RCM)和两个轻量级网络结构(对抗性学习网络和区域对齐网络)。 对于ResNet-50 + DCL,DCL引入了8192个新参数,其参数仅比基础网络ResNet-50多0.034%。 由于DCL中只有可忽略不计的附加参数,因此网络训练效率很高。 此外,它需要的训练到收敛的迭代次数与微调基础网络时相同。
在测试期间,仅使用基础分类网络。 与ResNet-50相比,在相同的推理时间消耗下,得到了明显更好的结果(+ 2.3%),这说明本文的方法是非常实用的。
结论
提出了DCL框架:DCL中的DL增强了识别的难度,以指导网络学习细粒度识别中的专家知识。 同时CL可以对目标的局部之间的语义相关性。
方法不需额外标注信息,可端到端训练,在多个数据集上取得优越的性能。