背景技术
图像分类是计算机视觉领域的一个经典任务。而细粒度图像分类是指在区分大类别的基础上,对子类别进行更精细的划分,因此也被称为子类别分类(例如区分不同品种的狗、不同种类的鸟和不同种类的花等)。细粒度图像分类无论在工业界还是学术界都有着广泛的研究需求与应用场景。例如,笔石分类可以用于支持页岩气识别,有可能提高页岩气勘探的效率(Zou C, Gong J, Wang H, et al. Importance of graptolite evolution andbiostratigraphic calibration on shale gas exploration[J]. China PetroleumExploration, 2019.)。但由于子类别之间的差异非常细微,细粒度图像分类一直以来都是一项具有挑战性的任务,尤其在包含着复杂的遗传关系和进化关系的生物图像上更明显。
细粒度图像分类任务需要回答图像中个体所属的具体子类别是什么。对于一张图像,我们首先需要对其进行特征提取,然后将提取到的特征进行处理并映射到分类空间,以得到图像属于每个类别的概率分布。相比于传统的利用人工特征的方法,卷积神经网络(Convolutional Neural Network,CNN)所提取的特征具有更强大的表示能力和区分性,并且可以进行端到端训练。因此,目前细粒度图像分类领域的主流研究都选择利用卷积神经网络CNN来提取特征并进行分类。CNN利用大量的中间层参数与输入图像进行一系列矩阵运算得到预测概率分布,然后计算其与真实标签分布之间的差异(损失),并通过梯度下降法对模型参数调优,使CNN的预测结果在训练过程中逐渐逼近真实结果。
笔石是一种古代海洋群体生物,目前它们已经灭绝,而笔石遗骸被压扁、碳化后以化石的形式保存了下来。因此,相比于传统生物图像采集自形态各异的有机生命体,笔石图像,存在着纹理不清晰、组织结构缺失、形态单一、颜色和部分纹理是虚假的等特点。而目前的先进细粒度图像分类方法大多是在已有CNN的基础上,设计一个复杂的特征提取模块来获取交互特征或定位图像中的局部区域以学习更细粒度的判别性特征。这些方法通常会大大增强网络参数量,从而可能使CNN学习到笔石图像中虚假的颜色、纹路等特征,导致分类效果不好。
在Dubey等人的研究(Dubey A,Gupta O, Guo P, et al. Pairwise confusionfor fine-grained visual classification[C]//Proceedings of the Europeanconference on computer vision (ECCV). 2018: 70-86.)中,作者计算图像之间的距离作为损失函数的正则化项,并提出当使用欧氏距离计算的图像特征之间的相似性作为交叉熵损失的正则化项时,不会使损失函数发散,相比于其他距离度量函数能使CNN获得更好的分类效果。但作者忽略了生物图像在不同分类层级的关系,对于不同类别的生物图像,它们之间的相似性与类别之间的从属关系应当是密切相关的。
发明内容
本发明针对笔石图像的分类问题,提供了一种基于层级约束的损失函数(Hierarchical Constraint Loss, HC-Loss)对细粒度生物图像,尤其是笔石图像进行分类的方法和装置。本发明采用的损失函数HC-Loss充分考虑了上述提到的细粒度图像分类领域的发展趋势以及笔石图像的特点,它利用物种之间层次化的亲缘关系来度量输入图像之间的相似性,然后将相似性作为正则化项添加到损失函数中,可以在反向传播的过程中降低CNN的参数量,以防止CNN过度关注两张相似但不属于同一类别的图像之间的细节特征,能够解决小类间差异的问题。
本发明的技术方案如下:
一种基于层级约束的细粒度笔石图像分类方法,包括下列步骤:
第一步,采集笔石原始图像;
第二步,对笔石原始图像中的笔石个体进行细粒度标注;
第三步,得到表征笔石个体的笔石图像,构建笔石数据集;
第四步,利用卷积神经网络模型提取笔石图像特征,方法为:对于一张输入的笔石图像利用卷积神经网络模型的卷积、激活和池化操作来提取其特征图,获得特征向量;通过一个嵌入层将特征向量投影为一个维度为数据集类别数量的特征向量,投影后所获得的特征向量代表卷积神经网络模型对输入的笔石图像的预测向量,预测向量中的每个值代表它对应的类别的预测得分,预测得分越高表示笔石图像属于该类别的概率越大;
第五步,计算笔石图像之间的相似性并根据物种之间的亲缘关系加权,得到所有笔石图像的加权后的层级约束损失HC-Loss,方法为:
(1)对于每组笔石图像对的两张笔石图像,根据两张笔石图像中的笔石所属类别的亲缘关系来量化相似性权重,对于分别属于两个类别的笔石图像,亲缘关系越近,相似程度越大,相似性的相似性权重值设置得越大;反之,若亲缘关系越远,则相似性权重值设置得越小;
(2)在每个训练批次batch中,计算所有笔石图像的加权后的层级约束损失HC-Loss,方法为:计算每组笔石图像对中两张笔石图像的预测向量之间的欧氏距离;根据所设置的每组笔石图像对的相似性权重值,对所有组笔石图像对的相似性进行加权求和,并除以分组的数量, 得到所有笔石图像的加权后的层级约束损失HC-Loss;
第六步,计算用来表征卷积神经网络模型的预测概率分布和图像的真实标签分布之间的差异的交叉熵损失CE-Loss;
第七步,以层级约束损失HC-Loss和交叉熵损失CE-Loss的加权和作为卷积神经网络模型在训练阶段的总损失函数;
第八步,卷积神经网络模型训练。
进一步地,第一步中,所采集的笔石原始图像包括覆盖各科、属和种的高分辨率图像。
进一步地,第三步中,根据标注结果对笔石原始图像进行像素级裁剪、标注框裁剪和数据增强,得到表征笔石个体的笔石图像。
进一步地,第四步按照下列步骤执行:对于一张输入的笔石图像
,利用卷积神经网络模型中的卷积、激活和池化操作来提取关于
的特征图
,设
的尺寸为
,其中
、
和
分别表示特征图的通道数、高度和宽度;将特征图
展平为一个维度为
的特征向量,并通过一个嵌入层将其投影为一个
维度的特征向量,其中
代表数据集的类别数量,而所述的嵌入层通过全连接层来实现,最终获得的图像的特征向量代表卷积神经网络模型对输入图像
的预测向量。
进一步地,一组笔石图像对所包含的两张笔石图像的预测向量之间的欧氏距离:
其中,
为一组笔石图像对,
表示从卷积神经网络模型中提取到的关于笔石图像
的一个预测向量,而
是指预测向量中的第
个元素,
代表欧氏距离。
具体此,第五步中,根据类别和亲缘关系设置一组笔石图像对的相似性权重值的方法为:
如果一组笔石图像对的两张笔石图像属于同一类别且最低公共父类别在种这一层级,则将相似性权重值设为0;
如果一组笔石图像对的两张笔石图像来自同一个属的不同种且最低公共父类别在属这一层级,将相似性权重值设为1.0;
如果一组笔石图像对的两张笔石图像属于同一个科的不同属且最低公共父类别在科这一层级,将相似性权重值设为大于0.5且小于1.0的值;
如果一组笔石图像对的两张笔石图像来自不同的科且最低公共父类别在目这一层级,将相似性权重值设为大于0.1且小于0.3的值。
第五步中,如果一组笔石图像对的两张笔石图像属于同一个科的不同属且最低公共父类别在科这一层级,将它们的相似性权重值设为0.6。
第五步中,如果一组笔石图像对的两张笔石图像来自不同的科且最低公共父类别在目这一层级,将相似性权重值设为0.2。
本发明同时提供一种基于层级约束的细粒度笔石图像分类装置,所述装置包括:处理器和存储器,所述存储器中存储有程序指令,所述处理器调用存储器中存储的程序指令以使装置执行所述的方法步骤。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时使所述处理器执行所述的方法步骤。
具体实施方式
为使本发明的技术方案更加清楚,下面结合附图和实施例对本发明做进一步阐述。
本发明受到以下先验知识的启发:生物体天生具有能够在不同层次上进行分类的属性,在分类层级中,同属于一个父类别的子类别个体之间具有相似的形态特征,并且相似程度通常随着它们的最低公共父类别的级别降低而增加。因此,相比于目前先进的细粒度图像分类方法,本发明能够在笔石图像上获得更高的分类准确率,并且同样适用于其它生物图像。此外,本发明在CNN训练阶段不会引入额外参数,并能够附加在任意CNN上进行端到端训练。图1是笔石数据集的构建流程,在流程图里,前两步都是对笔石原始图像的处理,经过第三步的裁剪后,就得到了表征笔石个体的笔石图像,再经过数据增强构建笔石数据集)。本发明按以下步骤具体实现:
第一步,构建笔石数据集。
(1)笔石图像采集和细粒度标注。
所有笔石原始图像均采集自存放于中国科学院南京地质古生物研究所的1,565块化石标本,笔石图像又称为笔石化石图像。最终总共采集了40,597张笔石原始图像,其中包括20,644张单反图像(每张分辨率为4912*7360像素)和19,953张显微镜图像(每张分辨率为2720*2048像素)。然后对数据集进行清洗,删除了其中5,977张低质量笔石原始图像。最终,数据集保留了34,613张经过清洗的笔石原始图像,覆盖了15个科、42个属和113个属种。图像采集完成后,标注员使用COCO Annotator(一款开源的图像标注工具)对经过清洗的笔石原始图像中的笔石个体进行像素级别的标注。
(2)笔石图像裁剪与数据增强。
考虑到化石受到自然界的风化侵蚀等原因,笔石的组织结构和纹理特征被破坏得比较严重,存在着特征缺失和不易分辨的问题,我们首先根据标注结果对所有笔石原始图像进行了像素级裁剪,以提升CNN的分类准确率。然后由于笔石原始图像的分辨率很高,而部分笔石个体的所占比例过小,又对所有笔石原始图像进行标注框裁剪,以将笔石个体缩放到合适的比例,从而得到表征笔石个体的笔石图像。此外,由于笔石原始图像是基于标本采集的,因此采集自同一块标本的不同笔石原始图像在经过上述两步裁剪后可能会出现十分相似的情况,因此对笔石图像又进行了数据增强,包括随机旋转、随机翻转、随机平移、随机缩放等操作,以增强数据集中图像的多样性,从而构建笔石数据集。
(3)笔石数据集划分
由于笔石原始图像是基于标本采集的,因此在同一块标本上采集到的不同笔石原始图像具有相似的视觉内容,它们仅在角度、空间位置和个体尺寸上有所不同。因此,在划分笔石数据集时没有进行随机选择,而是遵循以下原则:属于同一块标本的笔石图像不能同时存在于训练集和测试集,它们应当被划分在一起。最终,我们划分的测试集包含了8,454张笔石图像,约占数据集图像总数的24%,而训练集包含26,159张笔石图像,约占笔石数据集图像总数的76%。
第二步,利用CNN提取笔石图像特征。
如图3所示,对于一张输入的笔石图像
,我们利用CNN中一系列的卷积、激活和池化操作来提取关于
的特征图(Feature map)
。设
的尺寸为
,其中
、
和
分别表示特征图的通道数(Channel)、高度(Height)和宽度(Weight)。然后,我们将特征图展平(flatten)为一个维度为
的特征向量,并通过一个嵌入层(Embedding Layer)将其投影为一个
维度的特征向量。其中
代表数据集的类别数量,而嵌入层在我们的工作中通过一个全连接层来实现。最终获得的图像的特征向量也被称为logits,代表卷积神经网络模型对输入的笔石图像的预测向量,预测向量中的每个值代表它对应的类别的预测得分,预测得分越高表示笔石图像属于该类别的概率越大。
第三步,计算笔石图像之间的相似性并根据物种之间的亲缘关系加权。
如图4中的HC-Loss的具体计算流程所示:
(1)在一个batch中,设batch size的大小为
,我们将所有笔石图像划分为
组,
设为偶数。然后,对于每组笔石图像对
,利用欧氏距离来计算它们特征之间的相似性作为约束:
其中,
表示从CNN中提取到的关于笔石图像
的一个特征向量,而
是指特征向量中的第
个元素。
代表欧氏距离;
(2)我们根据两张笔石图像所属类别的亲缘关系来量化相似性的权重。对于分别属于两个类别的笔石图像,它们的亲缘关系越近,通常相似程度越大,则CNN越容易关注它们的细节特征从而导致过拟合,因此我们将相似性的相似性权重值设置得越大以约束模型。反之,若亲缘关系越远,则相似性权重值设置得越小。如图2中的笔石数据集的分类层次所示,设
表示一个batch中分别属于类别
和类别
的一组笔石图像对,则它们可能具有以下四种亲缘关系之一:
(a)如果
和
属于同一个类别
,它们最低公共父类别在种这个层级,则将相似性权重值
设为0。
(b)如果
和
来自同一个属的不同种,即它们的最低公共父类别处在属这个级别,将相似性的相似性权重值
设为1.0。
(c)如果
和
属于同一个科的不同属,即它们的最低公共父类别在科这一层次,将它们的相似性权重值
设为0.6,小于1.0。
(d)如果
和
来自不同的科,即它们的最低公共父类别在目这一层级,将相似性权重值
设为0.2。
最终,在每个batch中,对于所有笔石图像的加权后的层级约束损失(HC-Loss)计算为:
其中,
代表一个batch中所有笔石图像,它们被划分为
组笔石图像对(
)。而
指的是根据类别
和类别
在分类层次中的亲缘关系而确定的相似性权重值。
第四步,计算层级约束损失和交叉熵损失的加权和。
当使用HC-Loss时,CNN在训练阶段的总损失函数
由两部分构成:一是交叉熵损失(CE-Loss)即
,二是层级约束损失(HC-Loss)即
:
其中,
代表卷积神经网络模型中的所有参数。
是一个超参数,用于控制层级约束损失
的权重。而交叉熵损失计算为:
其中,
表示真实标签分布,S表示一个batch中所有输入的笔石图像。而
表示CNN模型对于笔石图像
的预测概率分布中类别
的概率值。
是通过Softmax函数计算得到的。
在训练阶段,在CNN反向传播的过程中使用梯度下降法来优化模型参数。如果输入数据中包含具有相似视觉内容但属于不同类别的笔石图像时,利用层级约束损失量化它们之间的相似性并作为一个约束项来抑制模型过度学习它们之间的细节特征,从而防止过拟合,以提升模型的分类准确率。
第五步,测试本发明的分类效果
我们首先测试了目前先进的细粒度图像分类方法在笔石数据集上的分类效果。如图5所示,这些先进的方法在笔石数据集上的分类效果大都不如它们所使用的基础CNN。这是因为添加额外的特征学习模块或者设计复杂的神经网络结构这两种主流方法会使模型的参数量过大而导致过拟合的问题,不适用我们构建的笔石数据集。
相比之下,我们提出的层级约束损失能够在不增加额外训练参数的情况下有效地提高不同架构CNN对笔石图像的分类准确率,且均高于目前先进方法的分类结果。如图6所示,当使用Resnet50网络作为基础CNN时,HC-Resnet50获得了63.39%的分类准确率,相比于只用Resnet50网络准确率提升了0.61%。这个结果优于上述提到的所有以Resnet50为基础模型的先进方法所获得的分类结果。同样的,当以VGG16网络为基础CNN时,HC-VGG16获得了61.13%的分类准确率,相比于VGG16准确率提高了1.18%,并且同样高于上述提到的所有以VGG16为基础CNN的先进方法获得的结果。此外,当使用Inception-v3网络作为HC-Loss的基础CNN时,HC-Inception-v3能够获得64.19%的分类准确率,相比于Inception-V3准确率得到了0.57%的提升。
层级约束损失不仅能提升模型在种这个层级上的分类效果,还能显著提升CNN在科和属这两个分类层级上的分类结果,如图7所示,HC-Loss在不同分类层级上均能提升三种基础CNN的分类准确率。
在生物细粒度图像数据集上,层级约束损失同样能使不同架构的CNN在分类准确率上得到显著提升。如图8所示,HC-Densenet161在CUB-200-2011数据集上获得了88.06%的分类准确率,相比于Densenet161取得了2.73%的显著提升。另外,HC-Loss使Resnet50、VGG16和Inception-v3在分类准确率上分别获得了1.99%、0.86%和1.15%的提升。这些结果表明,层级约束损失不仅可以提高卷积神经网络对于不同生物图像的分类性能,而且还具有适用性,可以应用在各种不同架构的基础模型上,并且均能获得不同程度的分类准确率的提升。
作为相对应的另一种实施例,及对应的装置方面的实施例。其硬件结构如图9所述。
图9中,处理器1和存储器2的执行主体可以是计算机、单片机、微控制器等具有计算功能的器件,具体实现时,本发明实施例对执行主体不做限制,根据实际应用中的需要进行选择。
存储器2和处理器1之间通过总线3传输数据信号,本发明实施例对此不做赘述。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,存储介质包括存储的程序,在程序运行时控制存储介质所在的设备执行上述实施例中的方法步骤。
该计算机可读存储介质包括但不限于快闪存储器、硬盘、固态硬盘等。
这里需要指出的是,以上实施例中的可读存储介质描述是与实施例中的方法描述相对应的,本发明实施例在此不做赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。
计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质或者半导体介质等。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
这里需要指出的是,以上实施例中的装置描述是与实施例中的方法描述相对应的,本发明实施例在此不做赘述。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。