与“分割”和“场景标注”相比,啥是“语义分割”?

Posted

技术标签:

【中文标题】与“分割”和“场景标注”相比,啥是“语义分割”?【英文标题】:What is "semantic segmentation" compared to "segmentation" and "scene labeling"?与“分割”和“场景标注”相比,什么是“语义分割”? 【发布时间】:2016-03-01 02:11:45 【问题描述】:

语义分割只是一种 Pleonasm 还是“语义分割”和“分割”之间有区别? “场景标注”和“场景解析”有区别吗?

像素级分割和像素级分割有什么区别?

(附带问题:当你有这种逐像素标注时,你是免费获得对象检测还是还有什么可做的?)

请提供您的定义的来源。

使用“语义分割”的来源

Jonathan Long、Evan Shelhamer、Trevor Darrell:Fully Convolutional Networks for Semantic Segmentation。 CVPR,2015 年和 PAMI,2016 年 Hong、Seunghoon、Hyeonwoo Noh 和 Bohyung Han:“用于半监督语义分割的解耦深度神经网络”。 arXiv preprint arXiv:1506.04924,2015 年。 V。 Lempitsky、A. Vedaldi 和 A. Zisserman:语义分割的 pylon 模型。在神经信息处理系统的进展中,2011 年。

使用“场景标签”的来源

Clement Farabet、Camille Couprie、Laurent Najman、Yann LeCun:Learning Hierarchical Features for Scene Labeling。在模式分析和机器智能中,2013 年。

使用“像素级”的来源

Pinheiro、Pedro O. 和 Ronan Collobert:“使用卷积网络从图像级到像素级标签。” IEEE 计算机视觉和模式识别会议论文集,2015 年。(见http://arxiv.org/abs/1411.6228)

使用“pixelwise”的来源

Li、Hongsheng、Rui Zhao 和 Xiaogang Wang:“用于像素分类的卷积神经网络的高效前向和反向传播。” arXiv preprint arXiv:1412.4526,2014 年。

Google Ngram

“语义分割”最近似乎比“场景标注”更常用

【问题讨论】:

其他看起来非常相似的术语:(每)像素分类/标签 有趣的是,@MartinThoma 有一个 arXiv 预印本调查语义分割,在提出问题 [链接] (arxiv.org/pdf/1602.06541.pdf) 后近 6 个月发布。干得好! 【参考方案1】:

“分割”是将图像分割成几个“连贯”的部分,但没有任何尝试理解这些部分所代表的内容。最著名的作品之一(但绝对不是第一部)是Shi and Malik "Normalized Cuts and Image Segmentation" PAMI 2000。这些作品试图根据颜色、纹理和边界平滑度等低级线索来定义“连贯性”。您可以将这些作品追溯到Gestalt theory。

另一方面,“语义分割”尝试将图像分割成语义上有意义的部分,并且将每个部分分类到一个预先确定的类别中。您还可以通过对每个像素(而不是整个图像/片段)进行分类来实现相同的目标。在这种情况下,您正在进行逐像素分类,这会导致相同的最终结果,但路径略有不同...

所以,我想你可以说“语义分割”、“场景标注”和“逐像素分类”基本上都在试图达到同一个目标:从语义上理解图像中每个像素的作用。您可以采取多种途径来实现该目标,这些途径会导致术语中的细微差别。

【讨论】:

哪条路径导致语义分割,哪条路径导致场景标记或像素分类? @moose 一般来说,如果你使用起源于“分割”研究领域的工具和算法(例如,CRF、平滑诱导术语等),那么你就是在做“语义分割”。另一方面,如果您使用在图像分类中使用的工具和算法在本地应用它们,您更有可能将您的工作描述为“逐像素标记”。但是,我认为实际上并没有任何实际区别,只有语义上的区别:这些是同一个最终目标的同义词。【参考方案2】:

我阅读了很多关于对象检测、对象识别、对象分割、图像分割和语义图像分割的论文,我的结论可能不正确:

对象识别:在给定的图像中,您必须检测所有对象(受限制的对象类别取决于您的数据集),用边界框对它们进行本地化,并用标签标记该边界框。在下图中,您将看到最先进的对象识别的简单输出。

对象检测:类似于对象识别,但在此任务中,您只有两类对象分类,即对象边界框和非对象边界框。例如汽车检测:您必须检测给定图像中的所有汽车及其边界框。

对象分割:像对象识别一样,您将识别图像中的所有对象,但您的输出应显示该对象对图像的像素进行分类。

图像分割:在图像分割中,您将分割图像的区域。您的输出不会标记彼此一致的图像的片段和区域应该在同一片段中。从图像中提取超像素是此任务或前景-背景分割的一个示例。

语义分割:在语义分割中,您必须用一类对象(汽车、人、狗……)和非对象(水、天空、路……)来标记每个像素。换句话说,在语义分割中,您将标记图像的每个区域。

我认为像素级和像素级标记基本上是相同的,可以是图像分割或语义分割。我在this link 也同样回答了你的问题。

【讨论】:

我还会添加实例分割,即同一对象的实例之间的分离 我认为“图像识别”是“图像分类”而不是“图像检测”的同义词。它是关于识别图像中的一个或多个对象并能够判断它是否存在。如果我们还想知道它在哪里,我们需要使用边界框检测对象。另外,我看不出为什么物体检测器应该只能检测到一个类。 我部分同意你的看法。我没有提到图像识别是什么,所以图像识别和分类可能意味着相同。然而,对象检测主要用于两类问题和多类问题的对象识别。无论如何,我对我的答案毫无保留,这只是我三年前阅读一些论文的想法!干杯! 您能详细说明一下您从哪些地方找到您的读物吗?【参考方案3】:

前面的回答真的很棒,我想补充几点:

对象分割

这在研究界失宠的原因之一是它存在问题的模糊性。对象分割过去只是意味着在图像中找到单个或少量对象并在它们周围绘制边界,对于大多数目的,您仍然可以假设它就是这个意思。然而,它也开始被用来表示分割可能为对象的斑点,从背景中分割对象(现在更常称为背景减法或背景分割或前景)检测),甚至在某些情况下可与使用边界框的对象识别互换使用(随着深度神经网络对象识别方法的出现,这种情况很快就停止了,但事先对象识别也可能意味着简单地用其中的对象标记整个图像) .

