图像分割

用于图像语义识别的技术

图像分割

图像分割(Image Segmentation),是指将图像分成若干互不重叠的子区域,使得同一个子区域内的特征具有一定相似性,例如颜色、亮度或纹理[2],不同子区域间特征呈现较为明显的差异[3]。这种技术是许多图像分析任务中的第一步,如对象检测、跟踪及场景理解[4]。图像分割的研究起始于20世纪80年代,当时计算机视觉领域刚刚兴起。早期的分割方法主要基于阈值分割、边缘检测和区域生长等技术[5],这些方法对于简单的图像场景能够取得较好的效果。2000年到2010年期间[6],随着计算机硬件的发展和图像处理需求的增加,这一时期,基于图论的分割方法和基于聚类的分割方法开始受到关注,分割的效果也因此得到了改善[7]。21世纪初,随着深度学习的兴起,基于卷积神经网络(CNN)的分割方法开始成为主流,这些方法能够处理更加复杂的图像,并提高了分割的准确性和效率[6]。

图像分割(Image Segmentation),是指将图像分成若干互不重叠的子区域,使得同一个子区域内的特征具有一定相似性,例如颜色、亮度或纹理[3],不同子区域间特征呈现较为明显的差异[4]。这种技术是许多图像分析任务中的第一步,如对象检测、跟踪及场景理解[5]

图像分割的研究起始于20世纪80年代,当时计算机视觉领域刚刚兴起。早期的分割方法主要基于阈值分割、边缘检测和区域生长等技术[6],这些方法对于简单的图像场景能够取得较好的效果。2000年到2010年期间[7],随着计算机硬件的发展和图像处理需求的增加,这一时期,基于图论的分割方法和基于聚类的分割方法开始受到关注,分割的效果也因此得到了改善[8]。21世纪初,随着深度学习的兴起,基于卷积神经网络(CNN)的分割方法开始成为主流,这些方法能够处理更加复杂的图像,并提高了分割的准确性和效率[7]

图像分割方法包括基于阈值、区域、边缘、图论、聚类等传统的分割方法,以及基于深度学习的分割方法[2]。其在多个领域有着广泛的应用,在医疗影像分析中,识别肿瘤或器官图片,从而辅助诊断和治疗[9]。此外,这项技术还在自动驾驶、工业生产、遥感等领域中发挥着关键作用,它使得计算机能够更好地理解和解释视觉信息[1]。然而,图像分割也面临一些问题与挑战例如,实时图像语义分割、三维场景的语义分割、弱监督或非监督语义分割、小尺寸目标分割、复杂背景图像分割、光照变化等[10][11]。其未来发展方向有创建更具挑战性的数据集、构建可解释的深度模型、构建内存高效模型等[12]

概述

图像分割是指将图像划分成互不相交的、有意义的子区域,在同一个区域的像素点具有一定的相关性,不同区域的像素点存在一定的差异性,即是对图片中有相同性质的像素赋予相同标签的过程。[4]

分割的目的是把图像空间分成一些有意义的区域。例如一幅航空照片,可以分割成工区、住宅区、湖泊、森林等。可以以逐个像素为基础去研究图像分割,也可以利用在规定领域中的某些图像信息去分割。分割的依据可建立在相似性和非连续性两个基本概念之上。[13]目标是简化或改变图像的表达形式,使其更容易分析。在图像分割过程中,每个像素被分配到一个特定的类别,从而根据某些共有特征如颜色、强度或纹理将相似的像素聚集在一起[3]。这种技术是许多图像分析任务中的第一步,如对象检测、跟踪及场景理解[5]

发展历史

最早的图像分割方法应用在医学影像处理领域,对影像中的特定目标分割后再进行医疗分析诊断。由于医学影像场景简单,背景和目标区别明显,在该领域中大多是通过简单的基于阈值的方法进行粗糙的像素级别的分割。随着分割场景的复杂化,对分割技术的要求也愈加严格,陆续出现了基于边缘区域、聚类、图论等的分割方法,分割的效果也因此得到了改善。特别是将深度学习引入到图像处理领域后,赋予了分割区域更准确的语义信息,图像分割问题也取得了突破性的进展[2]

早期传统分割方法阶段

在2000年之前,图像分割技术主要依赖于一些传统方法,如阈值分割、区域增长、边缘检测等。这些方法通常基于图像的底层特征,如像素强度、颜色、纹理等。这一时期的图像分割技术相对简单,但为后续研究奠定了基础[7]

