| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 按需视觉识别文章阅读及延伸思考 -> 正文阅读 |
|
[人工智能]按需视觉识别文章阅读及延伸思考 |
一. 前言这里分享一篇很有新意的文章,中间有我自己的一些见解和想法。文章是作者宣传最近放在 arXiv 上并且开源的文章《按需视觉识别》。它对视觉识别中的评价问题进行了讨论,文章作者认为,在计算机视觉进入瓶颈期的当下,定义出合理的评价指标,比刷新现有评价指标上的SOTA(即,指的是在公开数据集上,目前效果最好、识别率最高、正确率最高、性能最好,算法模型超过以前的所有方法,达到最优。),要更重要一点。 作者:谢凌曦@清华 声明:所有内容均只代表作者本人观点,均有可能被推翻,二次转载务必连同声明一起转载。谢谢! 论文标题: 二. 原文内容1. 背景和研究动机这个工作的动机来源于我对视觉识别局限性的思考。我先简单的做一些铺垫。这些铺垫和这个工作没有直接联系,读者可以跳过直接看正文。 众所周知,当前基于深度学习的计算机视觉算法,与人类的学习方式具有本质不同。其根本性原因在于:人类是在一个真实的三维世界中,以任务为驱动,进行交互式学习,而计算机智能通过标注数据来学习各种分散的任务。为什么会有这样大的区别?其实早在上个世纪70年代,计算机视觉的先驱之一David Marr(Marr奖的纪念对象)就表达过他的观点:**计算机视觉算法的根本目的,是建立环境的三维模型,并且在交互过程中进行学习。**然而,将近半个世纪过去,人们还是没有实现这个愿景。这里的主要原因,是三维模型难以构建,例如下面的两套方案:
由于无法对世界建模,人们就只能退而求其次,对世界采样,并且从样本中学习。这就是为什么人们要构建、标注越来越大的图像数据集:数据集的规模越大,采样的精度就越高,就越能反映真实世界的规律。然而,这种方式时极其低效的。一方面,随着数据集的规模不断增大,上述方案产生了明显的边际效应(边际递减,模型实际提升的能力达到饱和),使得学习方法的性价比不断降低;另一方面,随着视觉概念的不断增加和细化,视觉标签的歧义性不断上升,使得评价指标的不确定性显著增加。 这里所谓的视觉标签的歧义性指的是,随着标签种类数的增加,一个物体究竟属于什么类,哪些部分属于这个类,就会变得不确定起来——前者可以参照 ImageNet ,不少物体细粒度标签存在歧义性;后者参照各种 part-based 数据集,一只狗的头部和躯干的边界究竟在什么地方,其实是很难定义的,遑论更加细粒度的 part 了。 更重要的是,人类并不需要基于分类来认知世界。举一个直观的粒子。在 ImageNet 中,存在着 ‘家具’ 和 ‘电器’ 两个大类;显然 ‘椅子’ 属于 ‘家具’,而 ‘电视机’ 属于 ‘家电’,但是 ‘按摩椅’ 属于‘家电’还是‘家具’,这就很难说了。然而,人类并不纠结于这件事:一个人到商场里买东西,不管商场是把‘按摩椅’放在‘家具’区还是‘家电’区,人类都可以通过简单的指引,快速找到‘按摩椅’所在的区域。 综上所述,随着视觉识别的不断细化,基于分类的识别任务终将遇到不可逾越的瓶颈。这里基于分类的识别任务,包括分类、检测、分割、等一切需要给目标打上明确标签的任务,因为基于分类的标注无法满足视觉信号具有的近乎无限细粒度的特性。换句话说,只要人类愿意,就可以从一张图像中识别出越来越细粒度的语义信息(如图1所示);而这些信息,很难通过有限而规范的标注,形成语义上完整的数据集,供算法学习。我在去年年中写了一篇 opinion paper 整理了这些观点(见下),经过一年的思考,我们终于在 opinion paper 的基础上迈出了一小步。 怎样的视觉识别算法才是完整的?
2. 走向按需视觉识别基于上述分析,当前基于封闭域(closed-domain)的视觉识别算法无法满足无限细粒度的要求,业界亟需基于开放域(open-domain)的视觉识别算法。当前,在视觉识别中引入文本指引(text-guided),是一种很有前景的,实现开放域的做法。与其他相关工作不同,我们的工作希望探讨识别的完整性,也就是在愿意的情况下能够无限细粒度地识别图像中的语义概念。然而,如果要达到无限细粒度的目标,当前方法存在两大负担。
显然,只有解决了上述问题,我们才可能构建具有无限细粒度的识别数据集。此时,虽然数据集中包含的视觉概念非常丰富,但这并不意味着我们需要在每张图像上都标注出所有的物体或者概念。这样说也许不够直观,那么重新考虑以上两个例子:
为了达成上述目标,我们需要引入按需视觉识别(visual recognition by request)的概念,即识别算法根据交互式需求,不断地从图像中识别出越来越精细的语义概念。相对地,我们将传统意义上识别任务定义为统一视觉识别(visual recognition all at once),即识别算法事先获取了一个固定的语义概念列表(字典),从而能够从图像中一次性地识别出所有预先定义好的语义概念。
图2直观地对比了两种识别方式。在图中展示的复杂街景图像中,统一视觉识别定义了“人”、“车”等物体以及它们的部件,但是由于图像中某些物体尺寸太小,无法对这些物体以及它们的部件进行标注,这就产生了标注的不一致性。与之相比,按需识别并不假定图中所有物体都需要被标注出来,而是将标注任务表示为若干需求(request),标注者/算法只需要处理这些 request。具体地说,request 被分为两类:
显然,上述两种 request,通过递归调用的形式,可以达成无限细粒度的识别任务。例如,在“人”的基础上,可以识别它的部件“头”,进而识别“头”的部件“眼睛”,进而识别“眼睛”的部件“眼珠”,进而识别“眼珠”的部件“瞳孔”,等等。 注意,为了完成第 1 类 request,我们需要定义一个知识库(knowledge base,如图 1 右部所示),显式地定义每个视觉概念的部件列表。从严格定义上说,知识库是一个具有拓扑结构的图,具体定义可以参见论文。知识库可以在任何时候被更新(如加入某个物体或者在某个物体上增加部件),而由于按需视觉识别的性质,加入新概念并不需要刷新整个数据集,只需要额外加入若干包含新概念的图片,将其中的新概念标注出来即可。 为了实现按需视觉识别,神经网络的输入也略有不同。在传统的统一视觉识别中,网络的输入是图像和固定字典,输出分割结果;而在按需视觉识别中,网络的输入不仅包括图像、知识库(可变字典),还包括当前识别结果和当前 request。神经网络需要进行调整,以适应新的输入。 总而言之,按需视觉识别希望定义一种新的评价体系,使得人们可以实现视觉识别的无限细粒度特性,从而接近视觉识别的开放性和完整性目标。**本文的核心思想至此已经介绍完毕。**以下,我们详细叙述按需视觉识别的标注、识别、评价方法,并且给出一种基于 query 的解决方案。注意:如果只想了解文章的主要思想,读者并不需要仔细阅读以下的部分,因为它们都很直观,而且可以被视为某种意义上的“实现细节”。 因此,下面的部分我会写得比较简略,对细节感兴趣的读者,请参看我们的论文。 3. 标注和评价指标既然追求无限细粒度,我们就只考虑分割这种较为彻底的识别任务。如上所述,在知识库(数学定义见论文)的基础上,一张图像的无限细粒度分割,可以表示为一系列 request 任务的集合(数学定义见论文),而这些 request 可以分为两大类:不断调用这两类 request,就可以实现任意粒度的识别。
按需视觉识别,提供了一种新的交互式标注体系。如图 3 所示,一张图像的标注过程(同时也是识别过程)可以表达为若干个 request 的列表(其中某些 request 有严格的先后关系)。其中,第一个 request 永远是全局的语义分割,而后续的 request,则通常是实例分割和语义分割交替的形式。 为了评判分割结果的好坏,我们在全景分割精度指标 PQ 的基础上,定义了一种专门用于按需视觉识别的评价指标,即 Hierarchical PQ(HPQ)。HPQ 将每个语义单元视为一个节点,递归地计算每个节点上的 PQ,并且最终将 PQ 值汇总至根节点,得到全图的 PQ。具体计算方式,请参看论文。 4. 基于query的解决方案
识别算法其实很简单。我们分开处理了两类 request,其中第 1 类 request 的处理借鉴了 LSeg[1] (其中借用了 CLIP [2] 预训练模型的 text encoder,以处理文本类别输入),而第 2 类 request 的处理借鉴了 CondInst[3] 。具体实现,可以参看论文。图 4 是简单的示意图。 实现细节方面,为了加速训练,我们采用了并行化处理的方式,使得每次迭代中,每张图像只需要被送入 LSeg 和 CondInst 各一次。推理时,如果 request 固定,我们也可以如此做,但是系统显然也可以进行交互式推理。 5. 实验结果我们测试了两个数据集,即 Cityscapes Panoptic Parts(CPP)[4] 和 ADE20K[5]。CPP 数据集包含 19 类物体,其中 5 类物体有共计 9 种部件(有重复),物体和部件的标注都较为完整。ADE20K 数据集包含超过 3000 类物体和超过 600 种部件,我们选取了常用的 150 类物体和 83 种部件,物体和部件的标注有较多缺失。我们使用 CPP 数据集进行诊断实验,而在 ADE20K 数据集上验证按需视觉识别方法的通用性。 具体实验结果请参看论文。我们无意与 SOTA 方法对标精度(我们的精度在给定 backbone 下是 reasonable 的),只是希望说明几个点:
图 5 展示了在 CPP 数据集上和 ADE20K 数据集上的若干可视化结果。显然,ADE20K 上的结果更差,这一方面是因为 ADE20K 上标注的视觉概念更多,一方面也是因为 ADE20K 上的标注更不完整。 6. 总结和未来方向在这个工作中,我们探索了一种走向完整的、无限细粒度的视觉识别的方法,即按需视觉识别方法。它的核心思想在于,不追求一次性地识别图像中的所有物体,而是在基本语义分割的基础上,(按照需求)交互式地处理 request,并且不断细化识别结果。这样做的最大好处,是增加了标注和识别的一致性和可扩展性,从而揭示了完整的、无限细粒度的视觉识别的可能性。 在此,我也希望澄清几个可能的误解。
最后,我简单展望未来的几个重要的研究方向。
最后的最后,我还是要强调我的观点:**对于当前的视觉识别研究来说,定义更合适的评价指标,远比在现有数据集上刷 SOTA 更重要!**这个工作只是很小的一步,希望能够为这个 community 带来些许启发。我们也非常欢迎大家的讨论。 三. 个人总结我认为,按需视觉识别应该会是机器视觉以及智能化发展的一个大趋势。无论是物体地分类也好,还是生物的分类也好,等等各种各样的东西的分类,都是在整个人类知识体系下的一个‘通识’,一个定义,一个被广泛人类所接受的一个概念性名词,即使是这样,很多东西在不同的地区、不同的国家、不同的区域仍然有不同的类别性称呼。而这些广泛性的定义,也是我们人类在需求的推动下进行的知识体系定义,从无到有,与‘聚类’有点相似。 参考文献 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:25:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |