Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【技术综述】多标签图像分类综述

【技术综述】多标签图像分类综述

作者头像
用户1508658
发布于 2019-07-27 12:15:29
发布于 2019-07-27 12:15:29
1.3K0
举报
文章被收录于专栏:有三AI有三AI

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

作者 | 郭冰洋

编辑 | 言有三

1 简介

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

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

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

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

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

2 传统机器学习算法

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

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

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

2.1 问题迁移

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

2.1.1 基于标签转换

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

2.1.2 基于样本实例转换

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

2.2 适应性方法

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

2.2.1 ML-KNN

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

2.2.2 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,从而推导出适合多标签分类的目标函数和限制条件。

2.2.3 Multi-label Decision Tree

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

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

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

3 深度学习算法

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

魏云超等在程明明教授提出的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等)进行训练。这一方法成功地将多标签的复杂问题,转化为单标签问题,从而可以利用传统的分类网络进行训练。

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

4 评价指标

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

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

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

4.2 汉明距离

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

4.3 1-错误率

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

4.4 覆盖率

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

4.5 排序损失

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

5 数据集

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

5.1 Pascal VOC

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

5.2 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等。这些标注完善的数据,为多标签图像分类的研究提供了有力的支持,同样也为图像处理领域的发展做出了巨大贡献。

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

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

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

