速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

多标签图像分类综述

  • 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:212411
用户头像
刘燕 InfoQ高级技术编辑

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

关注

评论

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

虚拟币商城数字货币交易分红模式系统开发[流程框架]

V\TG【ch3nguang】

数字货币交易平台开发 虚拟货币

PrecisionFDA:多组学样本错标校正挑战赛

INSVAST

数据分析 PrecisionFDA

What's new in Pika v3.5.0

apache/dubbo-go

数据库 redis kv Redis 7 KV存储

Go语言协程池实现第二弹

FunTester

如何构建 Sidecarless 模式的高性能服务网格

阿里巴巴云原生

阿里云 云原生 asm

虚拟币锁仓数字货币usdt投资理财系统开发合约代码

V\TG【ch3nguang】

虚拟货币 区块链技术开发

华为云828企业节:助力精细化运营,提升开发效率

mecchi

小程序 云主机 云服务器 网站建设 云电脑

Sentieon发布RNAseq加速分析方案

INSVAST

数据分析 基因测序 RNAseq

大家都在用哪些测试用例管理平台?分析不同类型团队下的4类测试管理工具

爱吃小舅的鱼

产品经理 测试管理

面部表情识别技术的神经科学基础

来自四九城儿

从孤勇者到边缘云行业翘楚,网心科技做对了什么?

网心科技

Programming abstractions in C阅读笔记:p127-p129

codists

面部表情识别技术在社交互动中的应用

来自四九城儿

Apache Dubbo 和 Apache RocketMQ 邀您参与,ASF 亚洲峰会 5 张门票免费送

阿里巴巴云原生

阿里云 云原生

Sentieon软件应用之公共卫生机构

INSVAST

公共卫生 基因数据分析

微服务引擎 MSE 全新升级,15 分钟快速体验微服务全栈能力

阿里巴巴云原生

阿里云 微服务 云原生

富士胶片公司完成阿里云 PolarDB 数据库开源产品兼容适配

阿里云数据库开源

polarDB PolarDB for PostgreSQL 阿里云PolarDB

面部表情识别的技术挑战与解决方案

来自四九城儿

八月更新 | CI 构建计划触发机制升级、制品扫描 SBOM 分析功能上线!

CODING DevOps

茶桁的AI秘籍 - 人工智能数学基础篇 导言

茶桁

人工智能 数学 math

提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块

INSVAST

umi 基因数据分析 技术服务

Grafana可观测性grpc长链接处理

盈米基金

gRPC 可观测性 Grafana

C++类成员的访问权限以及类的封装

梦笔生花

学习Python文件备份和恢复技术,让您的数据永不丢失!

高端章鱼哥

Python Linux

2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长。 请输出

福大大架构师每日一题

福大大架构师每日一题

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅰ

轶天下事

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅱ

轶天下事

08.25 北京站|阿里云 Serverless 技术实践营( AI 专场)开放报名

阿里巴巴云原生

阿里云 Serverless 云原生

Sentieon数据质控QC模块介绍

INSVAST

数据分析 QC 质控工具

小灯塔系列-中小企业数字化转型系列研究——协同OA测评报告

向量智库

资源成本降低70%!华为MetaERP资产核算的Serverless架构实践

轶天下事

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