日本学者在1978年提出一维OTSU 阈值分割算法,[14]该算法首先选取一个阈值 k,将图像分为前景和背景两部分,并计算两区域的类间方差。类间方差的值越大,代表前景和背景的区别越大,则阈值分割的效果越好[15]。1980年,卡普尔(J. N. Kapur)等人提出全局阈值分割,利用灰度直方图熵进行图片分割的自动阈值选择,可以成功地将图像阈值化为两级图像[16]。1997年阿兰·特雷莫(Alain Tremeau)和娜塔莉·博雷尔(Nathalie Borel)最早提出区域生长法,该算法从区域生长过程开始,基于考虑颜色相似性和空间邻近性的标准,根据仅考虑颜色相似性的标准合并生成的区域,以便在空间上不连接但比色相似的区域中生成正在处理的图像的非分区分割。[17]

基于图论、聚类的分割方法阶段

2000年到2010年期间,随着计算机硬件的发展和图像处理需求的增加,图像分割技术得到了显著提升。这一时期,基于图论的分割方法和基于聚类的分割方法开始受到关注[7]

图论方法通过构建图像的图模型,并利用图切割算法进行分割,能够较好地处理图像中的复杂结构。美国计算机科学家佩德罗·费尔岑什瓦尔布(Pedro F Felzenszwalb)和哈滕洛赫(Huttenlocher)于2004年开发了FH算法,该算法基于图论中的最小生成树原理。它通过对图中顶点进行聚类来划分区域,聚类过程依据的是顶点间的内部相似性和区域间的差异性。[18]Graph Cuts 算法由博伊科夫(Boykov)等人于2006年提出,该算法开始时将整个图看作一个整体,通过不断调整图中节点的分割状态,直到满足最小全局最优目标函数的分割为止,其缺点是需要大量的矩阵广义特征向量运算,且其分割结果更倾向于具有相同的类内相似度[19]

聚类方法则通过将像素或区域划分为不同的群组来实现分割,其优势在于能够处理大量的数据。此外,基于分类的分割方法也开始出现,这些方法通过学习训练数据中的特征来进行分割,提高了分割的准确性和鲁棒性[7]。2007年谢赫(Sheikh)等人提出了一种模式搜索算法,称为 Medoidshift 算法,该算法能自动计算聚类数目,而且数据不必线性可分,但其时间复杂度较高[20]。2009年莱温施泰因(Levinshtein)等人提出了一种几何流的超像素快速生成算法,称为 TurboPixels。该算法将图像分割成近似网格结构的图像块,图像块较好地保持了图像的局部边界,并限制了欠分割的发生,时间复杂度低,适合于百万像素级的大图像[19]。阿坎塔(Achanta)等人在 2012 年提出一种简化的超像素生成方法 SLIC,运行速度、超像素紧凑度、轮廓保持方面都有一定优势,需要的超参数较少[19]

基于深度学习方法阶段

2010年至今,深度学习的兴起为图像分割带来了革命性的变化。特别是卷积神经网络(CNN)的出现,使得图像分割技术实现了从传统手工特征到深度特征的转变。深度学习模型能够自动学习图像中的高级特征,从而在复杂场景中实现更为精确的分割。此外,全卷积网络(FCN)、U-Net、Mask R-CNN、DeepLab系列等深度学习架构的提出,进一步推动了图像分割技术的发展。在2015年,乔纳森·朗(Jonathan Long)等人提出了一种名为 FCN(全卷积网络)的模型,这种结构允许FCN处理任意尺寸的图像输入,并生成像素级的密集预测,实现了真正的端到端图像语义分割。2015 年,德国计算机科学家奥拉夫·龙内伯格(Ronneberger)等人提出了 U-Net 语义分割模型,该模型主要应用于医学细胞检测上,其不仅精度高,普适性也较强。DeepLab-V3 算法于2018年推出,该算法对 ASPP 模块的空间结构进行了优化。这些架构能够在像素级别上进行精确的图像理解,大大提高了分割的精度和效率[7]。DeepLab-V3+ 在 DeepLab-V3 的基础上添加解码结构,DeepLab-v3 模型作为编码部分,对图像进行处理后输出 DCNN 中浅层特征图和经过 ASPP 融合卷积后的特征图,并将两者作为解码部分的输入[21]

基于阈值的图像分割方法