古语有云:“纸上得来终觉浅,绝知此事要躬行”,理论知识的学习必须通过实践才能进一步强化,完成了综述内容的书写,后续将基于Pytorch框架以Pascal VOC2012增强数据集进行多标签图像分类实战,敬请期待哦

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
总结 | 优必选悉尼AI研究院何诗怡:基于课程学习的强化多标签图像分类算法
与单标签图像分类相比,多标签图像分类是一种更符合真实世界客观规律的方法,尤其在图像和视频的语义标注,基于内容的图像检索等领域有着广泛的应用。
AI科技评论
2018/07/27
8150
总结 | 优必选悉尼AI研究院何诗怡:基于课程学习的强化多标签图像分类算法
【AI有识境】如何掌握好图像分类算法?
进入到有识境界,可以大胆地说自己是一个非常合格的深度学习算法工程师了,能够敏锐地把握自己研究的领域,跟踪前沿和能落地的技术,对自己暂时不熟悉的领域也能快速地触类旁通。
用户1508658
2020/07/07
9770
【图像分类】分类专栏正式上线啦!初入CV、AI你需要一份指南针!
大家好,今天我将在有三AI开设新专栏《图像分类》。在这个专栏中,我将全方位介绍图像分类相关知识,并结合不同任务需求进行实战,和大家一同走近这看似简单却包罗万象的基础性技术,同时指导计算机视觉、深度学习领域的初学者快速、准确、全面地掌握图像分类的相关知识。
用户1508658
2019/07/27
4970
【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战
基于image-level的弱监督图像语义分割大多数以传统分类网络作为基础,从分类网络中提取物体的位置信息,作为初始标注。
OpenCV学堂
2019/07/12
4K1
【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战
语义分割技术综述_语义分割模型
综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation
全栈程序员站长
2022/09/25
1.1K0
语义分割技术综述_语义分割模型
干货——图像分类(下)
在机器学习或者深度学习领域,参数和超参数是一个常见的问题,个人根据经验给出了一个很狭隘的区分这两种参数的方法。
计算机视觉研究院
2018/09/21
3990
干货——图像分类(下)
深度学习与CV教程(2) | 图像分类与机器学习基础
本系列为 斯坦福CS231n《深度学习与计算机视觉(Deep Learning for Computer Vision)》的全套学习笔记,对应的课程视频可以在 这里 查看。更多资料获取方式见文末。
ShowMeAI
2022/05/27
1.5K0
深度学习与CV教程(2) | 图像分类与机器学习基础
图像标签背后的技术原理及应用场景
以上这些便利的功能,都使用了图像标签。它们背后的AI算法是如何读懂一张图片的呢?图像标签还有哪些应用?希望这篇文章可以回答你的疑问。
jimzyang
2020/01/19
2.6K0
图像标签背后的技术原理及应用场景
【完结】16篇图像分类干货文章总结,从理论到实践全流程大盘点!
专栏《图像分类》正式完结啦!我们从数据集展开讲解,由最基本的多类别图像分类一步步深入到细粒度图像分类、多标签图像分类,再到更加有难度的无监督图像分类,随后我们又对图像分类中面临的各种问题展开描述,较为全面的汇总了图像分类领域的相关内容。至此,我们再对整个图像分类专栏的内容进行一个大总结!
用户1508658
2019/10/14
8250
【完结】16篇图像分类干货文章总结,从理论到实践全流程大盘点!
开发 | 用 Kaggle 经典案例教你用 CNN 做图像分类!
前言 在上一篇专栏中,我们利用卷积自编码器对 MNIST 数据进行了实验,这周我们来看一个 Kaggle 上比较经典的一个图像分类的比赛 CIFAR( CIFAR-10 - Object Recognition in Images, https://www.kaggle.com/c/cifar-10),这个比赛现在已经关闭了,但不妨碍我们来去通过它学习一下卷积神经网络做图像识别的代码结构。相信很多学过深度学习的同学都尝试过这个比赛,如果对此比较熟悉的可以跳过本篇,如果没有尝试过的同学可以来学习一下哈。 整个
AI科技评论
2018/03/13
9790
开发 | 用 Kaggle 经典案例教你用 CNN 做图像分类!
CVPR 2019细粒度图像分类竞赛中国团队DeepBlueAI获冠军 | 技术干货分享
近日,在Kaggle上举办的CVPR 2019 Cassava Disease Classification挑战赛公布了最终结果,国内团队 DeepBlueAI 获得冠军。
新智元
2019/06/21
3.4K0
CVPR 2019细粒度图像分类竞赛中国团队DeepBlueAI获冠军 | 技术干货分享
【深度学习】图像语义分割
语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支,其目标是精确理解图像场景与内容。语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。如下如所示的照片,属于人的像素部分划分成一类,属于摩托车的像素划分成一类,背景像素划分为一类。
杨丝儿
2022/03/20
9.7K0
【深度学习】图像语义分割
快乐学AI系列——计算机视觉(5)图像分类和识别
传统图像分类算法的两种方法:SIFT特征+KNN分类器和HOG特征+SVM分类器。
MATRIX.矩阵之芯
2023/04/06
8020
快乐学AI系列——计算机视觉(5)图像分类和识别
最全综述 | 图像目标检测
图片分类任务我们已经熟悉了,就是算法对其中的对象进行分类。而今天我们要了解构建神经网络的另一个问题,即目标检测问题。这意味着,我们不仅要用算法判断图片中是不是一辆汽车, 还要在图片中标记出它的位置, 用边框或红色方框把汽车圈起来, 这就是目标检测问题。其中“定位”的意思是判断汽车在图片中的具体位置。
AI算法与图像处理
2019/07/11
1.6K0
最全综述 | 图像目标检测
Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛
前言 根据我个人的经验,学好AI,有五个必修:数学、数据结构、Python数据分析、ML、DL,必修之外,有五个选修可供选择:NLP、CV、DM、量化、Spark,然后配套七月在线的这些必修和选修课程刷leetcode、kaggle,最后做做相关开源实验。 今天,咱们就来看一看:如何用百行代码实现Kaggle排名Top 5%的图像分类比赛。 1、NCFM图像分类任务简介 为了保护和监控海洋环境及生态平衡,大自然保护协会(The Nature Conservancy)邀请Kaggle[1]社区的参赛者们开
用户1332428
2018/03/09
1.9K0
Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛
【技术综述】你真的了解图像分类吗?
图像分类是计算机视觉中最基础的任务,基本上深度学习模型的发展史就是图像分类任务提升的发展历史,不过图像分类并不是那么简单,也没有被完全解决。
abs_zero
2018/12/13
7620
【图像分类】 标签噪声对分类性能会有什么样的影响?
不同类型的噪声会对模型的分类性能产生什么样的影响呢,让我们一同进行实验,来探索那暗中作祟的标签噪声!
用户1508658
2019/09/25
9960
【图像分类】 标签噪声对分类性能会有什么样的影响?
基于Keras的多标签图像分类
本篇记录一下自己项目中用到的keras相关的部分。由于本项目既有涉及multi-class(多类分类),也有涉及multi-label(多标记分类)的部分,multi-class分类网上已经很多相关的文章了。这里就说一说multi-label的搭建网络的部分。之后如果有时间的时候,再说一说cross validation(交叉验证)和在epoch的callback函数中处理一些多标签度量metric的问题。
机器学习AI算法工程
2021/09/02
2K0
基于Keras的多标签图像分类
农林业遥感图像分类研究[通俗易懂]
遥感图像处理是数字图像处理技术中的一个重要组成部分,长期以来被广泛应用于农林业的遥感测绘,防灾减灾等领域。本文旨在通过深度学习技术从遥感影像中分类出农田和林业地块。手工从遥感图像中分类出农田和林业区域分类虽然准确但是效率低下,并且很多采用传统图像分割技术的方法泛化性能差,不适合场景复杂的遥感图像。经实践证明,使用深度学习技术在各种计算机视觉任务中都取得了良好的效果,因此本文首先使用先进的深度学习框架进行分类实验,例如使用PSPNet,UNet等作为分割网络对遥感图像数据集进行分类与分割训练。这些框架在ImageNet,COCO,VOC等数据集上表现很好,但是由于遥感图像数据集相对于ImageNet,COCO等数据集,不仅检测对象相对较小而且可供学习的数据集样本较少,需要针对这一特点进行优化。本文经过多次实验将高分辨率的图像切割成合适大小分辨率的图像以减小神经网络的输入,同时进行图片的预处理和数据增强来丰富学习样本。同时在真实情况下,农林区域易受到拍摄视角,光照等造成分割对象重叠,因此本文提出一种处理分割对象重叠的处理策略,来优化边界预测不准确的情况,使用该方法后准确率有明显提升。经实验证明,本文所提出的基于深度学习的农林业遥感影像分割在开源遥感图像数据集上的取得了94.08%的准确率,具有较高的研究价值 农林业遥感图像数据(图1)对于许多与农林业相关的应用至关重要。例如作物类型和产量监测,防灾减灾以及对粮食安全工作的研究和决策支持。最初,这些数据主要由政府机构使用。如今,蓬勃发展的农林业技术也需要在农场管理,产量预测和林业规划等各种应用领域进行革新。以往农林业地块的高质量遥感图像数据主要是手动在高分辨率图像中分割出来的,即通过土地功能不同引起的颜色,亮度或纹理的差异与周围区域 亮度或纹理的差异与周围区域区分开来。尽管农林业遥感图像的手动分类可以非常准确,但是非常耗时耗力。 图1.1:农田的遥感图像分割 定期更新农林业遥感图像数据的需求日益增加扩大了自动化分割农林业遥感图像的需求。 与ImageNet、VOC2007、COCO等目标检测/分类数据集中的大多数图像相比,农林业遥感图像中的对象相对简单。例如,人体的图像数据看起来要复杂得多,因为它包含各种不同纹理和形状的子对象(面部,手部,衣服等)。因此,优化传统的图像分割以及深度学习技术来设计用于农林业遥感图像分割的算法是非常重要的。该模型需要正确地排除不需要进行分割的对象(房屋,工厂,停车场等),区分具有几乎相似的光谱特性的相邻区域和可见度差的边界区域,并且正确地分割出所需的对象。 1.2 选题来源与经费支持 本研究课题来源于计算机与信息工程学院 随着传感器技术,航空航天技术,图像处理技术快速的发展,利用卫星遥感图像进行深度学习处理广泛应用于生产实际中。由于农林业遥感图像场景复杂,使用传统图像处理分割算法效果差且泛化性能弱,本文使用深度学习方法,在现有的的深度学习模型上训练,优化,最终提出一种一种优化后的深度学习模型,经测试,该模型在收集的农林业遥感图像数据集上可以准确的分割出所需的对象,本文提出的模型主要解决如下几个难点:
全栈程序员站长
2022/11/09
1.1K0
『深度概念』理解多标签图像分类任务的MAP评价方法
多标签图像分类(Multi-label Image Classification)任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准,即mean accuracy,该任务采用的是和信息检索中类似的方法—mAP(mean Average Precision)。AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。
小宋是呢
2020/08/12
2.5K0
『深度概念』理解多标签图像分类任务的MAP评价方法
推荐阅读
相关推荐
总结 | 优必选悉尼AI研究院何诗怡:基于课程学习的强化多标签图像分类算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档