图像分割
图像分割(Image Segmentation),是指将图像分成若干互不重叠的子区域,使得同一个子区域内的特征具有一定相似性,例如颜色、亮度或纹理,不同子区域间特征呈现较为明显的差异。这种技术是许多图像分析任务中的第一步,如对象检测、跟踪及场景理解。
图像分割的研究起始于20世纪80年代,当时计算机视觉领域刚刚兴起。早期的分割方法主要基于阈值分割、边缘检测和区域生长等技术,这些方法对于简单的图像场景能够取得较好的效果。2000年到2010年期间,随着计算机硬件的发展和图像处理需求的增加,这一时期,基于图论的分割方法和基于聚类的分割方法开始受到关注,分割的效果也因此得到了改善。21世纪初,随着深度学习的兴起,基于卷积神经网络(CNN)的分割方法开始成为主流,这些方法能够处理更加复杂的图像,并提高了分割的准确性和效率。
图像分割方法包括基于阈值、区域、边缘、图论、聚类等传统的分割方法,以及基于深度学习的分割方法。其在多个领域有着广泛的应用,在医疗影像分析中,识别肿瘤或器官图片,从而辅助诊断和治疗。此外,这项技术还在自动驾驶、工业生产、遥感等领域中发挥着关键作用,它使得计算机能够更好地理解和解释视觉信息。然而,图像分割也面临一些问题与挑战例如,实时图像语义分割、三维场景的语义分割、弱监督或非监督语义分割、小尺寸目标分割、复杂背景图像分割、光照变化等。其未来发展方向有创建更具挑战性的数据集、构建可解释的深度模型、构建内存高效模型等。
概述
图像分割是指将图像划分成互不相交的、有意义的子区域,在同一个区域的像素点具有一定的相关性,不同区域的像素点存在一定的差异性,即是对图片中有相同性质的像素赋予相同标签的过程。
分割的目的是把图像空间分成一些有意义的区域。例如一幅航空照片,可以分割成工区、住宅区、湖泊、森林等。可以以逐个像素为基础去研究图像分割,也可以利用在规定领域中的某些图像信息去分割。分割的依据可建立在相似性和非连续性两个基本概念之上。目标是简化或改变图像的表达形式,使其更容易分析。在图像分割过程中,每个像素被分配到一个特定的类别,从而根据某些共有特征如颜色、强度或纹理将相似的像素聚集在一起。这种技术是许多图像分析任务中的第一步,如对象检测、跟踪及场景理解。
发展历史
最早的图像分割方法应用在医学影像处理领域,对影像中的特定目标分割后再进行医疗分析诊断。由于医学影像场景简单,背景和目标区别明显,在该领域中大多是通过简单的基于阈值的方法进行粗糙的像素级别的分割。随着分割场景的复杂化,对分割技术的要求也愈加严格,陆续出现了基于边缘区域、聚类、图论等的分割方法,分割的效果也因此得到了改善。特别是将深度学习引入到图像处理领域后,赋予了分割区域更准确的语义信息,图像分割问题也取得了突破性的进展。
早期传统分割方法阶段
在2000年之前,图像分割技术主要依赖于一些传统方法,如阈值分割、区域增长、边缘检测等。这些方法通常基于图像的底层特征,如像素强度、颜色、纹理等。这一时期的图像分割技术相对简单,但为后续研究奠定了基础。
日本学者在1978年提出一维OTSU 阈值分割算法,该算法首先选取一个阈值 k,将图像分为前景和背景两部分,并计算两区域的类间方差。类间方差的值越大,代表前景和背景的区别越大,则阈值分割的效果越好。1980年,卡普尔(J. N. Kapur)等人提出全局阈值分割,利用灰度直方图熵进行图片分割的自动阈值选择,可以成功地将图像阈值化为两级图像。1997年阿兰·特雷莫(Alain Tremeau)和娜塔莉·博雷尔(Nathalie Borel)最早提出区域生长法,该算法从区域生长过程开始,基于考虑颜色相似性和空间邻近性的标准,根据仅考虑颜色相似性的标准合并生成的区域,以便在空间上不连接但比色相似的区域中生成正在处理的图像的非分区分割。
基于图论、聚类的分割方法阶段
2000年到2010年期间,随着计算机硬件的发展和图像处理需求的增加,图像分割技术得到了显著提升。这一时期,基于图论的分割方法和基于聚类的分割方法开始受到关注。
图论方法通过构建图像的图模型,并利用图切割算法进行分割,能够较好地处理图像中的复杂结构。美国计算机科学家佩德罗·费尔岑什瓦尔布(Pedro F Felzenszwalb)和哈滕洛赫(Huttenlocher)于2004年开发了FH算法,该算法基于图论中的最小生成树原理。它通过对图中顶点进行聚类来划分区域,聚类过程依据的是顶点间的内部相似性和区域间的差异性。Graph Cuts 算法由博伊科夫(Boykov)等人于2006年提出,该算法开始时将整个图看作一个整体,通过不断调整图中节点的分割状态,直到满足最小全局最优目标函数的分割为止,其缺点是需要大量的矩阵广义特征向量运算,且其分割结果更倾向于具有相同的类内相似度。
聚类方法则通过将像素或区域划分为不同的群组来实现分割,其优势在于能够处理大量的数据。此外,基于分类的分割方法也开始出现,这些方法通过学习训练数据中的特征来进行分割,提高了分割的准确性和鲁棒性。2007年谢赫(Sheikh)等人提出了一种模式搜索算法,称为 Medoidshift 算法,该算法能自动计算聚类数目,而且数据不必线性可分,但其时间复杂度较高。2009年莱温施泰因(Levinshtein)等人提出了一种几何流的超像素快速生成算法,称为 TurboPixels。该算法将图像分割成近似网格结构的图像块,图像块较好地保持了图像的局部边界,并限制了欠分割的发生,时间复杂度低,适合于百万像素级的大图像。阿坎塔(Achanta)等人在 2012 年提出一种简化的超像素生成方法 SLIC,运行速度、超像素紧凑度、轮廓保持方面都有一定优势,需要的超参数较少。
基于深度学习方法阶段
2010年至今,深度学习的兴起为图像分割带来了革命性的变化。特别是卷积神经网络(CNN)的出现,使得图像分割技术实现了从传统手工特征到深度特征的转变。深度学习模型能够自动学习图像中的高级特征,从而在复杂场景中实现更为精确的分割。此外,全卷积网络(FCN)、U-Net、Mask R-CNN、DeepLab系列等深度学习架构的提出,进一步推动了图像分割技术的发展。在2015年,乔纳森·朗(Jonathan Long)等人提出了一种名为 FCN(全卷积网络)的模型,这种结构允许FCN处理任意尺寸的图像输入,并生成像素级的密集预测,实现了真正的端到端图像语义分割。2015 年,德国计算机科学家奥拉夫·龙内伯格(Ronneberger)等人提出了 U-Net 语义分割模型,该模型主要应用于医学细胞检测上,其不仅精度高,普适性也较强。DeepLab-V3 算法于2018年推出,该算法对 ASPP 模块的空间结构进行了优化。这些架构能够在像素级别上进行精确的图像理解,大大提高了分割的精度和效率。DeepLab-V3+ 在 DeepLab-V3 的基础上添加解码结构,DeepLab-v3 模型作为编码部分,对图像进行处理后输出 DCNN 中浅层特征图和经过 ASPP 融合卷积后的特征图,并将两者作为解码部分的输入。
分割方法
传统图像分割方法
基于阈值的图像分割方法
基于阈值的图像分割方法实质是通过设定不同的灰度阈值,对图像灰度直方图进行分类,灰度值在同一个灰度范围内的像素认为属于同一类并具有一定相似性,该类方法是一种常用的灰度图像分割方法。用表示原始图像像素的灰度值,通过设定阈值T,将图像中的像素分为目标和背景两类,实现输入图像到输出图像的变换:
其中,表示属于目标类别的图像,表示属于背景类别的图像。
如下图不同阈值情况下的图像分割效果图所示,针对同一灰度图像即原始图像(a),设定不同的灰度阈值 T=80、120、160分别进行阈值分割,分别得到不同效果的分割图(b)、(c)、(d)。
基于区域的图像分割方法
区域生长法
假定区域的数目以及在每个区域中单个点的位置已知,则可推导一种算法。从一个已知点开始,加上与已知点相似的邻近点形成一个区域。这个相似性准则可以是灰度级、彩色、组织、梯度或其他特性。相似性的测度可以由所确定的阈值来判定。它的方法是从满足检测准则的点开始,在各个方向上生长区域。当其邻近点满足检测准则就并人小块区域中,当新的点被合并后再用新的区域重复这一过程,直到没有可接受的邻近点时,生成过程终止。
如下图区域生长简例所示,这个例子的相似性准则是邻近点的灰度级与物体的平均灰度级的差小于2。图中被接受的点和起始点均用一短线标出,其中图(a)是输入图像;图(b)是第一步接受的邻近点;图(c)是第二步接受的邻近点;图(d)是从6开始生成的结果。
分裂合并法
分裂合并法的实质是通过不断地分裂合并,得到图像各子区域。具体步骤为:先将图像划分为规则的区域,然后根据相似性准则,分裂特性不同的区域,合并特性相同的邻近区域,直至没有分裂合并发生。该方法的难点在于初始划分和分裂合并相似性准则的设定。
下图展示了基于区域的图像分割技术处理后的效果图。首先,对原始图像a进行了灰度转换,得到了灰度图像(b),随后分别采用区域生长法和分裂合并法进行图像分割。区域生长法的分割效果如图(c)所示,这种方法计算过程较为简单,但对噪声较为敏感,容易造成区域的不完整,如图中头盔部分由于背景颜色的干扰而出现了残缺;分裂合并法的分割效果如图(d)所示,这种方法对于复杂图像的分割效果较好,但其计算过程较为复杂,且在分裂过程中可能会破坏边界,如图(d)中,车轮的轮廓信息在合并过程中被破坏,导致车轮边缘出现了模糊现象。
基于边缘的图像分割方法
基于边缘检测的图像分割方法旨在通过识别不同区域间的边缘来解决分割问题。这种方法基于一个关键假设,即不同区域间的边缘通常伴随着显著的灰度变化。其核心思路是首先识别图像中的边缘点,然后按照特定的策略将这些点连接成连续的轮廓线,以此形成分割区域。
在实际应用中,边缘检测算法通常使用各种梯度算子(如Sobel、Prewitt、Roberts和Canny算子)来计算图像亮度的局部变化。这些算子通过检测图像中的水平和垂直梯度来确定边缘的位置。梯度是一个向量,其方向指向亮度变化最大的方向,而其大小表示亮度的变化率。本文分别使用不同的微分算子对相同的图像进行处理。从采用不同微分算子时并行边缘检测法的图像分割效果图中可以看出,相较于图像背景,经边缘检测算子处理后,水果的边缘轮廓相对清晰,实现了图像分割的目的。。
算子类方法优缺点对比
基于图论和聚类的图像分割算法
基于图论的图像分割算法
基于一笔画问题的方法是一种自顶向下的全局分割方法,其主要思想是将整幅图像映射为一幅带权无向图,其中是顶点的集合,是边的集合,图像每个像素对应图中一个顶点,像素之间的相邻关系对应图的边,像素特征之间的相似性或差异性表示为边的权值。将图像分割问题转换成图的划分问题,通过对目标函数的最优化求解,完成图像分割过程。
基于聚类的图像分割算法
聚类方法是将对象的集合分成由类似的对象组成的多个类的过程。聚类的思想可以应用到图像分割中,将图像中具有相似性质的像素聚类到同一个区域或图像块,并不断迭代修正聚类结果,直至收敛,从而形成图像分割结果,下面是具体聚类算法介绍。
基于深度学习的图像分割算法
传统的图像分割技术主要依赖于图像的表面信息,这在需要深入理解语义信息的复杂分割任务中显得不足。然而,随着深度学习技术的兴起,特别是在卷积神经网络(CNN)的推动下,计算机视觉领域取得了显著进步。CNN 能够有效利用图像的深层语义信息,从而实现更精细的图像语义分割。为了应对图像分割领域日益增长的复杂性,研究者们提出了多种基于深度学习的方法,这些方法不仅提高了分割的准确性,还提升了效率,进一步扩大了图像分割技术的应用领域。
DeepLab 系列模型是一类深度卷积神经网络模型,主要特点是采用 atrous 卷积的技术,通过在卷积核中插入“孔”或“间隙”,允许卷积操作以不同的采样率对输入信号进行采样。这种方法有效地控制特征图的分辨率,扩大卷积核的感受野,从而捕获更多的上下文信息。
图像分割算法总结对比
图像分割数据集
为了科学、一致地评价各类图像分割算法的性能,需要使用标准的图像数据集进行测试和对比。下表是部分广泛使用的图像分割数据集的总结。数据集分为3类分别是2D图像、2.5RGB-D(颜色+深度)图像和3D图像并提供有关每个数据集特征的详细信息。列出的数据集具有逐像素的标签,可用于评估模型性能。
图像分割评价指标
为了科学地评价图像分割算法性能的优劣,往往需要使用统一的指标进行定量比较。下面是常用的评价指标的汇总表。
图像分割工具
应用
医学
分割是根据提取的特征(如颜色或纹理属性)将图像聚类成几个连贯的子区域,并将每个子区域分类到预先确定的类中。分割也可以被视为图像压缩的一种形式,它是从图像中推断知识的关键步骤,在精密医学中,计算机辅助诊断技术正在广泛应用,特别是基于多种放射图像模式如磁共振成像(MRI)、计算机断层扫描(CT)或结肠镜图像。这些技术利用先进的算法和模型,能够有效分析和解释复杂的医学影像数据,为医生提供准确的诊断辅助,从而提高诊断的精确性和效率。在医学图像中使用图像分割技术,可以更好地提取和显示医学影像中的相关信息。阈值分割法、边缘检测法是图像分割中常用的分割方法。如下图医学图像分割示例图所示,使用阈值分割对医学图像进行增强。
自动驾驶
自动驾驶的一个关键问题是获得车辆周边环境的综合理解,图像语义分割是建立街道场景里语义实体(如汽车、行人、道路等)复杂关系模型的重要工具,为此自动驾驶成为图像语义分割的重要应用领域。将深度学习应用到自动驾驶可以有效提高自动驾驶的安全性和对道路场景分割的准确性、快速性。自动驾驶需要的技术是多方面的,提高自动驾驶系统智能化程度的关键技术之一是具备对交通场景准确有效的认知,如下图所示是使用图像分割技术对交通场景下的图像分割图。
工业生产
图像分割在钢铁生产等工业场景中应用前景广阔。图像分割在钢铁生产过程中用于输送带实时跑偏检测、扒渣机器人铁渣检测等。采用基于深度学习的分割算法可以提取更加准确的皮带边缘,抗干扰能力强,适用多种复杂的工业环境。如下图所示是使用图像分割应用于扒渣机器人铁渣检测的示例图。
遥感
随着遥感技术的发展,高分辨率遥感图像的获取变得越来越便捷,高分辨率遥感图像通常包含道路、水源、建筑、树木、农作物、车辆、行人等地物目标类别丰富的细节信息,目前遥感图像分割在土地利用、城市规划、资源管理等领域中变得越来越重要。遥感图像分割的目标是将图像中的每个像素分配到相应的类别,以实现对地物的准确辨别和定量分析。如下图是使用图像分割对遥感图像进行分割的示例图。
图像分割问题与挑战
实时图像语义分割:目前越来越多的实际应用要求在极短的响应时间内达到精确分割的结果,尤其在可穿戴计算领域。由于可穿戴设备微小和可移动的特性,当涉及到图像处理时需要兼顾极高的图像处理速度和处理精度。但现阶段的实时语义分割仍不够完善,方法大多不能满足实时的需求。
弱监督或非监督语义分割:语义分割训练集需要所有像素都有真值标注,尤其是以人工标注的方式,真值标注的生成是极度耗时耗力的,因此衍生出了弱监督或非监督的语义分割方法。然而目前这些方法的分割效果都不是很理想,因此需要进一步的研究。
三维场景的语义分割:尽管语义分割在一维、二维的数据处理上取得了极大的成功,但在三维数据上的发展缺极为缓慢,这其中有数据集获取的困难,也有提取三维图像语义信息的困难。
小尺寸目标的分割:小尺寸目标的分割不够精准,尽管基于深度卷积神经网络的方法显著提高了分割精度,但由于卷积和池化操作导致信息丢失,小尺寸对象的分割仍然具有挑战性。
复杂背景图像分割:当图像背景复杂时,具有辨别性的前景特征会受到周围背景噪声的干扰,使得识别准确率得不到保证。部分具有相似背景不同类别的图像在区分时也会遇到问题,因此需要进一步研究。
光照变化:光照变化图像中存在大量的噪声,若不及时对图像实施去噪等预处理,会影响图像分割精度。由于现有的图像分割技术无法高效地完成图像目标物体边界以及细微的毛发细节部位的精准分割,并且图像分辨率的不断提升使图像中的光照变换变得更加复杂,使目前的图像分割方法无法有效地完成图像目标分割,因此,提出更加简洁有效的光照变化图像分割方法就变得尤为重要。
未来发展方向
创建更具挑战性的数据集:目前,虽然已经创建了一些大规模的图像数据集,但仍需要更具挑战性的数据集,特别是包含大量对象和重叠对象的静态图像数据集。这将有助于模型更好地处理密集对象场景和现实世界中常见的对象重叠问题。现有的用于3D图像分割的数据集通常规模较小且多为合成数据,因此,创建更大、更具挑战性的3D图像数据集将非常有价值。
构建可解释的深度模型:尽管基于深度学习的模型在具有挑战性的基准测试中表现良好,但如何解释这些模型所学到的内容仍是一个问题。目前虽有技术可以可视化学习到的卷积核,但对模型的潜在行为或动态的具体研究仍不足。增强对这些模型理论方面的理解,有助于针对不同的应用场景开发更优化的模型。
构建内存高效模型:许多现代分割模型在推理阶段需要大量内存。目前的研究多集中在提高模型准确性上,但为了适应如移动电话等特定设备,需要简化网络结构。可以通过采用更简单的模型框架、应用模型压缩技术或使用知识蒸馏技术,将复杂模型转化为内存使用更高效的版本,以适应内存限制更严格的应用环境。
参考资料
simpleitk.simpleitk官网.2024-05-04
itk.org.ITK官网.2024-06-09