基于阈值的图像分割方法实质是通过设定不同的灰度阈值,对图像灰度直方图进行分类,灰度值在同一个灰度范围内的像素认为属于同一类并具有一定相似性,该类方法是一种常用的灰度图像分割方法。用表示原始图像像素的灰度值,通过设定阈值T,将图像中的像素分为目标和背景两类,实现输入图像到输出图像的变换[22]

其中,表示属于目标类别的图像,表示属于背景类别的图像。

如下图不同阈值情况下的图像分割效果图所示,针对同一灰度图像即原始图像(a),设定不同的灰度阈值 T=80、120、160分别进行阈值分割,分别得到不同效果的分割图(b)、(c)、(d)[22]

不同阈值情况下的图像分割效果图
不同阈值情况下的图像分割效果图
方法名简介优点缺点
全局阈值全局阈值的分割与点的灰度值有关。整幅图像使用同一个阈值做分割处理该方法针对灰度值、对比度近似相同的图像会有较好的处理效果,速度快在目标和背景差异明显、灰度值相差较小的时候,效果较差
局部阈值将图像划分为若干子图像,并对每个子图像选取相应的分割阈值以完成图像的分割能够适应图像中的光照变化和对比度变化,对于背景不均匀的图像有较好的分割效果计算量大,处理时间长,对噪声较为敏感
资料来源[23][24]
区域生长法

假定区域的数目以及在每个区域中单个点的位置已知,则可推导一种算法。从一个已知点开始,加上与已知点相似的邻近点形成一个区域。这个相似性准则可以是灰度级、彩色、组织、梯度或其他特性。相似性的测度可以由所确定的阈值来判定。它的方法是从满足检测准则的点开始,在各个方向上生长区域。当其邻近点满足检测准则就并人小块区域中,当新的点被合并后再用新的区域重复这一过程,直到没有可接受的邻近点时,生成过程终止[25]

如下图区域生长简例所示,这个例子的相似性准则是邻近点的灰度级与物体的平均灰度级的差小于2。图中被接受的点和起始点均用一短线标出,其中图(a)是输入图像;图(b)是第一步接受的邻近点;图(c)是第二步接受的邻近点;图(d)是从6开始生成的结果[25]

区域生长简例
区域生长简例
分裂合并法

分裂合并法的实质是通过不断地分裂合并,得到图像各子区域。具体步骤为:先将图像划分为规则的区域,然后根据相似性准则,分裂特性不同的区域,合并特性相同的邻近区域[26],直至没有分裂合并发生。该方法的难点在于初始划分和分裂合并相似性准则的设定[27]

下图展示了基于区域的图像分割技术处理后的效果图。首先,对原始图像a进行了灰度转换,得到了灰度图像(b),随后分别采用区域生长法和分裂合并法进行图像分割。区域生长法的分割效果如图(c)所示,这种方法计算过程较为简单,但对噪声较为敏感,容易造成区域的不完整,如图中头盔部分由于背景颜色的干扰而出现了残缺;分裂合并法的分割效果如图(d)所示,这种方法对于复杂图像的分割效果较好,但其计算过程较为复杂,且在分裂过程中可能会破坏边界,如图(d)中,车轮的轮廓信息在合并过程中被破坏,导致车轮边缘出现了模糊现象[27]

基于区域的图像分割方法分割效果
基于区域的图像分割方法分割效果

基于边缘的图像分割方法

基于边缘检测的图像分割方法旨在通过识别不同区域间的边缘来解决分割问题。这种方法基于一个关键假设,即不同区域间的边缘通常伴随着显著的灰度变化。其核心思路是首先识别图像中的边缘点,然后按照特定的策略将这些点连接成连续的轮廓线,以此形成分割区域[28]

在实际应用中,边缘检测算法通常使用各种梯度算子(如Sobel、Prewitt、Roberts和Canny算子)来计算图像亮度的局部变化。这些算子通过检测图像中的水平和垂直梯度来确定边缘的位置。梯度是一个向量,其方向指向亮度变化最大的方向,而其大小表示亮度的变化率。本文分别使用不同的微分算子对相同的图像进行处理。从采用不同微分算子时并行边缘检测法的图像分割效果图中可以看出,相较于图像背景,经边缘检测算子处理后,水果的边缘轮廓相对清晰,实现了图像分割的目的。[28][29]

