精华内容
下载资源
问答
  • 不可分割性的定义
    千次阅读
    2021-10-24 15:00:07

    前言

    面向智能驾驶(辅助驾驶、自动驾驶)场景下的语义分割任务,由于非结构化场景的复杂性,是一个非常具有挑战性的任务,所以有许多研究者和研究机构公开了很多相关的数据集推动语义分割领域的发展。本文主要介绍Cityscapes数据集。

    目录

    一、简介

    二、5000张精准标注

    三、20000 张粗略标注

    更多相关内容
  • Facebook提出全景分割,实现实例分割和语义分割的统一 2018-01-05 18:04 原文来源:arxiv 作者:Alexander Kirillov、Kaiming He1、Ross Girshick、Carsten Rother、Piotr Dollar 「雷克世界」编译:嗯~阿童木...

    Facebook提出全景分割,实现实例分割和语义分割的统一 

    2018-01-05 18:04

    原文来源:arxiv

    作者:Alexander Kirillov、Kaiming He1、Ross Girshick、Carsten Rother、Piotr Dollar

    「雷克世界」编译:嗯~阿童木呀、KABUDA

    现如今,我们提出并研究了一种新的“全景分割”(Panoramic segmentation,PS)任务。可以这样说,全景分割将传统意义上互不相同的实例分割(检测和分割每个目标实例)和语义分割(为每个像素分配一个类标签)任务统一起来了。这种统一是自然的,并在一种孤立的研究状态中呈现出一种既不存在于实例中,也不存在于语义分割中的全新的挑战。为了衡量任务执行的性能表现,我们引入了一种全景质量(panoptic quality ,PQ)度量标准,并表明它非常简单且具有可解释性。在使用PQ的情况下,我们在三个现有数据集上研究了人类性能表现,其中,这些数据集要有必要的PS注释,这将有助于我们对任务和度量标准进行更好的理解。我们还提出了一种基本的算法方法,将实例和语义分割的输出结合到全景输出中,并将其与人类的性能表现进行比较。可以这样说,在分割和视觉识别方面,PS可以作为其未来挑战的基础。我们的目标是通过邀请社区探索所提出的全景分割任务从而推动在全新方向的研究。

    对于给定的(a)图像,我们展示了以下任务的参照标准:(b)语义分割(每个像素具有类标签),(c)实例分割(每个目标具有掩码和类标签),以及(d)提出的全景分割(PS)任务(每个像素具有类+实例标签)。全景分割泛化了语义和实例分割,并要求识别和描绘图像中的每个可见的目标和区域。我们希望这个统一的分割任务能够提出新的挑战,并创造新的方法。

    在计算机视觉发展的早期,things(事物)——诸如人、动物、工具等可以计数的物体,得到了占据主导地位的关注。在质疑这种趋势是否存在智慧性时,Adelson提高了研究系统的重要性,而这种系统能够识别出stuff(材料)——诸如草、天空、道路等类似质地或原料的非晶区域。事物和材料之间的这种二分法一直沿用至今,既反映在视觉识别任务的划分上,也体现在针对事物和材料任务开发的专用算法中。

    学习材料的任务通常被看作是一项称之为语义分割的任务,见图1b。由于材料是无定形的、不可数的,这个任务被定义为简单地为图像中的每个像素分配一个类别标签(注意,语义分割将事物类别视为材料)。相比之下,研究事物的任务通常被表述为目标检测或实例分割任务,其目的是检测出每个目标,并用边界框或分割掩码对其进行描述,参见图1c。虽然这两个视觉识别任务看似相关,但是在数据集、细节和度量标准上有很大的不同。

    分割瑕疵。图像被缩放和裁剪。顶部行(Vistas图像):两个注释器都将目标识别为一辆汽车,然而,人将一辆汽车分成了两辆车。底行(Cityscapes图像):分割是非常模糊的。

    语义和实例分割之间的分裂导致了这些任务方法中出现了平行分裂。材料分类器通常建立在具有扩张的完全卷积网络上,而目标检测器通常使用的是目标提案(object proposals),且是基于区域的。在过去的十年中,这些任务的总体算法进展是不可思议的,然而,如果将这些任务孤立起来看,就可能会忽略一些重要的内容。

    在这项研究中,我们会问:things和stuff之间是否可以和解?是否存在这样一个简单的问题表述,能够优雅地将这两个任务涵盖在内?一个统一的视觉识别系统会是什么样子的呢?

    分类瑕疵。图像被缩放和裁剪。顶部行(ADE20k图片):简单的错误分类。底行(Cityscapes图像):现场是非常困难进行分类的的,有轨电车是正确的分类。其中许多错误难以解决。

    考虑到这些问题,我们提出一个既包含things又包含stuff的新任务。我们将所得到的任务称为全景分割(PS)。全景的定义是“一个视图中可见的一切”,在我们的上下文中,全景视图指的是分割的统一的全局视图。PS的任务表达看似简单:图像的每个像素都必须分配一个语义标签和一个实例ID。具有相同标签和ID的像素属于同一个目标,而对于材料标签而言,实例ID被忽略。参照标准和机器预测都必须有这种形式。见图1d的可视化。

    全景分割是语义分割和实例分割的泛化,但引入了新的算法挑战。与语义分割不同,全景分割需要区分单个目标实例; 这对完全卷积网络提出了挑战。与实例分割不同的是,在全景分割中目标分割中必须是非重叠的,这对独立于操作每个目标的基于区域的方法提出了挑战。 而且,这项任务需要同时识别出things和stuff。为全景分割设计一个干净的、端到端的系统是一个开放的问题,需要探索创新的算法思想。

    Cityscapes(左二)和ADE20k(右三)的全景分割结果。预测是基于最先进的实例和语义分割算法的合并输出进行的。匹配部分的颜色(IoU> 0.5)(交叉阴影图案表示不匹配的区域,黑色表示未标记的区域)。最呈现的是最好的颜色和变焦。

    我们新的全景分割任务需要一个新的度量标准。我们努力使我们的度量标准完整、可解释、简单。或许,令人惊讶的是,对于我们这看起来复杂的任务,存在一个满足这些性质的自然度量标准。我们定义了全景质量(PQ)度量标准,并且表明了它可以被分解为两个可解释的术语:分割质量(SQ)和检测质量(DQ),而且还可以进一步细分精度。

    由于全景分割的参照标准(ground truth)和算法输出都必须采用相同的形式,因此我们可以在全景分割上对人类性能(human performance)进行详细的研究。这使我们能够更详细的了解全景质量度量标准,包括检测与分割的详细分析,以及材料与事物(stuff 和things)的性能对比。并且,测量人体PQ有助于我们理解机器的性能。这点非常重要,因为它可以让我们监测全景分割中各种数据集上的性能饱和度。

    最后,我们对全景分割的机器性能进行初步研究。为此,我们确定了一个简单但可能不是最优的启发式算法,该算法通过一系列后处理步骤(post-processing steps)(实际上是一种非最大抑制的复杂形式)将两个独立系统的输出结合起来进行语义和实例分割。我们的启发式算法为全景分割建立了一个基线,并为我们提供了有关它所呈现出的主要算法挑战(main algorithmic challenges)的见解。

    我们在三个通用分割数据集上研究了人和机器的性能,这三个数据集都包含材料与事物(stuff 和 things)注释。这些数据集分别是Cityscapes、ADE20k和Mapillary Vistas。对于每个数据集,我们都直接从挑战组织者那里获得了最先进方法的结果。在未来,我们将把分析工作扩展到COCO(在COCO中材料(stuff)被注释)上。我们将这些数据集合在一起,为研究人类和机器在全景分割上的表现奠定了坚实的基础。

    我们的目标是通过邀请社区以探索新的全景分割任务从而推动新方向的研究。我们认为,拟定的任务会导致预期之内和预期之外的创新。最后,我们来探讨一下这些可能性以及我们未来的计划。

    出于简单化的目的,本文中提出的PS“算法”是基于最优执行实例和语义分割系统中输出的启发式组合。这个方法是基本性的第一步,但我们希望引入更多有趣的算法。具体而言,我们希望看到全景分割至少在两个方面的创新:(1)深度集成的端到端模型可同时解决全景分割的双重性质。许多实例分割方法都被设计为用于产生不重叠的实例预测,并可以作为此系统的基础。(2)由于全景分割不能有重叠的部分,因此某种形式的高层次“推理”可能是有益的,例如,将基于可学习的NMS扩展到全景分割中。我们希望全景分割任务能够推动这些领域的研究,进而带来令人眼前一亮的新突破。

    展开全文
  • 确定语义分割论文、代码汇总

    千次阅读 2022-03-26 13:18:37
    因此,由于训练域和测试域之间的差异,生成的标签不可避免地包含不正确的预测,这可以转移到最终适应的模型中,在很大程度上影响训练过程。为了克服这一问题,本文提出了在训练过程中显式估计的预测不确定,以纠正...

    2017

    What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?

    code: https://paperswithcode.com/paper/what-uncertainties-do-we-need-in-bayesian

    摘要: 我们可以建模两种不确定性。天文不确定性捕捉了观测中固有的噪声。另一方面,认知的不确定性解释了模型中的不确定性——给出足够的数据,不确定性可以被解释。传统上,在计算机视觉中很难模拟认知的不确定性,但有了新的贝叶斯深度学习工具,这现在是可能的。我们研究了在视觉任务的贝叶斯深度学习模型中建模认知和任意不确定性的好处。为此,我们提出了一个结合输入相关的任意不确定性和认知不确定性的贝叶斯深度学习框架。我们研究了在每像素语义分割和深度回归任务的框架下的模型。此外,我们的显式不确定性公式导致了这些任务的新的损失函数,这可以解释为学习衰减。这使得损失对噪声数据更加鲁棒,也在分割和深度回归基准上提供了新的最先进的结果。
    在这里插入图片描述

    2019

    Uncertainty based model selection for fast semantic segmentation

    摘要: 语义分割方法基本上可以分为两类。一个是准确的结果但推理慢,另一个是实时推理但为了速度牺牲了一些性能。在本文中,我们试图通过使用模型选择技术来利用这两个类别的好处,即准确性和速度。使用不确定性,计算熵地图,作为我们的选择标准,我们利用快速的速度,但不是那么准确,模型区域高确定性,包括大部分的输入图像,而一些,精心挑选的地区低确定性我们采用一个准确的,但昂贵的模型来预测语义标签。实验结果表明,我们的方法大大提高了基线模型的性能,同时保持了合理的推理速度。
    在这里插入图片描述

    论文的贡献:

    • 一种将快速分割模型的速度与高效分割方法的精度相结合的模型选择技术。
    • 是一种自适应选择过程,它可以通过以滑块的方式改变所选择的阈值来实时改变速度与精度的比率。
      在这里插入图片描述

    PHiSeg: Capturing Uncertainty in Medical Image Segmentation

    code: https://github.com/baumgach/PHiSeg-code

    摘要: 解剖结构和病理的分割本质上是模糊的。例如,结构边界可能不清晰可见,或者不同的专家可能有不同的注释风格。目前大多数最先进的方法都没有解释这种歧义,而是学习了从图像到分割的单一映射。在这项工作中,我们提出了一种新的方法来建模的条件概率分布的分割给定一个输入图像。我们推导了一个层次概率模型,其中单独的潜在变量负责建模在不同分辨率的分割。该模型中的推理可以使用变分自编码器框架有效地执行。我们表明,与最近的相关工作相比,我们提出的方法可以用来生成更多的时候,更真实和多样化的分割样本。
    在这里插入图片描述

    2020

    An Uncertainty-Driven GCN Refinement Strategy for Organ Segmentation

    code: https://github.com/rodsom22/gcn_refinement

    摘要: CT体积中的器官分割是许多计算机辅助干预和诊断方法中重要的预处理步骤。近年来,卷积神经网络已经主导了这项任务的技术水平。然而,由于器官形状的高度变异性和组织之间的相似性,这个问题提出了一个具有挑战性的环境,在输出分割中产生假阴性和假阳性区域是一个常见的问题。最近的研究表明,该模型的不确定性分析可以为我们提供关于分割中潜在错误的有用信息。在此基础上,我们提出了一种基于不确定性分析和图卷积网络的分割细化方法。我们利用卷积网络在特定输入量中的不确定性水平来建立一个半监督的图学习问题,该问题通过训练一个图卷积网络来解决。为了测试我们的方法,我们改进了一个二维U-Net的初始输出。我们用NIH的胰腺数据集和医学分割十项全能的脾脏数据集验证了我们的框架。我们表明,我们的方法优于最先进的CRF细化方法,提高了1%的胰腺和脾脏的骰子分数,相对于原始的预测。最后,我们对我们的建议的参数进行了敏感性分析,并讨论了该模型对其他CNN架构的适用性、结果以及目前的局限性,以便于未来的研究方向的工作。
    在这里插入图片描述

    Rectifying Pseudo Label Learning via Uncertainty Estimation for Domain Adaptive Semantic Segmentation

    code: https://paperswithcode.com/paper/rectifying-pseudo-label-learning-via

    摘要: 本文研究了在语义分割中将知识从源域转移到目标域的无监督域自适应。现有的方法通常以伪标签为基础,以充分利用未标记的目标域数据。而目标域数据的伪标签通常是由在源域上训练的模型来预测的。因此,由于训练域和测试域之间的差异,生成的标签不可避免地包含不正确的预测,这可以转移到最终适应的模型中,在很大程度上影响训练过程。为了克服这一问题,本文提出了在训练过程中显式估计的预测不确定性,以纠正无监督语义分割自适应的伪标签学习。给定输入图像,模型输出语义分割预测以及预测的不确定性。具体来说,我们通过预测方差对不确定性进行建模,并将不确定性纳入优化目标。为了验证该方法的有效性,我们在两个流行的合成到真实语义分割基准,即GTA5→城市景观和同步→城市景观,以及一个跨城市基准,即城市景观→牛津机器人车。通过大量的实验,我们证明了(1)方法根据预测方差动态设置不同的置信阈值,(2)对噪声伪标签学习进行校正,(3)比传统的伪标签学习取得了显著的改进,在所有三个基准上都产生了具有竞争力的性能。
    在这里插入图片描述

    2021

    Is segmentation uncertainty useful?

    摘要: 概率图像分割编码不同的预测置信度和分割问题中固有的模糊性。虽然不同的概率分割模型被设计用来捕捉分割的不确定性和模糊性的不同方面,但这些建模的差异很少在不确定性的应用背景下进行讨论。我们考虑了分割不确定性的两个常用用例,即分割质量的评估和主动学习。我们考虑了四种已建立的概率分割策略,讨论了它们的建模能力,并研究了它们在这两个任务中的性能。我们发现,对于所有的模型和两个任务,返回的不确定性与分割误差呈正相关,但不能证明对主动学习有用。

    在这里插入图片描述

    Uncertainty-Based Dynamic Graph Neighborhoods For Medical Segmentation

    code: https://paperswithcode.com/paper/uncertainty-based-dynamic-graph-neighborhoods

    摘要: 近年来,基于深度学习的方法在分割等基本的医学图像分析任务中取得了成功。后处理和细化分割结果是减少分割网络产生的错误分类的一种常见做法。除了广泛使用的方法,如条件随机场(CRFs),专注于分割的体积/区域的结构,最近一种基于图的方法利用图中的某些和不确定点,并根据小图卷积网络(GCN)对分割进行细化。然而,该方法有两个缺点:图中的大部分边都是随机分配的,而GCN则是独立于分割网络进行训练的。为了解决这些问题,我们根据特征距离定义了一种新的邻居选择机制,并在训练过程中将两个网络结合起来。根据从计算机断层扫描(CT)图像中进行的胰腺分割的实验结果,我们证明了在定量措施方面的改进。此外,检查由我们的方法创建的动态邻居,观察到语义相似的图像部分之间的边缘。所提出的方法也显示了在分割图上的定性增强,如视觉结果所示。
    在这里插入图片描述

    UACANet: Uncertainty Augmented Context Attention for Polyp Segmentation

    code: https://paperswithcode.com/paper/uacanet-uncertainty-augmented-context

    摘要: 我们提出了不确定性增强背景注意网络(UACANet)用于息肉分割,它考虑了显著性映射的一个不确定区域。我们构造了一个改进的带有编码器和dech器的U-Net形状网络,并在每个自下而上的流预测模块中计算显著性映射,并传播到下一个预测模块。在每个预测模块中,利用先前预测的显著性图计算前景、背景和不确定区域图,并将每个表示的三个区域图聚合。然后计算特征图中每个表示法与特征图中每个像素之间的关系。我们在五种流行的息肉分割基准,Cvasir、CVC-ClinicDB、ETIS、CVC-ColonDB和CVC-300上进行了实验,我们的方法达到了最先进的性能。特别是,我们在ETIS数据集上实现了76.6%的平均骰子,比之前的最先进的方法提高了13.8%。

    在这里插入图片描述

    展开全文
  • 从loss处理图像分割中类别极度均衡的状况---keras

    万次阅读 多人点赞 2019-02-10 23:21:35
    最近在做小目标图像分割任务(医疗方向),往往一幅图像中只有一个或者两个目标,而且目标的像素比例比较小,选择合适的loss function往往可以解决这个问题。以下是我的实验比较。 场景: 1.U-Net网络 2. keras...

    前言

    最近在做小目标图像分割任务(医疗方向),往往一幅图像中只有一个或者两个目标,而且目标的像素比例比较小,使网络训练较为困难,一般可能有三种的解决方式:

    1. 选择合适的loss function,对网络进行合理的优化,关注较小的目标。
    2. 改变网络结构,使用attention机制(类别判断作为辅助)。
    3. 与2的根本原理一致,类属attention,即:先检测目标区域,裁剪之后进行分割训练。

    通过使用设计合理的loss function,相比于另两种方式更加简单易行,能够保留图像所有信息的情况下进行网络优化,达到对小目标精确分割的目的。

    场景

    1. 使用U-Net作为基准网络。
    2. 实现使用keras
    3. 小目标图像分割场景,如下图举例。
      AI Challenger眼底水肿病变区域自动分割,背景占据了很大的一部分
      在这里插入图片描述
      segthor医疗影像器官分割
      在这里插入图片描述

    loss function

    一、Log loss

    对于二分类而言,对数损失函数如下公式所示: − 1 N ∑ i = 1 N ( y i log ⁡ p i + ( 1 − y i ) log ⁡ ( 1 − p i ) ) -\frac{1}{N}\sum_{i=1}^{N}(y_i\log p_i + (1-y_i)\log (1-p_i)) N1i=1N(yilogpi+(1yi)log(1pi))
    其中, y i y_i yi为输入实例 x i x_i xi真实类别, p i p_i pi为预测输入实例 x i x_i xi 属于类别 1 的概率. 对所有样本的对数损失表示对每个样本的对数损失的平均值, 对于完美的分类器, 对数损失为 0。
    此loss function每一次梯度的回传对每一个类别具有相同的关注度!所以极易受到类别不平衡的影响,在图像分割领域尤其如此。
    例如目标在整幅图像当中占比也就仅仅千分之一,那么在一副图像中,正样本(像素点)与父样本的比例约为1~1000,如果训练图像中还包含大量的背景图,即图像当中不包含任何的疾病像素,那么不平衡的比例将扩大到>10000,那么训练的后果将会是,网络倾向于什么也不预测!生成的mask几乎没有病灶像素区域!
    此处的案例可以参考airbus-ship-detection

    二、WCE Loss

    带权重的交叉熵loss — Weighted cross-entropy (WCE)[6]
    R为标准的分割图,其中 r n r_n rn为label 分割图中的某一个像素的GT。P为预测的概率图, p n p_n pn为像素的预测概率值,背景像素图的概率值就为1-P。
    只有两个类别的带权重的交叉熵为:
    W C E = − 1 N ∑ n = 1 N ( w r n l o g ( p n ) + ( 1 − r n ) l o g ( 1 − p n ) ) WCE = - \frac{1}{N}\sum_{n=1}^{N}(wr_nlog(p_n) + (1 - r_n)log(1 - p_n)) WCE=N1n=1N(wrnlog(pn)+(1rn)log(1pn))
    w w w为权重, w = N − ∑ n p n ∑ n p n w=\frac{N-\sum_np_n}{\sum_np_n} w=npnNnpn

    缺点是需要人为的调整困难样本的权重,增加调参难度。

    三、Focal loss

    能否使网络主动学习困难样本呢?
    focal loss的提出是在目标检测领域,为了解决正负样本比例严重失衡的问题。是由log loss改进而来的,为了于log loss进行对比,公式如下:
    − 1 N ∑ i = 1 N ( α y i ( 1 − p i ) γ log ⁡ p i + ( 1 − α ) ( 1 − y i ) p i γ log ⁡ ( 1 − p i ) ) -\frac{1}{N}\sum_{i=1}^{N}(\alpha y_i(1-p_i)^{\gamma}\log p_i + (1-\alpha )(1-y_i)p_i^{\gamma}\log (1-p_i)) N1i=1N(αyi(1pi)γlogpi+(1α)(1yi)piγlog(1pi))
    说白了就多了一个 ( 1 − p i ) γ (1-p_i)^{\gamma} (1pi)γ,loss随样本概率的大小如下图所示:
    在这里插入图片描述
    其基本思想就是,对于类别极度不均衡的情况下,网络如果在log loss下会倾向于只预测负样本,并且负样本的预测概率 p i p_i pi也会非常的高,回传的梯度也很大。但是如果添加 ( 1 − p i ) γ (1-p_i)^{\gamma} (1pi)γ则会使预测概率大的样本得到的loss变小,而预测概率小的样本,loss变得大,从而加强对正样本的关注度。
    可以改善目标不均衡的现象,对此情况比 binary_crossentropy 要好很多。
    目前在图像分割上只是适应于二分类。
    代码:https://github.com/mkocabas/focal-loss-keras

    from keras import backend as K
    '''
    Compatible with tensorflow backend
    '''
    def focal_loss(gamma=2., alpha=.25):
    	def focal_loss_fixed(y_true, y_pred):
    		pt_1 = tf.where(tf.equal(y_true, 1), y_pred, tf.ones_like(y_pred))
            pt_0 = tf.where(tf.equal(y_true, 0), y_pred, tf.zeros_like(y_pred))
            return -K.sum(alpha * K.pow(1. - pt_1, gamma) * K.log(pt_1))-K.sum((1-alpha) * K.pow( pt_0, gamma) * K.log(1. - pt_0))
    	return focal_loss_fixed
    

    使用方法:

    model_prn.compile(optimizer=optimizer, loss=[focal_loss(alpha=.25, gamma=2)])
    

    目前实验得到结论:

    1. 经过测试,发现使用focal loss很容易就会过拟合??且效果一般。。。I don’t know why?
    2. 此方法代码有待改进,因为此处使用的网络为U-net,输入和输出都是一张图!直接使用会导致loss的值非常的大!
    3. 需要添加额外的两个全局参数alpha和gamma,对于调参不方便。

    以上的方法Log loss,WBE Loss,Focal loss都是从本源上即从像素上来对网络进行优化。针对的都是像素的分类正确与否。有时并不能在评测指标上DICE上得到较好的结果。

    ---- 更新2020-4-1
    将K.sum改为K.mean, 与其他的keras中自定义的损失函数保持一致:

    -K.mean(alpha * K.pow(1. - pt_1, gamma) * K.log(pt_1)) - K.mean((1 - alpha) * K.pow(pt_0, gamma) * K.log(1. - pt_0))
    

    效果还未尝试,如果有同学尝试了可以留言交流~

    四、Dice loss

    dice loss 的提出是在V-net中,其中的一段原因描述是在感兴趣的解剖结构仅占据扫描的非常小的区域,从而使学习过程陷入损失函数的局部最小值。所以要加大前景区域的权重。

    Dice 可以理解为是两个轮廓区域的相似程度,用A、B表示两个轮廓区域所包含的点集,定义为:
    D S C ( A , B ) = 2 ∣ A ⋂ B ∣ ∣ A ∣ + ∣ B ∣ DSC(A,B) = 2\frac{|A\bigcap B |}{|A| + |B|} DSC(A,B)=2A+BAB
    其次Dice也可以表示为:
    D S C = 2 T P 2 T P + F N + F P DSC = \frac{2TP}{2TP+FN+FP} DSC=2TP+FN+FP2TP
    其中TP,FP,FN分别是真阳性、假阳性、假阴性的个数。
    二分类dice loss:
    D L 2 = 1 − ∑ n = 1 N p n r n + ϵ ∑ n = 1 N p n + r n + ϵ − ∑ n = 1 N ( 1 − p n ) ( 1 − r n ) + ϵ ∑ n = 1 N 2 − p n − r n + ϵ DL_2 = 1 - \frac{\sum_{n=1}^{N}p_nr_n + \epsilon}{\sum_{n=1}^{N}p_n + r_n + \epsilon} -\frac{\sum_{n=1}^{N}(1 - p_n)(1 - r_n) + \epsilon}{\sum_{n=1}^{N}2 - p_n - r_n + \epsilon} DL2=1n=1Npn+rn+ϵn=1Npnrn+ϵn=1N2pnrn+ϵn=1N(1pn)(1rn)+ϵ

    代码:

    def dice_coef(y_true, y_pred, smooth=1):
        intersection = K.sum(y_true * y_pred, axis=[1,2,3])
        union = K.sum(y_true, axis=[1,2,3]) + K.sum(y_pred, axis=[1,2,3])
        return K.mean( (2. * intersection + smooth) / (union + smooth), axis=0)
    def dice_coef_loss(y_true, y_pred):
    	1 - dice_coef(y_true, y_pred, smooth=1)
    

    结论:

    1. 有时使用dice loss会使训练曲线有时不可信,而且dice loss好的模型并不一定在其他的评价标准上效果更好,例如mean surface distance 或者是Hausdorff surface distance
      不可信的原因是梯度,对于softmax或者是log loss其梯度简化而言为 p − t p-t pt t t t为目标值, p p p为预测值。而dice loss为 2 t 2 ( p + t ) 2 \frac{2t^2}{(p+t)^2} (p+t)22t2,如果 p p p t t t过小则会导致梯度变化剧烈,导致训练困难。
    2. 属于直接在评价标准上进行优化。
    3. 不均衡的场景下的确好使。
      论文中在前列腺MRI容积图中的分割表现:
      在这里插入图片描述

    五、IOU loss

    可类比DICE LOSS,也是直接针对评价标准进行优化[11]。
    在图像分割领域评价标准IOU实际上 I O U = T P T P + F P + F N IOU = \frac{TP}{TP + FP + FN} IOU=TP+FP+FNTP,而TP,FP,FN分别是真阳性、假阳性、假阴性的个数。
    而作为loss function,定义 I O U = I ( X ) U ( X ) IOU = \frac{I(X)}{U(X)} IOU=U(X)I(X),其中, I ( X ) = X ∗ Y I(X) = X*Y I(X)=XY
    U ( X ) = X + Y − X ∗ Y U(X) = X + Y - X*Y U(X)=X+YXY,X为预测值而Y为真实标签。

    ## intersection over union
    def IoU(y_true, y_pred, eps=1e-6):
        if np.max(y_true) == 0.0:
            return IoU(1-y_true, 1-y_pred) ## empty image; calc IoU of zeros
        intersection = K.sum(y_true * y_pred, axis=[1,2,3])
        union = K.sum(y_true, axis=[1,2,3]) + K.sum(y_pred, axis=[1,2,3]) - intersection
        return -K.mean( (intersection + eps) / (union + eps), axis=0)
    

    [11]在PASCAL VOC 2010上的实验效果如下,基础框架还是FCN
    在这里插入图片描述
    IOU loss的缺点呢同DICE loss是相类似的,训练曲线可能并不可信,训练的过程也可能并不稳定,有时不如使用softmax loss等的曲线有直观性,通常而言softmax loss得到的loss下降曲线较为平滑。

    六、Tversky loss

    提到Tversky loss不得不提Tversky 系数,Tversky系数是Dice系数和 Jaccard 系数的一种广义系数,公式如下:
    T ( A , B ) = ∣ A ⋂ B ∣ ∣ A ⋂ B ∣ + α ∣ A − B ∣ + β ∣ B − A ∣ T(A,B) = \frac{|A \bigcap B|}{|A \bigcap B| + \alpha |A - B| + \beta |B - A|} T(A,B)=AB+αAB+βBAAB
    再抄一遍Dice系数公式:
    D S C ( A , B ) = 2 ∣ A ⋂ B ∣ ∣ A ∣ + ∣ B ∣ DSC(A,B) = 2\frac{|A\bigcap B |}{|A| + |B|} DSC(A,B)=2A+BAB,此时A为预测,而B为真实标签。
    观察可得当设置 α = β = 0.5 \alpha = \beta = 0.5 α=β=0.5,此时Tversky系数就是Dice系数。而当设置 α = β = 1 \alpha = \beta = 1 α=β=1时,此时Tversky系数就是Jaccard系数。
    对于Tversky loss也是相似的形式就不重新编写了,但是在 T ( A , B ) T(A,B) T(A,B)中, ∣ A − B ∣ |A - B| AB则意味着是FP(假阳性),而 ∣ B − A ∣ |B - A| BA则意味着是FN(假阴性); α 和 β \alpha和 \beta αβ分别控制假阴性和假阳性。通过调整 α \alpha α β \beta β我们可以控制假阳性和假阴性之间的权衡。
    不同的 α \alpha α β \beta β下各个指标的结果:
    在这里插入图片描述
    在极小的病灶下的分割效果图如下:
    在这里插入图片描述
    在较大病灶下的分割结果:
    在这里插入图片描述
    考虑到处理数据类别极度不均衡情况下的指标FP和FN,在牺牲一定精度的情况下,从而提高像素分类的召回率

    代码参考keras

    def tversky(y_true, y_pred):
        y_true_pos = K.flatten(y_true)
        y_pred_pos = K.flatten(y_pred)
        true_pos = K.sum(y_true_pos * y_pred_pos)
        false_neg = K.sum(y_true_pos * (1-y_pred_pos))
        false_pos = K.sum((1-y_true_pos)*y_pred_pos)
        alpha = 0.7
        return (true_pos + smooth)/(true_pos + alpha*false_neg + (1-alpha)*false_pos + smooth)
    def tversky_loss(y_true, y_pred):
        return 1 - tversky(y_true,y_pred)
    def focal_tversky(y_true,y_pred):
        pt_1 = tversky(y_true, y_pred)
        gamma = 0.75
        return K.pow((1-pt_1), gamma)
    

    七、敏感性–特异性 loss

    首先敏感性就是召回率,检测出确实有病的能力
    S e n s i t i v i t y = T P T P + F N Sensitivity = \frac{TP}{TP+FN} Sensitivity=TP+FNTP
    特异性,检测出确实没病的能力
    S p e c i f i c i t y = T N T N + F P Specificity = \frac{TN}{TN+FP} Specificity=TN+FPTN
    Sensitivity - Specificity (SS)[8]提出是在:
    S S = λ ∑ n = 1 N ( r n − p n ) 2 r n ∑ n = 1 N r n + ϵ   + ( 1 − λ ) ∑ n = 1 N ( r n − p n ) 2 ( 1 − r n ) ∑ n = 1 N ( 1 − r n ) + ϵ SS = \lambda\frac{\sum_{n=1}^{N}(r_n - p_n)^2r_n}{\sum_{n=1}^{N}r_n + \epsilon} + (1 - \lambda)\frac{\sum_{n=1}^{N}(r_n - p_n)^2(1 - r_n)}{\sum_{n=1}^{N}(1 - r_n) + \epsilon} SS=λn=1Nrn+ϵn=1N(rnpn)2rn +(1λ)n=1N(1rn)+ϵn=1N(rnpn)2(1rn)

    其中左边为病灶像素的错误率即, 1 − S e n s i t i v i t y 1- Sensitivity 1Sensitivity,而不是正确率,所以设置λ 为0.05。其中 ( r n − p n ) 2 (r_n - p_n)^2 (rnpn)2是为了得到平滑的梯度。

    八、Generalized Dice loss

    区域大小和Dice分数之间的相关性:
    在使用DICE loss时,对小目标是十分不利的,因为在只有前景和背景的情况下,小目标一旦有部分像素预测错误,那么就会导致Dice大幅度的变动,从而导致梯度变化剧烈,训练不稳定。
    首先Generalized Dice loss的提出是源于Generalized Dice index[12]。当病灶分割有多个区域时,一般针对每一类都会有一个DICE,而Generalized Dice index将多个类别的dice进行整合,使用一个指标对分割结果进行量化。

    GDL(the generalized Dice loss)公式如下(标签数量为2):
    G D L = 1 − 2 ∑ l = 1 2 w l ∑ n r l n p l n ∑ l = 1 2 w l ∑ n r l n + p l n GDL = 1 - 2\frac{\sum_{l=1}^{2}w_l\sum_nr_{ln}p_{ln}}{\sum_{l=1}^{2}w_l\sum_nr_{ln} + p_{ln}} GDL=12l=12wlnrln+plnl=12wlnrlnpln
    其中 r l n r_{ln} rln为类别l在第n个像素的标准值(GT),而 p l n p_{ln} pln为相应的预测概率值。此处最关键的是 w l w_l wl,为每个类别的权重。其中 w l = 1 ( ∑ n = 1 N r l n ) 2 w_l = \frac{1}{(\sum_{n=1}^{N}r_{ln})^2} wl=(n=1Nrln)21,这样,GDL就能平衡病灶区域和Dice系数之间的平衡。
    论文中的一个效果:
    在这里插入图片描述
    但是在AnatomyNet中提到GDL面对极度不均衡的情况下,训练的稳定性仍然不能保证。
    参考代码

    def generalized_dice_coeff(y_true, y_pred):
        Ncl = y_pred.shape[-1]
        w = K.zeros(shape=(Ncl,))
        w = K.sum(y_true, axis=(0,1,2))
        w = 1/(w**2+0.000001)
        # Compute gen dice coef:
        numerator = y_true*y_pred
        numerator = w*K.sum(numerator,(0,1,2,3))
        numerator = K.sum(numerator)
        denominator = y_true+y_pred
        denominator = w*K.sum(denominator,(0,1,2,3))
        denominator = K.sum(denominator)
        gen_dice_coef = 2*numerator/denominator
        return gen_dice_coef
    def generalized_dice_loss(y_true, y_pred):
        return 1 - generalized_dice_coeff(y_true, y_pred)
    

    以上本质上都是根据评测标准设计的loss function,有时候普遍会受到目标太小的影响,导致训练的不稳定;对比可知,直接使用log loss等的loss曲线一般都是相比较光滑的。

    九、BCE + Dice loss

    BCE : Binary Cross Entropy
    说白了,添加二分类交叉熵损失函数。在数据较为平衡的情况下有改善作用,但是在数据极度不均衡的情况下,交叉熵损失会在几个训练之后远小于Dice 损失,效果会损失。
    代码:

    import keras.backend as K
    from keras.losses import binary_crossentropy
    def dice_coef(y_true, y_pred, smooth=1):
        intersection = K.sum(y_true * y_pred, axis=[1,2,3]) ##y_true与y_pred都是矩阵!(Unet)
        union = K.sum(y_true, axis=[1,2,3]) + K.sum(y_pred, axis=[1,2,3])
        return K.mean( (2. * intersection + smooth) / (union + smooth), axis=0)
    def dice_p_bce(in_gt, in_pred):
        return 1e-3*binary_crossentropy(in_gt, in_pred) - dice_coef(in_gt, in_pred)
    

    -------更新2018-11-8

    keras.losses.binary_crossentropy
    

    只沿最后一个轴进行计算[3]。因此,binary_crossentropy(y_true,y_pred)+ dice_loss(y_true,y_pred)仍将是(batch_size,height,width)张量。
    改进:

    K.mean(binary_crossentropy(y_true,y_pred))+ dice_loss(y_true,y_pred)
    

    正确性有待验证。

    思考:Dice + Focal loss ???
    ------------------更新2018-11-18

    十、Dice + Focal loss

    最近腾讯医疗AI新突破:提出器官神经网络,全自动辅助头颈放疗规划 | 论文[2] 中提出了Dice + Focal loss来处理小器官的分割问题。在前面的讨论也提到过,直接使用Dice会使训练的稳定性降低[1],而此处再添加上Focal loss这个神器。
    首先根据论文的公式:
    T P p ( c ) = ∑ n = 1 N p n ( c ) g n ( c ) TP_p(c) = \sum_{n=1}^{N}p_n(c)g_n(c) TPp(c)=n=1Npn(c)gn(c)
    F N p ( c ) = ∑ n = 1 N ( 1 − p n ( c ) ) g n ( c ) FN_p(c) = \sum_{n=1}^{N}(1-p_n(c))g_n(c) FNp(c)=n=1N(1pn(c))gn(c)
    F P n ( c ) = ∑ n = 1 N p n ( c ) ( 1 − g n ( c ) ) FP_n(c) = \sum_{n=1}^{N}p_n(c)(1-g_n(c)) FPn(c)=n=1Npn(c)(1gn(c))
    L D i c e = ∑ c = 0 C T P n ( c ) T P p ( c ) + α F N p ( c ) + β F P p ( c ) − L_{Dice} = \sum_{c=0}^{C} \frac{TP_n(c)}{TP_p(c) + \alpha FN_p(c) + \beta FP_p(c)} - LDice=c=0CTPp(c)+αFNp(c)+βFPp(c)TPn(c)
    其中 T P p ( c ) , F N p ( c ) , F P p ( c ) TP_p(c) ,FN_p(c) ,FP_p(c) TPp(c)FNp(c)FPp(c),分别对于类别c的真阳性,假阴性,假阳性。此处的 α = β = 0.5 \alpha = \beta = 0.5 α=β=0.5,此时Tversky系数就是Dice系数,为Dice loss。
    最终的loss为:
    L = L D i c e + λ L F o c a l = C − ∑ c = 0 C T P n ( c ) T P p ( c ) + α F N p ( c ) + β F P p ( c ) − λ 1 N ∑ c = 0 C ∑ n = 1 N g n ( c ) ( 1 − p n ( c ) ) 2 l o g ( p n ( c ) ) L = L_{Dice} + \lambda L_{Focal} = C - \sum_{c=0}^{C} \frac{TP_n(c)}{TP_p(c) + \alpha FN_p(c) + \beta FP_p(c)} - \lambda \frac{1}{N} \sum_{c=0}^{C} \sum_{n=1}^{N}g_n(c)(1-p_n(c))^2log(p_n(c)) L=LDice+λLFocal=Cc=0CTPp(c)+αFNp(c)+βFPp(c)TPn(c)λN1c=0Cn=1Ngn(c)(1pn(c))2log(pn(c))
    论文中头颈部癌症放疗靶区自动勾画效果展示:
    在这里插入图片描述
    项目地址

    Focal loss理论上应该还是会得到很大的值?

    十一、Exponential Logarithmic loss

    加权的DICE LOSS进行对比,此方法觉得而且这种情况跟不同标签之间的相对尺寸无关,但是可以通过标签频率来进行平衡[9]。
    结合了focal loss以及Dice loss。此loss的公式如下:
    L E X P = w d i c e ∗ L D i c e + w C r o s s ∗ L C r o s s L_{EXP} = w_{dice}*L_{Dice} + w_{Cross}*L_{Cross} LEXP=wdiceLDice+wCrossLCross L D i c e L_{Dice} LDice为 指数log Dice损失, L C r o s s L_{Cross} LCross为指数交叉熵损失。
    L D i c e = E [ ( − l n ( D i c e i ) ) γ D i c e ] L_{Dice} = E[(-ln({Dice}_i))^{\gamma_{Dice}}] LDice=E[(ln(Dicei))γDice]
    i i i为label。
    复习一下交叉熵损失:
    L C E = − l o g ( p l ( x ) ) L_{CE} = -log(p_l(x)) LCE=log(pl(x))
    新的指数交叉熵损失:
    L C r o s s = w l ( − l n ( p l ( x ) ) ) γ C r o s s L_{Cross} = w_l(-ln(p_l(x)))^{\gamma_{Cross}} LCross=wl(ln(pl(x)))γCross
    其中, w l = ( ∑ k f k f l ) 0.5 w_l = (\frac{\sum_kf_k}{f_l})^{0.5} wl=(flkfk)0.5 f k f_k fk为标签k的出现频率, w l w_l wl这个参数可以减小出现频率较高的类别权重。由公式可知, w l w_l wl f l f_l fl的增大而变小,即减小权重,反之如果 f l f_l fl太大,那么权重会变小
    γ D i c e \gamma_{Dice} γDice γ C r o s s \gamma_{Cross} γCross,提升非线性的作用。
    如下图显示的是不同的指数log非线性表现:
    在这里插入图片描述
    新增添了4个参数权重分别是 w D i c e w_{Dice} wDice w C r o s s w_{Cross} wCross γ D i c e \gamma_{Dice} γDice γ C r o s s \gamma_{Cross} γCross,给调参带来不小的麻烦。

    以上都是针对多种loss的简单结合或者是加权结合,可能也有些小的改进,但如何平衡两个或者多个loss也是偏经验的调参问题。


    如果有好的方式方法可以在此讨论:小目标的图像语义分割,有什么解决类别不平衡的方法吗?[5]
    所有代码将整理到GitHub。


    参考

    [1] C. H. Sudre, W. Li, T. Vercauteren, S. Ourselin, and M. J. Cardoso, “Generalised dice overlap as a deep learning loss function for highly unbalanced segmentations,” in Deep Learning in Medical Image Analysis and Multimodal Learning for Clinical Decision Support, 2017.
    [2] AnatomyNet: Deep Learning for Fast and Fully Automated Whole-volume Segmentation of Head and Neck Anatomy: https://arxiv.org/pdf/1808.05238.pdf
    [3] https://www.kaggle.com/c/airbus-ship-detection/discussion/70549
    [4] https://www.kaggle.com/kmader/baseline-u-net-model-part-1
    [5] 小目标的图像语义分割,有什么解决类别不平衡的方法吗?:https://www.zhihu.com/question/297255242/answer/505965855
    [6] Generalised Dice overlap as a deep learning loss function for highly unbalanced segmentations-2017
    [7] Ronneberger, O., Fischer, P., Brox, T.: U-net: Convolutional networks for biomedical image segmentation. In: MICCAI. pp. 234–241. Springer (2015)
    [8] Brosch, T., Yoo, Y., Tang, L.Y., Li, D.K., Traboulsee, A., Tam, R.: Deep convolutional encoder networks for multiple sclerosis lesion segmentation. In: MICCAI 2015. pp. 3–11. Springer (2015)
    [9]3D Segmentation with Exponential LogarithmicLoss for Highly Unbalanced Object Sizes-MICCAI2018【论文理解】
    [10]Dice-coefficient loss function vs cross-entropy
    [11]Md Atiqur Rahman and Yang Wang, Optimizing Intersection-Over-Union in Deep Neural Networks for Image Segmentation
    [12]Crum, W., Camara, O., Hill, D.: Generalized Overlap Measures for Evaluation and Validation in Medical Image Analysis. IEEE TMI 25(11), 1451–1461 (nov 2006)

    展开全文
  • 机器学习(概述一)——定义

    万次阅读 2019-05-28 16:18:17
    聚类算法,是最大似然估计上的一个提升,功能是将n个对象根据属性特征分为k个分割(k),属于无监督学习 PageRank Google搜索重要算法之一,其实和机器学习关系不是很大 AdaBoost 迭代算法;利用多个...
  • 传统图像分割方法详解

    千次阅读 2022-02-11 10:41:04
    详解传统图像分割方法
  • 一文详解激光点云的地面分割

    千次阅读 2021-03-15 12:28:14
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达文章导读 采用传统的点云处理算法做障碍物检测有一个重要的环节就是地面分割,本文介绍各种常用的地面分割方法,并通过实际测试分析其场景的...
  • 语义分割简介

    千次阅读 2019-01-30 15:22:07
    原文地址:...图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自 2007 年以来,语义...
  • 图像分割·简介

    千次阅读 2017-10-25 17:06:02
    在学习图像分割和目标检测方向的知识,今天开始决定通过写博客来理一理自己的一些认识,以方便加强相关知识点的认知,也督促自己的学习。分三个阶段介绍,第一阶段介绍传统分割方法;第二阶段介绍一些比较高级的分割...
  • Pytorch 深度学习实战教程(二):UNet语义分割网络

    千次阅读 多人点赞 2020-05-23 11:00:16
    UNet语义分割算法原理,看本文就够了!
  • 数字图像处理-图像分割-复习总结

    千次阅读 2021-12-14 19:15:08
    文章目录数学图像处理图像分割图像分割基础基于边界的图像分割(非连续性分割)边缘检测**一阶差分算子**(掌握)二阶差分算子边缘检测算子的比较(掌握)基于阈值的图像分割(相似性分割)**交互方式全局阈值法****...
  • 图像分割综述

    万次阅读 多人点赞 2019-07-09 22:03:48
    所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致或相似,而在不同区域间表现出明显的不同。简单的说就是在一副图像中,把目标...
  • 实时语义分割脉络梳理

    千次阅读 多人点赞 2020-04-03 20:55:56
    作为计算机视觉中的一个经典的问题,语义分割已经受到了学界的广泛关注。语义分割是针对输入的图像的每个像素,预测出该像素属于何种类别。这种相对于目标检测提供边界框信息而言,能够产生更加稠密的预测,因此提供...
  • 医学图像分割评判标准及程序代码

    千次阅读 多人点赞 2019-10-22 18:49:01
    1.图像分割指标 前言 在医学分割算法中,通常医生的手绘标注作为金标准(Ground Truth,简称GT),其他算法分割的作为预测结果(Rseg,简称SEG)。 分类问题 考虑一个二分类的情况,类别为1和0,我们将1和0分别作为正...
  • 【图像分割】医学图像分割入门实践(附源码)

    万次阅读 多人点赞 2021-10-22 11:46:15
    有一定深度学习图像分割基础,至少阅读过部分语义分割或者医学图像分割文献 前面的一篇医学图像分割多目标分割(多分类)实践文章记录了笔者在医学图像分割踩坑入门的实践,当时仅仅贴了一些代码不够详细。通过博客...
  • 一文详解实时稀疏点云分割

    千次阅读 2020-09-20 00:00:00
    这种方法的好处是文中反复提及多次这种方法的优点 :首先,我们可以直接在深度图像中利用明确定义的邻域关系,这使得分割问题更容易。其次,我们避免生成3D点云,这使得整体方法的计算速度更快。 在下图中展示了分割...
  • 场景分割是机器视觉中的重要任务,尤其对家庭机器人而言,优秀的场景分割算法是实现复杂功能的基础。图像分割的做法大概有两种:剑宗——自底向上:先将图像聚类成小的像素团再慢慢合并;气宗——自顶向下:用多尺度...
  • 点云分割 博文末尾支持二维码赞赏哦_ 点云分割是根据空间,几何和纹理等特征对点云进行划分, 使得同一划分内的点云拥有相似的特征,点云的有效分割往往是许多应用的前提, 例如逆向工作,CAD领域对零件的不同...
  • 基于区域分割(图像分割

    千次阅读 2021-02-11 22:29:06
    1. 区域生长区域增长方法是根据...区域内象素的相似度量可以包括平均灰度值、纹理、颜色等信息。区域增长方法是一种比较普遍的方法,在没有先验知识可以利用时,可以取得最佳的性能,可以用来分割比较复杂的图象...
  • 图像分割、图像超分辨率简介

    千次阅读 2021-11-07 17:24:06
    图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致或相似,而在不同区域间表现出明显的不同。简单的说就是在一副图像中,把目标从...
  • 理解什么是线程安全、原子

    万次阅读 2019-12-29 11:56:30
    •原子 加锁机制 •写在前面 进程想要执行任务需要依赖线程,换句话说就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。提到多线程这里要说两个概念,就是串行和并行,搞清楚这个我们才能更好...
  • 综述|图像分割技术介绍

    千次阅读 2021-09-04 01:10:11
    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 图像分割(image segmentation)技术是计算机视觉领域的一个重要的研究方向,是图像语...
  • 视频目标分割总结

    千次阅读 多人点赞 2020-07-06 14:59:25
    视频目标分割分类 最近听了阿里巴巴王文冠老师“基于深度学习技术的视频分割”的讲座,...1.无监督VOS:在测试阶段,要求任何用户输入,通常是自动分割视频中最关键,最显著的目标。 2.半监督VOS:在测试阶段,用户提
  • 道路场景语义分割综述_王飞龙

    千次阅读 2020-10-16 11:07:02
    挖坑:暂时还没有理解的定义或者方法,但因为暂时重要留到后面看 论文结构 一、引言 1、道路场景语义分割定义 针对道路场景进行语义分割是对采集到的道路场景图像中的每个像素都划分到对应的类别,实现道路...
  • 计算机视觉算法——目标检测网络总结计算机视觉算法——图像分割网络总结MaskRCNNSegNetDeepLabCountour Detection and Hierachical Image SegmentationEfficient Graph-Based Image SegmentationSLICU-NetMean ...
  • C++分割字符串

    千次阅读 2020-03-30 12:26:05
    利用C++中的strtok函数来将string使用指定字符串分割。 strtok函数 头文件:#include <cstring> 函数原型:char * strtok (char *str, const char * delimiters); 参数:str:待分割的字符串(c-string)...
  • 图像分割技术

    千次阅读 2022-01-18 20:45:30
    最近看了图像分割的基础内容,希望对读者有用
  • 变量变量的命名规则:不能以数字开头,只能以字母或下划线开头变量名要简短且具有描述变量名中不能包含空格,可以用下划线分隔不可使用Python关键字和函数作为变量名慎用小写字母l和大写字母O,容易被看错变量名...
  • 计算机视觉之分割

    千次阅读 2019-09-14 10:47:30
    今天是中秋节的第二天,我写该文章的目的是来总结一下计算机视觉之图像分割相关内容,这些内容是对网络上所有内容的归纳,参考了两位博主的优秀博文,具体链接我会在后面给出。为什么要进行图像分割研究呢?图像分割...
  • 显著物体检测与分割

    千次阅读 2016-09-25 16:11:23
    显著物体检测与分割 活动时间:2014年9月4日星期4,北京时间20:00开始。 主持人:山世光 主讲人:卢湖川,李寅,程明明,等 专题题目:显著物体检测与分割 1. 相关文献阅读 Salient Object ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 273,738
精华内容 109,495
热门标签
关键字:

不可分割性的定义

友情链接: LaserCAD.rar