是什么让“分段”“语义化”?

Simpy,每个段,或者在深度方法的情况下,每个像素都被赋予一个基于类别的类标签。一般来说,分割只是通过某种规则对图像进行分割。 Meanshift分割,比如从非常高的层次根据图像能量的变化对数据进行分割。基于Graph cut 的分割同样不是学习的,而是直接从与其他图像分开的每个图像的属性中推导出来的。最近(基于神经网络)的方法使用标记的像素来学习识别与特定类别相关的局部特征,然后根据哪个类别对该像素具有最高置信度对每个像素进行分类。这样一来,“pixel-labeling”实际上是更诚实的任务名称,“segmentation”组件应运而生。

实例分割

可以说是对象分割最困难、最相关和最原始的含义,“实例分割”是指对场景中的单个对象进行分割,无论它们是否属于同一类型。然而,这如此困难的原因之一是因为从视觉角度(在某些方面是哲学角度)来看,是什么构成了“对象”实例并不完全清楚。身体部位是物体吗?这样的“部分对象”是否应该通过实例分割算法进行分割?是否应该仅在将它们与整体分开时才对其进行分段?如果两件东西清楚地相邻但可以分开是一个或两个物体,那么复合物体会怎么样(一块石头粘在棍子的顶部是斧头,锤子,还是只有一根棍子和一块石头,除非制作得当?)。此外,尚不清楚如何区分实例。遗嘱是与它所附着的其他墙壁不同的实例吗?应按什么顺序计算实例?正如他们出现的那样?接近视点?尽管存在这些困难,物体的分割仍然是一件大事,因为作为人类,我们总是与物体互动,而不管它们的“类别标签”如何(使用你周围的随机物体作为纸张重量,坐在不是椅子的东西上),所以一些数据集确实试图解决这个问题,但没有对这个问题给予太多关注的主要原因是因为它定义得不够好。

场景解析/场景标注

场景解析是场景标注的严格分割方法,它本身也存在一些模糊性问题。从历史上看,场景标签意味着将整个“场景”(图像)分成几部分,并给它们一个类标签。然而,它也被用来表示为图像区域提供类标签而不明确分割它们。关于分割,“语义分割”并不意味着分割整个场景。对于语义分割,该算法旨在仅分割它知道的对象,并且将受到其损失函数的惩罚,以标记没有任何标签的像素。例如,MS-COCO 数据集是用于语义分割的数据集,其中仅分割了一些对象。

【讨论】:

以上是关于与“分割”和“场景标注”相比,啥是“语义分割”?的主要内容,如果未能解决你的问题,请参考以下文章

读点论文图像语义分割与深度学习的结合

人工智能必须要知道的语义分割模型:DeepLabv3+

DeepLabv3+图像语义分割实战:训练自己的数据集

动手实践系列:CV语义分割!

动手实践系列:CV语义分割!

语义分割与数据集