50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

多标签图像分类综述

  • 2019-11-22
  • 本文字数:4118 字

    阅读完需:约 14 分钟

多标签图像分类综述

图像分类作为计算机视觉领域的基础任务,经过大量的研究与试验,已经取得了傲人的成绩。然而,现有的分类任务大多是以单标签分类展开研究的。当图片中有多个标签时,又该如何进行分类呢?本篇综述将带领大家了解多标签图像分类这一方向,了解更具难度的图像分类。

简介

随着科学技术的进步与发展,图像作为信息传播的重要媒介,在通信、无人驾驶、医学影像分析、航天、遥感等多个领域得到了广泛的研究,并在国民社会、经济生活中承担着更加重要的角色。人们对图像研究的愈发重视,也促使计算机视觉领域迎来了蓬勃发展的黄金时代。


作为计算机视觉领域的基础性任务,图像分类是目标检测、语义分割的重要支撑,其目标是将不同的图像划分到不同的类别,并实现最小的分类误差。经过近 30 年的研究,图像分类已经成功应用至社会生活的方方面面。如今,在我们的生活中随处可见——智能手机的相册自动分类、产品缺陷识别、无人驾驶等等。



根据分类任务的目标不同,可以将图像分类任务划分成两部分:(1)单标签图像分类;(2)多标签图像分类。


单标签图像分类是指每张图片对应一个类别标签,根据物体类别的数量,又可以将单标签图像分类划分成二分类、多类别分类。如下图所示,可以将该图的标签记为海洋,通过单标签图像分类我们可以判定该图像中是否含有海洋。


然而,现实生活中的图片中往往包含多个类别的物体,这也更加符合人的认知习惯。我们再来观察下图,可以发现图中不仅包含海洋,还包括了海豚。多标签图像分类可以告知我们图像中是否同时包含这些内容,这也能够更好地解决实际生活中的问题。


传统机器学习算法

机器学习算法主要包括两个解决思路:


(1) 问题迁移,即将多标签分类问题转化为单标签分类问题,如将标签转化为向量、训练多个分类器等;


(2) 根据多标签特点,提出新的适应性算法,包括 ML-KNN、Ranking SVM、Multi-label Decision Tree 等。现对其中具有代表性的算法进行总结。

问题迁移

问题迁移方法的主要思想是先将多标签数据集用某种方式转换成单标签数据集,然后运用单标签分类方法进行分类。该方法有可以包括基于标签转换和基于样本实例转换。

基于标签转换

针对每个标签,将属于这个标签的所有实例分为一类,不属于的分为另一类,将所有数据转换为多个单标签分类问题(如下图)。典型算法主要有 Binary Relevance 和 Classifier Chain 两种。


基于样本实例转换

这种方法是将多标签实例分解成多个单标签实例。如下图所示。实例 E3 对应标签 y3 和 y4,则通过分解多标签方法法将 E3 分解成单独选中标签 y3 和 y4 的实例,然后对每一个标签作单独预测。


适应性方法

如上文所述,新的适应性算法是根据多标签分类的特殊性,改进现有的单标签分类算法,主要包括以下三种:


ML-KNN



ML-KNN 由传统的 KNN 算法发展而来。首先通过 KNN 算法得到样本最接近的 K 个邻近样本,然后根据 K 个邻近样本的标签,统计属于某一标签的邻近样本个数,最后利用最大后验概率原则(MAP)决定测试样本含有的标签集合。


Rank SVM



Rank SVM 是在 SVM 的基础上,加入 Ranking Loss 损失函数和相应的边际函数作为约束条件,并扩展目标函数而提出的一种多标签学习算法。该算法的简要思路是:首先定义函数 s(x)是样本 x 的标签集的规模大小,然后定义 rk(x)=wkTx+bk,如果求得的 rk(x)值在最大的 s(x)个元素(r1(x),…rQ(x))之间,则认为该样本 x 选中该标签 k,否则就没被选中。在求解过程中定义新的排序函数 rk(x)-rl(x)≥1,其中 k 表示被样本 x 选中的标签,l 表示没有被选中的标签,并基于这个新的排序函来大间隔分类器,同时最小化 Ranking Loss,从而推导出适合多标签分类的目标函数和限制条件。


Multi-label Decision Tree



该算法采用决策树技术处理多标签数据,利用基于多标签熵的信息增益准则递归地构建决策树。树形结构包括非叶结点、分支、叶节点。决策树模型用于分类时,特征属性用非叶节点表示,特征属性在某个值域上的输出用非叶节点之间的分支表示,而类别则用叶节点存放。


计算思想如下:首先计算每个特征的信息增益,挑选增益最大的特征来划分样本为左右子集,递归下去,直到满足停止条件,完成决策树的构建。对新的测试样本,沿根节点遍历一条路径到叶子节点,计算叶子节点样本子集中每个标签为 0 和 1 的概率,概率超过 0.5 则表示含有该标签。当遍历所有路径到底不同的叶节点之后,则可判断涵盖的所有标签信息。


