图像分割是计算机视觉中的一项关键任务,其目标是将图像划分为不同的有意义且可区分的区域或对象。这是物体识别、跟踪和检测、医学成像和机器人等各种应用中的一项基本任务。
许多技术可用于图像分割,从传统方法到基于深度学习的方法。随着深度学习的出现,图像分割的准确性和效率显着提高。
在本指南中,我们将讨论图像分割的基础知识,包括不同类型的分割、应用程序以及用于图像分割的各种技术,包括传统的深度学习和基础模型技术。我们还将介绍用于评估图像分割算法的评估指标和数据集以及图像分割的未来方向。在本指南结束时,您将更好地了解图像分割、其应用以及用于分割图像的各种技术。
如果您是数据科学家、机器学习工程师或您的团队正在考虑使用图像分割作为人工智能计算机视觉项目的一部分,那么本指南适合您。
图像分割是根据图像的固有特征(例如颜色、纹理、形状或亮度)将图像划分为多个有意义且同质的区域或对象的过程。图像分割旨在简化和/或将图像的表示更改为更有意义且更易于分析的内容。在这里,每个像素都被标记。属于同一类别的所有像素都分配有一个共同的标签。分割任务可以进一步通过两种方式完成:
根据应从图像中提取的信息量和类型,图像分割模式分为三类:实例、语义和全景。让我们看看图像分割方法的这些不同模式。
另外,为了理解图像分割的三种模式,了解更多关于物体和背景的信息会更方便。
物体是图像中可识别的实体,可以通过分配唯一的ID来区分彼此,而背景是指图像中无法计数的部分,例如天空、水体和其他类似元素。通过区分对象和背景,可以更容易地理解图像分割的不同模式及其各自的应用。
实例分割是一种图像分割,涉及检测和分割图像中的每个对象。它与对象检测类似,但增加了分割对象边界的任务。该算法不知道区域的类别,但它会分离重叠的对象。实例分割在需要识别和跟踪单个对象的应用程序中非常有用。
语义分割是一种图像分割,涉及使用相应的类标签来标记图像中的每个像素,而不考虑其他信息或上下文。目标是为图像中的每个像素分配一个标签,从而提供图像的密集标签。该算法以图像作为输入并生成分割图,其中图像的像素值 (0,1,…255) 被转换为类标签 (0,1,…n)。它在识别道路上不同类别的物体很重要的应用中非常有用。
全景分割是语义分割和实例分割的结合。它涉及用类标签标记每个像素并识别图像中的每个对象实例。这种图像分割模式从机器学习算法中提供了最大量的高质量粒度信息。它在计算机视觉模型需要检测环境中不同对象并与其交互的应用中非常有用,例如自主机器人。
每种类型的分割都有其独特的特征,并且在不同的应用中很有用。在下一节中,我们将讨论图像分割的各种应用。
传统的图像分割技术已经在计算机视觉领域使用了数十年,以从图像中提取有意义的信息。这些技术基于数学模型和算法,可识别具有共同特征(例如颜色、纹理或亮度)的图像区域。传统的图像分割技术通常计算效率高并且实现起来相对简单。它们通常用于需要快速准确的图像分割的应用,例如对象检测、跟踪和识别。在本节中,我们将探讨一些最常见的技术。
阈值处理是最简单的图像分割方法之一。这里,根据像素相对于固定值或阈值的直方图强度将像素分为几类。该方法适用于分割两个目标类之间像素值差异显着的对象。在低噪声图像中,阈值可以保持恒定,但对于有噪声的图像,动态阈值处理效果更好。在基于阈值的分割中,灰度图像根据其与阈值的关系被分为两部分,产生二值图像。轮廓检测和识别等算法适用于这些二值化图像。两种常用的阈值方法是:
全局阈值是图像分割中使用的一种技术,根据像素强度值将图像划分为前景区域和背景区域。选择阈值来分隔两个区域,强度值高于阈值的像素被分配给前景区域,而强度值低于阈值的像素被分配给背景区域。此方法简单且高效,但对于具有不同照明或对比度的图像可能效果不佳。在这些情况下,自适应阈值技术可能更合适。
自适应阈值处理是图像分割中使用的一种技术,通过根据图像特征局部调整阈值,将图像分为前景区域和背景区域。该方法涉及基于每个较小区域或块内像素值的统计来选择该阈值。自适应阈值处理对于照明不均匀或对比度变化的图像非常有用,通常用于文档扫描、图像二值化和图像分割。自适应阈值技术的选择取决于具体的应用要求和图像特征。
基于区域的分割是图像处理中使用的一种技术,根据相似性标准(例如颜色、纹理或强度)将图像划分为多个区域。该方法涉及根据像素的相似性将像素分组为区域或簇,然后合并或分割区域,直到达到所需的分割水平。两种常用的基于区域的分割技术是:
分割和合并分割是一种基于区域的分割技术,它递归地将图像划分为更小的区域,直到满足停止标准,然后合并相似的区域以形成更大的区域。该方法涉及将图像分割成更小的块或区域,然后合并满足某些相似性标准(例如相似的颜色或纹理)的相邻区域。分割和合并分割是一种简单而有效的图像分割技术,但对于具有重叠或不规则区域的复杂图像可能效果不佳。
基于图的分割是图像处理中使用的一种技术,根据区域之间的边缘或边界将图像划分为多个区域。该方法涉及将图像表示为图,其中节点表示像素,边表示像素之间的相似性。然后通过最小化成本函数(例如标准化切割或最小生成树)将图划分为多个区域。
基于边缘的分割是图像处理中用于识别图像边缘并将其与背景分离的技术。该方法涉及检测图像中像素的强度或颜色值的突然变化,并使用它们来标记对象的边界。两种最常见的基于边缘的分割技术是:
Canny 边缘检测是一种流行的边缘检测方法,它使用多阶段算法来检测图像中的边缘。该方法包括使用高斯滤波器平滑图像,计算图像的梯度大小和方向,应用非极大值抑制来细化边缘,并使用滞后阈值来去除弱边缘。
Sobel 边缘检测是一种边缘检测方法,它使用基于梯度的方法来检测图像中的边缘。该方法涉及使用 Sobel 算子计算图像的梯度大小和方向,Sobel 算子是一个分别提取水平和垂直边缘信息的卷积核。
高斯拉普拉斯 (LoG) 边缘检测是一种将高斯平滑与拉普拉斯算子相结合的边缘检测方法。该方法包括对图像应用高斯滤波器以去除噪声,然后应用拉普拉斯算子来突出显示边缘。 LoG 边缘检测是一种稳健且准确的边缘检测方法,但其计算成本较高,并且对于具有复杂边缘的图像可能效果不佳。
聚类是用于图像分割的最流行的技术之一,因为它可以将具有相似特征的像素分组为聚类或片段。基于聚类的分割背后的主要思想是根据像素的相似性将像素分组为聚类,其中每个聚类代表一个片段。这可以使用各种聚类算法来实现,例如K均值聚类、均值平移聚类、层次聚类和模糊聚类。
K-均值聚类是一种广泛使用的图像分割聚类算法。在这种方法中,图像中的像素被视为数据点,算法根据这些数据点的相似性将它们划分为 K 个簇。使用距离度量来测量相似性,例如欧几里得距离或马哈拉诺比斯距离。该算法首先随机选择 K 个初始质心,然后迭代地将每个像素分配给最近的质心,并根据分配像素的平均值更新质心。这个过程一直持续到质心收敛到稳定值。
均值漂移聚类是另一种用于图像分割的流行聚类算法。在这种方法中,每个像素都表示为高维空间中的一个点,并且算法将每个点向局部密度最大值的方向移动。重复此过程直到收敛,其中每个像素根据最近的局部密度最大值分配给一个簇。
虽然这些技术很简单,但速度快且内存效率高。但这些技术也更适合更简单的分割任务。它们通常需要根据用例进行调整来定制算法,并且在复杂场景中提供的准确性也有限。
神经网络还通过训练神经网络来识别图像中哪些特征很重要,从而提供图像分割解决方案,而不是像传统算法那样依赖自定义函数。执行分割任务的神经网络通常使用编码器-解码器结构。编码器通过更窄和更深的滤波器提取图像的特征。如果编码器针对图像或人脸识别等任务进行了预训练,那么它就会使用该知识来提取特征以进行分割(迁移学习)。然后,解码器在一系列层上将编码器的输出膨胀为类似于输入图像的像素分辨率的分割掩模。
许多深度学习模型非常擅长可靠地执行分割任务。让我们看一下其中的一些:
U-Net 是一种改进的全卷积神经网络。它主要是为了医疗目的而提出的,即检测肺部和大脑中的肿瘤。它具有相同的编码器和解码器。编码器用于使用快捷连接来提取特征,这与通过上采样提取特征的全卷积网络不同。 U-Net中的快捷连接是为了解决信息丢失的问题而设计的。在U-Net架构中,编码器和解码器的设计方式使得网络通过将高级特征与低级特征连接来捕获更精细的信息并保留更多信息。这使得网络能够产生更准确的结果。
SegNet 也是一个深度全卷积网络,专为语义像素分割而设计。与 U-Net 一样,SegNet 的架构也由编码器和解码器块组成。 SegNet 与其他神经网络的不同之处在于它使用解码器对特征进行上采样的方式。解码器网络使用在最大池层中计算的池索引,这反过来又使编码器执行非线性上采样。这消除了学习上采样的需要。 SegNet 主要是为场景理解应用程序而设计的。
DeepLab 主要是一个卷积神经网络 (CNN) 架构。与其他两个网络不同,它使用每个卷积块的特征,然后将它们连接到反卷积块。神经网络使用最后一个卷积块的特征,并像全卷积网络(FCN)一样对其进行上采样。它使用空洞卷积或扩张卷积方法进行上采样。空洞卷积的优点是在捕获更多信息的同时降低了计算成本。
基础模型也已用于图像分割,将图像划分为不同的区域或片段。与通常基于 Transformer 架构的语言模型不同,图像分割的基础模型通常使用旨在处理图像数据的卷积神经网络 (CNN)。
分段任意模型 (SAM) 被认为是图像分割的第一个基础模型。 SAM 基于迄今为止最大的分割数据集构建,拥有超过 10 亿个分割掩码。它被训练为任何提示返回有效的分割掩码,其中提示可以是前景/背景点、粗框或掩码、自由格式文本或指示在图像中分割什么的一般信息。在底层,图像编码器为图像生成一次性嵌入,而轻量级编码器将任何提示实时转换为嵌入向量。这两个信息源被组合在一个轻量级解码器中,该解码器可以预测分割掩模。
像素精度是图像分割中常用的评价指标,用于衡量分割算法的整体精度。定义为正确分类的像素数与图像中像素总数的比值。
像素精度是一个简单且易于理解的指标,可以快速评估分割性能。然而,它没有考虑地面实况和预测分割之间的空间对齐,这在某些应用中可能很重要。
此外,像素精度可能对类别不平衡敏感,其中一个类别的像素明显多于另一类别。这可能会导致对算法性能的评估出现偏差。
Dice 系数衡量两组二进制数据之间的相似性,在本例中为地面实况分割和预测分割。Dice 系数计算如下
其中交集是被地面实况和预测分割正确分类为正的像素的数量,地面实况和预测是各自分段中正像素的总数。
Dice系数的范围为0到1,值越高表示分割性能越好。值为 1 表示真实分割和预测分割之间完美重叠。
Dice 系数是图像分割的常用指标,因为它对分割中的微小变化敏感,并且不受类别不平衡的影响。然而,它没有考虑地面实况和预测分割之间的空间对齐,这在某些应用中可能很重要。
Jaccard 指数,也称为并集交集 (IoU) 分数,衡量真实分割和预测分割之间的相似度。其公式为
其中交集是被地面实况和预测分割正确分类为正的像素的数量,地面实况和预测是各自分段中正像素的总数。
IoU 分数范围为 0 到 1,值越高表示分割性能越好。值为 1 表示真实分割和预测分割之间完美重叠。
Jaccard指数同时考虑了真阳性和假阳性,并且不受类别不平衡的影响。它还考虑了地面实况和预测分割之间的空间对齐。
图像分割算法的评估是计算机视觉研究中的一项关键任务。为了衡量这些算法的性能,已经开发了各种基准数据集。我们将讨论用于评估图像分割算法的三个流行数据集。这些数据集提供了经过仔细注释的图像和像素级注释,使研究人员能够测试和比较其分割算法的有效性。
巴克利分割数据集是轮廓检测的标准基准。该数据集旨在测试自然边缘检测,除了对象内部和外部边界以及对象轮廓之外,它还考虑背景边界。它包括从多个用户收集的 500 张自然图像,并带有仔细注释的边界。数据集分为三部分:200 个用于训练,100 个用于验证,其余 200 个用于测试。
Pascal VOC 分割数据集是用于评估图像分割算法的流行基准数据集。它包含来自 20 个对象类别的图像,并为每个图像提供像素级注释。数据集分为训练集、验证集和测试集,测试集用于评估分割算法的性能。 Pascal VOC 分割数据集已被用作各种计算机视觉挑战的基准,包括 Pascal VOC 挑战和 COCO 挑战。
Microsoft Common Objects in Context (COCO) 分割数据集是另一个广泛使用的用于评估图像分割算法的数据集。它包含超过 330,000 张带有对象注释的图像,包括 80 个对象类别的分割。数据集分为训练集、验证集和测试集,其中测试集包含约 5,000 张图像。 MS COCO 分割数据集通常用作评估各种计算机视觉挑战(包括 COCO 挑战赛)中的分割算法的基准。
自动分割是指在无需人工干预的情况下自动分割图像的过程。使用 Meta 的 Segment Anything Model (SAM) 进行自动分割立即变得流行起来,因为它在图像分割任务中表现出了卓越的性能。它是一个单一模型,可以轻松执行交互式分割和自动分割。由于 SAM 是在多样化的高质量数据集上进行训练的,因此它可以推广到训练期间观察到的新类型的对象和图像。这种泛化能力意味着,总的来说,从业者将不再需要收集他们的细分数据并针对他们的用例微调模型。
提高分割精度是计算机视觉领域研究人员的主要目标之一。准确的分割对于各种应用至关重要,包括医学成像、物体识别和自动驾驶汽车。尽管近年来深度学习技术在分割精度方面取得了显着提高,但仍有很大的改进空间。以下是研究人员正在努力提高分割准确性的一些方法:
合并其他数据源:提高分割准确性的一种方法是合并原始图像数据之外的其他数据源。例如,深度信息可以为对象边界和分割提供有价值的线索,特别是在具有遮挡和杂乱的复杂场景中。
虽然深度学习技术在分割任务中表现出了卓越的性能,但聚类、阈值处理和形态学操作等传统技术仍然可以提供有用的见解并提高准确性。
以下是研究人员将深度学习与传统图像分割技术相结合的一些方法:
图像分割在各个领域具有广泛的应用,包括医学成像、机器人、自动驾驶车辆和监控。以下是图像分割如何在不同领域使用的一些示例:
图像分割是一种强大的技术,使我们能够识别和分离图像中的不同对象或区域。它在医学成像、机器人、计算机视觉等领域有着广泛的应用。在本指南中,我们介绍了各种图像分割技术,包括阈值处理、基于区域的分割、基于边缘的分割和聚类等传统技术,以及深度学习和基础模型技术。我们还讨论了用于评估分割算法的不同评估指标和数据集。
随着图像分割的不断进步,未来的方向将集中在提高分割精度、将深度学习与传统技术相结合、探索各个领域的新应用。使用Segment Anything Model(SAM)进行自动分割是一个有前途的方向,可以减少人工干预并提高准确性。深度学习与传统技术的集成还有助于克服个别技术的局限性并提高整体性能。随着不断的研究和发展,我们可以预期图像分割将继续为各个领域和行业做出重大贡献。