算子类方法优缺点对比
分类名称机制优势局限性
一阶边缘
检测算子
Robert(罗伯茨算子)首次引入边缘算子更容易检测垂直方向边缘,且定位精度高容易收到噪声影响
Sobel(索贝尔算子)引入高斯平滑抑制噪声通常带有方向性且检测效率高,对噪声抑制处理好对灰度的变化不敏感
Prewitt(普鲁伊特算子)引入多方向梯度可以检测四个方向边缘,对噪声具有平滑作用边缘定位精确度不高
二阶边缘
检测算子
LOG(高斯拉普拉斯算子)降低噪声干扰定位精度高,边缘连续性好边缘的宽度小于算子宽度时,会丢失边缘细节
Canny(坎尼算子)综合考虑多种要求将可能是边缘的像素点全部标识为边缘且这些像素点接近实际的边缘图像中的边缘只能标识一次,并且噪声可能被识别为边缘
采用不同微分算子时并行边缘检测法的图像分割效果图
采用不同微分算子时并行边缘检测法的图像分割效果图

基于图论的图像分割算法

基于图论的方法是一种自顶向下的全局分割方法,其主要思想是将整幅图像映射为一幅带权无向图,其中是顶点的集合,是边的集合,图像每个像素对应图中一个顶点,像素之间的相邻关系对应图的边,像素特征之间的相似性或差异性表示为边的权值。将图像分割问题转换成图的划分问题,通过对目标函数的最优化求解,完成图像分割过程[31]

方法名简介优点缺点
FH算法基于图论中的最小生成树原理。它通过对图中顶点进行聚类来划分区域,聚类过程依据的是顶点间的内部相似性和区域间的差异性该算法具有 的时间复杂度,这使得它在执行分割任务时具有较高的效率无法控制图像块的数量和紧凑程度[32]
Graph Cuts算法该算法结合了图像像素的灰度特性和区域边界的线索,通过最优化过程来确保分割的准确性它倾向于对内部相似性一致的图像区域进行有效分割需要大量的矩阵广义特征向量
运算,方法的计算负担较重[32]
资料来源[18]

基于聚类的图像分割算法

聚类方法是将对象的集合分成由类似的对象组成的多个类的过程。聚类的思想可以应用到图像分割中,将图像中具有相似性质的像素聚类到同一个区域或图像块,并不断迭代修正聚类结果,直至收敛,从而形成图像分割结果,下面是具体聚类算法介绍[33]

方法名简介优点缺点
Meanshift 算法把具有相同模点的像素聚类到同一区域实现图像分割该算法稳定性、鲁棒性较好其速度较慢,分割时所包含的语义信息较少,所以分割效果不够理想,无法有效控制图像块数量
SLIC 算法算法通过计算图像中像素的颜色相似度以及距离进行聚类生成超像素运行速度、超像素紧凑度、轮廓保持方面都有一定优势,需要的超参数较少因为对边缘的保持使用位置限制,会导致超像素和图像边缘的契合度变差[34]
参考资料[35]

基于深度学习的图像分割算法

传统的图像分割技术主要依赖于图像的表面信息,这在需要深入理解语义信息的复杂分割任务中显得不足。然而,随着深度学习技术的兴起,特别是在卷积神经网络(CNN)的推动下,计算机视觉领域取得了显著进步。CNN 能够有效利用图像的深层语义信息,从而实现更精细的图像语义分割。为了应对图像分割领域日益增长的复杂性,研究者们提出了多种基于深度学习的方法,这些方法不仅提高了分割的准确性,还提升了效率,进一步扩大了图像分割技术的应用领域[36]