除了上述三类主要算法外,还包括诸多以单标签分类进行改进的算法,在此不再赘述。

深度学习算法

深度学习的发展带动了图像分类精度的大幅提升,神经网络强大的非线性表征能力可以在大规模数据中学习到更加有效的特征。近年来,多标签图像分类也开始使用深度学习的思想展开研究。



魏云超等在程明明教授提出的 BING 理论基础上,提出了 Hypotheses-CNN-Pooling。首先对每张图片提取含有标签信息的候选区域(如上图中的 Hypotheses Extraction 过程),然后将每个候选区域送入 CNN 进行分类训练,最后利用 cross-hypothesis max-pooling 融合所有候选区域的分类结果,从而得到多个标签信息完整的图片。



CNN 具有强大的语义信息提取能力,而 RNN 则可以建立信息之间的关联。根据这一理论观点,Jiang Wang 等提出了 CNN-RNN 联合的网络结构。首先利用 CNN 对输入图像进行训练,得到相应的特征,然后将图片对应的特征投影到与标签一致的空间中,在该空间利用 RNN 进行单词的搜索训练。该算法充分考虑了类别之间的相关性,可以有效对图像中具有一定关系的标签进行识别。



在 CNN-RNN 结构的基础上,后续文章又加入 Regional LSTM 模块。该模块可以对 CNN 的特征进行导向处理,从而获取特征的位置信息,并计算位置信息和标签之间的相关性。在上文的结果上进一步考虑了特征、位置和标签之间潜在的依赖关系,可以有效计算图片中多个标签同时存在的可能性,并进行图片的分类。


最近,诸多基于 image-level 进行弱监督分割研究的文章,充分利用了多标签分类网络的信息。其主要思想是将标签统一处理为向量形式,为每幅图片构建一个维度为 1xN 的矩阵标签(如[0,0,0,1,1,0]形式),并采用专门的损失函数(Hanming loss、Ranking loss 等)进行训练。这一方法成功地将多标签的复杂问题,转化为单标签问题,从而可以利用传统的分类网络进行训练。


多标签图像分类的相关算法仍然层出不穷,但不论是基于机器学习还是基于深度学习的算法,都有其优势和不足,如何根据实际应用需求选用合适的算法,才是我们应当关注的重点内容。

评价指标

单标签分类中通常采用准确率(Precision),召回率(Recall)、F 值(F-measure)和 AUC 曲线对分类结果进行评价。然而,在多标签分类中一个图片与多个标签同时关联,其复杂程度远远高于单标签分类。因此,在继承单标签分类评价指标的基础上,许多关于多标签分类的评价指标也被提出。在这里只介绍多标签分类常用的指标,有关单标签分类的指标不再赘述。

平均准确率(AP)和平均准确率均值(mAP)


同单标签分类一样,当一张图片中的所有标记均预测正确时,准确率才可以置 1,否则置零。每个类别下的标签分别进行计算后,取其平均值即可获得平均准确率,对所有平均准确率取均值即可获得平均准确率均值。平均准确率可以衡量模型在每个类别的好坏程度,而平均准确率均值则衡量的是在所有类别的好坏程度。

汉明距离


将预测的标签集合与实际的标签集合进行对比,按照汉明距离的相似度来衡量。汉明距离的相似度越高,即汉明损失函数越小,则模型的准确率越高。


错误率



1-错误率


用来计算预测结果中排序第一的标签不属于实际标签集中的概率。其思想相当于单标签分类问题中的错误率评价指标。1-错误率越小,说明预测结果越接近实际标签,模型的预测结果也就越好。


覆盖率



覆盖率用来度量“排序好的标签列表”平均需要移动多少步数,才能覆盖真实的相关标签集合。对预测集合 Y 中的所有标签{y1,y2,… yi … yn}进行排序,并返回标签 yi 在排序表中的排名,排名越高,则相关性越差,反之,相关性越高。


排序损失



排序损失计算的是不相关标签比相关标签的相关性还要大的概率。

数据集

高质量的数据集是图像分类的基础,更是关键所在。随着人们对数据质量的重视程度越来越高,如今已有诸多完备的多标签图像分类数据集。


Pascal VOC

Pascal VOC 数据集的主要任务是在真实场景中识别来自多个类别的目标。该数据集共有近两万张图片,共有 20 个类别组成。Pascal VOC 官方对每张图片都进行了详细的信息标注,包括类别信息、边界框信息和语义信息,均保存在相应的 xml 格式文件中。通过读取 xml 文件中的项,我们可以获取到单张图片中包含的多个物体类别信息,从而构建多标签信息集合并进行分类训练。

COCO