名称介绍框架图
FCN该模型扩展了卷积神经网络(CNN)的结构,通过将传统的全连接层转换为1×1卷积层,从而构建了一个全卷积的网络。这种结构允许 FCN 处理任意尺寸的图像输入,并生成像素级的密集预测,实现了真正的端到端图像语义分割,但 FCN 与 CNN 不同,如右图语义分割模型 FCN图,FCN 采用“全卷积”方式,在经过 8 层卷积处理后,对特征图进行上采样实现反卷积操作,然后通过 SoftMax 层进行分类,最后输出分割结果[37]
语义分割模型 FCN图
语义分割模型 FCN图
U-Net该模型主要应用于医学细胞检测上,其不仅精度高,普适性也较强。采用对称的编码器解码器架构,结构像字母“U”,左侧是编码器网络,网络结构图如右图 U-Net 框架图所示,通过不断的卷积和池化提取图像特征,之后再通过右侧的解码器把获得的特征重新映射到更大的图中用于每一个像素点的分类[38]
U-Net框架图
U-Net框架图
PSPNetPSPNet(金字塔场景解析网络)通过整合上下文信息,充分利用全局特征的先验知识,对各种场景进行深入分析,从而实现精确的场景目标的语义分割。如PSPNet 框架图所示,网络首先利用 CNN 提取输入图像的深层特征图。接着,通过金字塔池化模块来收集不同区域的特征,并进行上采样。随后,将这些子区域特征进行拼接,以形成包含局部和全局上下文信息的综合特征表示。最后,通过卷积层和 SoftMax 分类器处理这些特征,为每个像素生成最终的预测类别[39]
PSPNet框架图
PSPNet框架图
SegNetSegNet 是一个经典的编码器-解码器框架模型。编码器部分采用去掉全连接层的 VGG16 模型,由卷积、池化和批标准化操作构成,获取输入图像局域特征。解码器部分对特征图进行上采样,对上采样的图像进行卷积,弥补细节损失[40][41]
SegNet框架图
SegNet框架图

RefineNetRefineNet 是一种通用的多路径细化网络,它明确地利用下采样过程中所有可用的信息,利用远程剩余连接实现高分辨率预测。通过这种方式,捕获高级语义特征的更深层可以直接使用来自早期卷积的细粒度特征进行细化[42]
RefineNet框架图
RefineNet框架图

E-NetENet 实现了专门针对嵌入式系统、移动设备的实时语义分割,网络结构同源于 ResNet,将其结构描述为一个主分支与一个带有卷积核的附加分支,最后进行像素级的相加融合[43],右图是(a)是其初始模块,(b)是其瓶颈模块[44]
E-Net部分模块图
E-Net部分模块图

DeepLab 系列模型是一类深度卷积神经网络模型,主要特点是采用 atrous 卷积的技术,通过在卷积核中插入“孔”或“间隙”,允许卷积操作以不同的采样率对输入信号进行采样。这种方法有效地控制特征图的分辨率,扩大卷积核的感受野,从而捕获更多的上下文信息[45]

模型名称简介模型图
初版 DeepLab初版 DeepLab 模型如右图原始 DeepLab 模型图所示,将输入图像通过带有 atrous 卷积层的深度卷积神经网络(DCNN)进行处理,生成一个初步的分割评分图。随后,通过双线性插值对评分图进行上采样,以增加分辨率。为了进一步提高分割的准确性,模型引入了全连接的条件随机场(CRF)作为后处理步骤,这有助于充分考虑全局信息,对像素进行更精确的分类[45]
原始 DeepLab 模型图
原始 DeepLab 模型图
DeepLab-v2DeepLab-v2 在原始 DeepLab 模型的基础上进行了改进,引入了多孔空间金字塔池化(ASPP)模块。该模块通过级联不同尺度的 atrous 层并对特征图进行融合,从而有效地捕捉多尺度的上下文信息。DeepLab-v2 保留了全连接的条件随机场(CRF)作为后处理步骤,以进一步提升分割的精确度[45]
原始 DeepLab-v2 模型图
原始 DeepLab-v2 模型图
DeepLab-v3DeepLab-V3 算法于2018年推出,该算法对 ASPP 模块的空间结构进行了优化。它首先将四个不同速率的 atrous 卷积层并行连接,形成一个新的 ASPP 模块,然后将这些并行层与额外的atrous卷积层串联,构建了一个能够捕捉多尺度语义信息的端到端分割网络,其网络结构图如下图 DeepLab-v3 模型结构图所示[46]
DeepLab-v3 模型结构图
DeepLab-v3 模型结构图
DeepLab-v3+[47]DeepLab-v3+ 模型采取编解码结构,如右图 DeepLab-v3+ 模型结构图,将 DeepLab-v3 模型作为编码部分,对图像进行处理后输出 DCNN 中浅层特征图和经过 ASPP 融合卷积后的特征图,并将两者作为解码部分的输入
DeepLab-v3+ 模型结构图
DeepLab-v3+ 模型结构图

图像分割算法总结对比

算法原理优点缺点 适应场景
阈值分割法用一个或几个阈值将图像的灰度级分为几个部分算法简单,计算量小只考虑了像素点灰度值,不考虑空间特征等,受噪声影响较大,鲁棒性不好目标和背景相差很大的灰度图分割
区域分割法借助于图像中同一类别中像素的相似性来进行区域划分利用了图像的局部空间信息,具有较好的 区域特征缺点是运算量大,并且容易造成图像的过分割适合复杂图像
基于边缘图像分割方法利用不同区域中像素灰度值不同,以及区域边界像素灰度值变化比较大的特点,检测到边界点,并将各个边界点连接起来[49]对灰度变化明显且受噪声影响较小的图像处理效果较好[50]容易产生虚假的边缘或者孤立的线段[49]处理边缘复杂、噪声较大的图像时,有时会将噪声和边缘上的信息一起过滤掉,从而遗失重要的边缘信息[50]
基于图论分割法将图的分割转化为了无向带权图的最优解问题较好保持图像边界运算速度慢适合处理差别明显的图像
聚类分割法迭代聚类算法思想简单分割结果受参数影响大适合图像中存在不确定性和模糊性
深度学习语义分割通常分为特征提取和实现分割两部分,前者通过卷积网络获得特征,后者为像素分类能学习到高级的语义特征,分割准确度高需要一定量训练集根据不同的需求有不同的语义分割网络

图像分割数据集

为了科学、一致地评价各类图像分割算法的性能,需要使用标准的图像数据集进行测试和对比[51]。下表是部分广泛使用的图像分割数据集的总结。数据集分为3类分别是2D图像、2.5RGB-D(颜色+深度)图像和3D图像并提供有关每个数据集特征的详细信息。列出的数据集具有逐像素的标签,可用于评估模型性能[52]

数据集种类数据集名称介绍组成图像示例
2D 数据集PASCAL VOCPASCAL VOC 是国际著名的计算机视觉挑战赛,其开源的RGB数据集均带有标签,可用于5种不同的比赛:分类、检测、分割、动作分割和人员布局[53]VOC2012 是最常用的数据集,有21个类别,训练集和验证集共包括11530幅图像
PASCAL VOC 数据集示例图
PASCAL VOC 数据集示例图
PASCAL ContextPASCAL Context 是由 PASCAL VOC2010 数据集扩展而来的含所有训练图像的像素级标签(10103),该数据集共有540个语义类别,但是通常选择由59个语义类别组成的子集进行训练研究
PASCAL Context 数据集示例图
PASCAL Context 数据集示例图
SBD该数据集是从整个 PASCAL VOC 比赛(不仅是分割比赛)中获得的包含 PASCAL VOC2011 的11355幅标注图像,训练集有8498幅图像,验证集有2857幅图像
SBD 数据集示例图
SBD 数据集示例图
2.5D 数据集NYUDv2该数据集是用微软 Kinect 设备捕获的,特别适合室内工作的机器人共有1449幅关于室内物体的 2.5D 图像,训练和测试集分别有795幅和654幅图像,提供类别和实例级别的标注
NYUDv2 数据集示例图
NYUDv2 数据集示例图

RGB-D Object Dataset数据集是使用 3D 摄像机以30 Hz 的频率拍摄的,每一帧分辨率为640 × 480像素该数据集由300个视频序列组成,分为51个关于室内场景的类别
RGB-D Object Dataset 数据集示例图
RGB-D Object Dataset 数据集示例图

3D 数据集ShapeNet Part该数据集专注于细粒度的 3D 对象分割,数据集中的每个目标类都用2~5个部件进行标记,例如飞机类用机翼、机身、尾部和引擎标记包含从16个类别的原始数据集中采样的31693个样本
ShapeNet Part 数据集示例图
ShapeNet Part 数据集示例图
Stanford 2D-3D-S是一个多模态的大规模室内空间数据集,它提供的数据包括 2D、2.5D 和 3D(网格和点云)形式,其是从6个室内区域的271个房间采集的由70496幅完整的高清 RGB 图像(分辨率1080 ×1080像素)以及对应的深度图、表面法线、网格和点云(带有语义标注)组成,共有13个类别
Stanford 2D-3D-S 数据集示例图
Stanford 2D-3D-S 数据集示例图

图像分割评价指标

为了科学地评价图像分割算法性能的优劣,往往需要使用统一的指标进行定量比较。下面是常用的评价指标的汇总表[54]

名称介绍公式
像素精度(PA)分割结果中正确分类的像素数与总像素数之比,其中是类预测的属于类的像素数PA=
平均像素精度(MPA)是PA的扩展版本,其中以每个类的方式计算正确像素的比率,然后在总类数上取平均值MPA=
交并比(IoU)分割结果与真实值之间的交集和并集之比,其中A和B表示真实分割图面积和预测分割图面积IoU=
平均交并比(MloU)多个类别计算 IoU 后的平均值,它适用于多类分割任务的评价MIoU=[55]
资料来源[56]