COCO(Common Objects in Context)数据集由微软公司赞助搭建。该数据集包含了 91 个类别,三十余万张图片以及近二百五十万个标签。与 Pascal VOC 相类似,COCO 数据的标注信息均保存在图片对应的 json 格式文件中。通过读取 json 文件中的 annotation 字段,可以获取其中的 category_id 项,从而获取图片中的类别信息。同一 json 文件中包含多个 category_id 项,可以帮助我们构建多标签信息。COCO 数据集的类别虽然远远大于 Pascal VOC,而且每一类包含的图像更多,这也更有利于特定场景下的特征学习。


除了上述两个个主流数据集之外,比较常用的还包括 ImageNet 数据集、NUS-WIDE 数据集。近年来,诸多公司、科研机构也提出了诸多全新的数据集,如 ML-Images 等。这些标注完善的数据,为多标签图像分类的研究提供了有力的支持,同样也为图像处理领域的发展做出了巨大贡献。

多标签图像分类面临的挑战

(1) 多标签图像分类的可能性随着图片中标签类别的增加呈指数级增长,在现有的硬件基础上会加剧训练的负担和时间成本,如何有效的降低信息维度是面临的最大挑战。


(2) 多标签分类往往没有考虑类别之间的相关性,如房子大概率不会出现老虎、海洋上不太可能出现汽车。对于人类来说,这些均是常识性的问题,但对于计算机却是非常复杂的过程,如何找到类别之间的相关性也能够更好的降低多标签图像分类的难度。


原文链接


https://mp.weixin.qq.com/s/6K4tXPlYLaXhexh6gElP5Q


作者介绍


郭冰洋,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。


2019-11-22 22:213058
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 596.5 次阅读, 收获喜欢 1982 次。

关注

评论

发布
暂无评论
发现更多内容

[ Kitex 源码解析] 函数式编程

baiyutang

golang 微服务 Go 语言 11月日更

flutter 开发中 vscode 插件推荐 3

坚果

flutter 11月日更

部署Apollo

小鲍侃java

11月日更

论文解读丨文本行识别模型的再思考

华为云开发者联盟

数据集 文档 文本 文本识别 语言模型

建设区块链基础设施,加速区块链等新技术与传统行业深度融合发展

CECBC

SAP UI 搜索分页技术

汪子熙

JavaScript Web SAP 11月日更

从原理带你掌握Spring MVC拦截处理器知识

华为云开发者联盟

Spring MVC 拦截器 拦截处理器 HTTP请求

研发效能提升的八项实践建议

博文视点Broadview

Java编程中忽略这些细节,Bug肯定找上你

华为云开发者联盟

Java 编程 对象 垃圾回收 switch语句

数字藏品是什么?有风险吗?谁来监管?

CECBC

提升RTC音频体验 - 从搞懂硬件开始

Wilber

音视频 RTC 3A 音频技术 音频3A

【LeetCode】整数替换Java题解

Albert

算法 LeetCode 11月日更

【高并发】ScheduledThreadPoolExecutor与Timer的区别和简单示例

冰河

Java 并发编程 多线程 高并发 异步编程

dart系列之:创建Library package

程序那些事

flutter dart 程序那些事 11月日更

WebRTC DTLS | 谈谈 DTLS Fragment

泰一

DTLS

明道云初学者如何速成报表管理系统

明道云

货币“大动作”,中国数字货币DCEP即将落地!

CECBC

Android C++系列:Linux文件系统(一)

轻口味

c++ android jni 11月日更

前端开发:Node版本引起的报错问题

三掌柜

11月日更

【Flutter 专题】04 图解第一个程序遇到的安装依赖问题

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Vue进阶(贰佰):前端UI框架介绍

No Silver Bullet

Vue UI 11月日更

北京主题展|2022第十五届北京国际物联网展览会

InfoQ_caf7dbb9aa8a

北京智博会主题展|2022第十五届北京国际物联网展览会

InfoQ_caf7dbb9aa8a

Hi,Contributor,有一份专属周边礼包等你领取!

SphereEx

开源社区 ShardingSphere SphereEx Contributor 周边

精选案例 | YRCloudFile 引领自动驾驶存储技术新趋势

焱融科技

自动驾驶 云计算 分布式 高性能 文件存储

在浏览器里使用 SAP GUI

汪子熙

SAP abap SAPGUI 11月日更

复杂JSON结构创建语法

FunTester

Java json 接口测试 测试开发 FunTester

只需10分钟,让你的企业应用具备OCR能力

明道云

Java将增加虚拟线程,挑战Go协程

编程宝库

Java golang 并发

测试左移实践介绍

刘冉

TDD 自动化测试 测试驱动开发 测试左移 ATTD

直播 | 大数据能力体系构建的技术方法全在这了!

百度开发者中心

大数据 百度 直播 开发者沙龙

多标签图像分类综述_AI&大模型_郭冰洋_InfoQ精选文章