图像分割工具

名称简介图标
OpenCV[57]OpenCV 是一个跨平台的计算机视觉库,它提供了众多图像处理和计算机视觉方面的功能,包括图像分割。OpenCV 支持多种编程语言,如 C++Python、Java 等,并且拥有庞大的社区支持[57]
OpenCV 图标
OpenCV 图标
SimpleITK[58]SimpleITK 是 Insight Toolkit(ITK)算法和数据结构的简化编程接口。它支持多种编程语言的接口。该工具包支持超过 15 种不同的图像文件格式,提供 280 多种图像分析过滤器,并实现基于 ITK 强度的配准框架的统一接口[58]
SimpleITK 图标
SimpleITK 图标
ITK[59][60]ITK 是一个强大的医学图像处理库,它提供了大量的图像分割算法[59]
ITK 图标
ITK 图标
TensorFlowITK[61]TensorFlow 是基于深度学习的目标检测和分割框架,它们在图像分割领域有广泛的应用
TensorFlowITK 图标
TensorFlowITK 图标
PyTorch[62]PyTorch 是一个开源的机器学习库,由 Facebook 的人工智能研究团队开发,用于应用于计算机视觉和自然语言处理等领域的深度学习。它是一个基于 Python的库
PyTorch图标
PyTorch图标

医学

分割是根据提取的特征(如颜色或纹理属性)将图像聚类成几个连贯的子区域,并将每个子区域分类到预先确定的类中。分割也可以被视为图像压缩的一种形式,它是从图像中推断知识的关键步骤,在精密医学中,计算机辅助诊断技术正在广泛应用,特别是基于多种放射图像模式如磁共振成像(MRI)、计算机断层扫描(CT)或结肠镜图像。这些技术利用先进的算法和模型,能够有效分析和解释复杂的医学影像数据,为医生提供准确的诊断辅助,从而提高诊断的精确性和效率[63]。在医学图像中使用图像分割技术,可以更好地提取和显示医学影像中的相关信息。阈值分割法、边缘检测法是图像分割中常用的分割方法。如下图医学图像分割示例图所示,使用阈值分割对医学图像进行增强。[9]

医学图像分割示例图
医学图像分割示例图

自动驾驶

自动驾驶的一个关键问题是获得车辆周边环境的综合理解,图像语义分割是建立街道场景里语义实体(如汽车、行人、道路等)复杂关系模型的重要工具,为此自动驾驶成为图像语义分割的重要应用领域。将深度学习应用到自动驾驶可以有效提高自动驾驶的安全性和对道路场景分割的准确性、快速性。[64]自动驾驶需要的技术是多方面的,提高自动驾驶系统智能化程度的关键技术之一是具备对交通场景准确有效的认知,如下图所示是使用图像分割技术对交通场景下的图像分割图。[65]

交通场景下的图像分割图
交通场景下的图像分割图

工业生产

图像分割在钢铁生产等工业场景中应用前景广阔。图像分割在钢铁生产过程中用于输送带实时跑偏检测、扒渣机器人铁渣检测等。采用基于深度学习的分割算法可以提取更加准确的皮带边缘,抗干扰能力强,适用多种复杂的工业环境。[66]如下图所示是使用图像分割应用于扒渣机器人铁渣检测的示例图。[66]

扒渣机器人铁渣检测的示例图
扒渣机器人铁渣检测的示例图

遥感

随着遥感技术的发展,高分辨率遥感图像的获取变得越来越便捷,高分辨率遥感图像通常包含道路、水源、建筑、树木、农作物、车辆、行人等地物目标类别丰富的细节信息[67],目前遥感图像分割在土地利用、城市规划、资源管理等领域中变得越来越重要。遥感图像分割的目标是将图像中的每个像素分配到相应的类别,以实现对地物的准确辨别和定量分析。如下图是使用图像分割对遥感图像进行分割的示例图。[68]

遥感图像示例图
遥感图像示例图

图像分割问题与挑战

实时图像语义分割:目前越来越多的实际应用要求在极短的响应时间内达到精确分割的结果,尤其在可穿戴计算领域。由于可穿戴设备微小和可移动的特性,当涉及到图像处理时需要兼顾极高的图像处理速度和处理精度。但现阶段的实时语义分割仍不够完善,方法大多不能满足实时的需求[11][10]

弱监督或非监督语义分割:语义分割训练集需要所有像素都有真值标注,尤其是以人工标注的方式,真值标注的生成是极度耗时耗力的,因此衍生出了弱监督或非监督的语义分割方法。然而目前这些方法的分割效果都不是很理想,因此需要进一步的研究[11][10]

三维场景的语义分割:尽管语义分割在一维、二维的数据处理上取得了极大的成功,但在三维数据上的发展缺极为缓慢,这其中有数据集获取的困难,也有提取三维图像语义信息的困难。[11][10]

小尺寸目标的分割:小尺寸目标的分割不够精准,尽管基于深度卷积神经网络的方法显著提高了分割精度,但由于卷积和池化操作导致信息丢失,小尺寸对象的分割仍然具有挑战性[69]

复杂背景图像分割:当图像背景复杂时,具有辨别性的前景特征会受到周围背景噪声的干扰,使得识别准确率得不到保证。部分具有相似背景不同类别的图像在区分时也会遇到问题,因此需要进一步研究[70]

光照变化:光照变化图像中存在大量的噪声,若不及时对图像实施去噪等预处理,会影响图像分割精度。由于现有的图像分割技术无法高效地完成图像目标物体边界以及细微的毛发细节部位的精准分割,并且图像分辨率的不断提升使图像中的光照变换变得更加复杂,使目前的图像分割方法无法有效地完成图像目标分割,因此,提出更加简洁有效的光照变化图像分割方法就变得尤为重要[71]

未来发展方向

创建更具挑战性的数据集:目前,虽然已经创建了一些大规模的图像数据集,但仍需要更具挑战性的数据集,特别是包含大量对象和重叠对象的静态图像数据集。这将有助于模型更好地处理密集对象场景和现实世界中常见的对象重叠问题。现有的用于3D图像分割的数据集通常规模较小且多为合成数据,因此,创建更大、更具挑战性的3D图像数据集将非常有价值[12]

构建可解释的深度模型:尽管基于深度学习的模型在具有挑战性的基准测试中表现良好,但如何解释这些模型所学到的内容仍是一个问题。目前虽有技术可以可视化学习到的卷积核,但对模型的潜在行为或动态的具体研究仍不足。增强对这些模型理论方面的理解,有助于针对不同的应用场景开发更优化的模型[12]

构建内存高效模型:许多现代分割模型在推理阶段需要大量内存。目前的研究多集中在提高模型准确性上,但为了适应如移动电话等特定设备,需要简化网络结构。可以通过采用更简单的模型框架、应用模型压缩技术或使用知识蒸馏技术,将复杂模型转化为内存使用更高效的版本,以适应内存限制更严格的应用环境[12]

参考资料 71

  1. 参考 1
  2. 参考 2
  3. 参考 3
  4. 参考 4
  5. 参考 5
  6. 参考 6
  7. 参考 7
  8. 参考 8
  9. 参考 9
  10. 参考 10
  11. 参考 11
  12. 参考 12
  13. 参考 13
  14. 参考 14
  15. 参考 15
  16. 参考 16
  17. 参考 17
  18. 参考 18
  19. 参考 19
  20. 参考 20
  21. 参考 21
  22. 参考 22
  23. 参考 23
  24. 参考 24
  25. 参考 25
  26. 参考 26
  27. 参考 27
  28. 参考 28
  29. 参考 29
  30. 参考 30
  31. 参考 31
  32. 参考 32
  33. 参考 33
  34. 参考 34
  35. 参考 35
  36. 参考 36
  37. 参考 37
  38. 参考 38
  39. 参考 39
  40. 参考 40
  41. 参考 41
  42. 参考 42
  43. 参考 43
  44. 参考 44
  45. 参考 45
  46. 参考 46
  47. 参考 47
  48. 参考 48
  49. 参考 49
  50. 参考 50
  51. 参考 51
  52. 参考 52
  53. 参考 53
  54. 参考 54
  55. 参考 55
  56. 参考 56
  57. 参考 57
  58. simpleitk — simpleitk官网
  59. 参考 59
  60. itk.org — ITK官网
  61. 参考 61
  62. 参考 62
  63. 参考 63
  64. 参考 64
  65. 参考 65
  66. 参考 66
  67. 参考 67
  68. 参考 68
  69. 参考 69
  70. 参考 70
  71. 参考 71
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容