【大厂AI课学习笔记】【1.5 AI技术领域】(7)图像分割
今天学习到了图像分割。
这是我学习笔记的脑图。
图像分割,Image Segmentation,就是将数字图像分割为若干个图像子区域(像素的集合,也被称为超像素),改变图像的表达方式,以更容易理解和分析。
图像分割,十分重要,也十分困难,是计算机视觉中的关键步骤。
图像分割分为三类:
- 语义分割。预测出输入熟悉的每个像素点属于哪一类的标签
- 实例分割。在语义分割的基础上,还要区分出同一类的不同个体
- 全景分割。在实例分割的基础上,对背景的每个像素点,进行分割。
图像分割的应用也是非常广泛的:
- 医学核磁影像
- 遥感
- 交通领域的车辆轮廓提取
下面我来了解更多:
图像分割是计算机视觉(CV)领域中的一个关键技术,旨在将图像或视频帧划分为多个部分或对象。这些部分通常基于某种相似性准则(如颜色、纹理、形状等)进行区分,以便对图像中的不同区域进行识别、分析和理解。图像分割是后续高级视觉任务(如目标检测、场景理解、图像描述等)的基础。
关键技术
-
深度学习:卷积神经网络(CNN)及其变体(如U-Net、Mask R-CNN等)已成为图像分割的主流方法。它们能够自动学习图像的多层次特征,并通过端到端的训练方式优化分割性能。
-
特征提取:传统方法依赖于手工设计的特征(如SIFT、SURF、HOG等),而现代方法则更多地依赖于深度学习自动提取的特征。
-
上下文信息:利用像素或区域之间的空间关系可以提高分割的准确性。条件随机场(CRF)、马尔可夫随机场(MRF)等方法常用于捕获上下文信息。
-
多尺度分析:由于图像中的对象可能具有不同的大小,因此多尺度分析对于捕捉不同尺度的信息至关重要。
-
边缘检测:识别对象的边界是分割的一个重要步骤,常用的边缘检测方法包括Sobel、Canny等。
-
图论方法:如Graph Cut、Grab Cut等,通过构造图模型并利用图理论中的算法进行优化,实现图像分割。
-
无监督与半监督学习:在缺乏大量标注数据的情况下,无监督和半监督学习方法对于图像分割尤为重要。
-
后处理:包括形态学操作(如膨胀、腐蚀)、区域合并等步骤,用于优化分割结果。
应用场景
-
自动驾驶:在道路场景理解中分割车道线、车辆、行人等。
-
医学图像分析:在CT、MRI等医学图像中分割肿瘤、血管、器官等结构。
-
人脸识别与生物特征分析:分割人脸区域以进行人脸识别或表情分析。
-
卫星遥感:在遥感图像中分割不同类型的地表覆盖(如森林、水体、城市等)。
-
视频监控:在安防视频中分割并跟踪移动目标。
-
增强现实:将虚拟对象准确地放置在现实世界的分割区域中。
-
时尚与零售:在服装图像中分割不同的服装项目,以支持虚拟试衣等功能。
主流的商业化产品
-
DeepArt Structures(DeepMind):针对医学图像的分割工具,已在多种医学应用场景中取得显著效果。
-
Photoshop(Adobe):虽然主要是一个图像处理软件,但Photoshop包含了强大的图像分割功能,支持用户进行精细的选区操作。
-
Mask R-CNN(Facebook AI Research):一个广泛使用的实例分割框架,已在多个开源项目和商业产品中得到应用。
-
Cityscapes Dataset(Daimler AG):虽然本身不是一个产品,但这个城市街景数据集推动了自动驾驶领域图像分割技术的发展,并催生了一系列相关商业化应用。
-
TensorFlow Object Detection API(Google):提供了包括图像分割在内的多种目标检测功能,易于集成到各种应用中。
关于三个分类的图像分割——
语义分割
定义:语义分割是将图像中的每个像素标记为属于某个预定义的类别(如人、狗、天空等)的过程。它不考虑同一类别中不同实例之间的区别。
关键技术:深度卷积神经网络(DCNN)、上采样技术(如转置卷积、上采样层)、跳跃连接(如在U-Net中)、多尺度特征融合、上下文信息建模(如ASPP在DeepLab系列中)。
实现路径:通常通过端到端的训练方式,使用标注好的语义分割数据集(如PASCAL VOC、Cityscapes等)来训练深度神经网络模型。损失函数常采用交叉熵损失或Dice损失等。
实例分割
定义:实例分割是语义分割的一个扩展,它不仅要求将图像中的每个像素标记为某个类别,还要求区分同一类别中的不同实例(如区分图像中的多个人)。
关键技术:除了语义分割中提到的技术外,实例分割还需要额外的机制来区分不同实例。这通常通过引入目标检测框架(如Faster R-CNN)、使用掩码预测分支(如在Mask R-CNN中)或采用基于聚类的后处理方法来实现。
实现路径:一种常见的实现路径是在现有的目标检测框架(如Faster R-CNN)基础上添加一个并行的掩码预测分支(如Mask R-CNN)。这样,模型可以同时输出每个实例的边界框和像素级掩码。另一种路径是采用两阶段方法,首先进行语义分割,然后使用聚类或其他后处理步骤将同一类别的像素分组为不同的实例。
全景分割
定义:全景分割是语义分割和实例分割的结合体。它的目标是为图像中的每个像素分配一个唯一的标签,这个标签既包含了像素的语义类别信息,也包含了它属于哪个实例的信息(对于可计数的对象如人、车等)或它是否属于背景/不可计数的类别(如天空、草地等)。
关键技术:全景分割需要同时处理语义分割和实例分割的任务,因此它结合了这两者的关键技术。此外,还需要一种机制来融合语义和实例信息,以确保每个像素都有一个唯一的标签。这通常通过设计复杂的网络结构和使用特殊的训练策略来实现。
实现路径:一种常见的实现路径是采用一个共享的特征提取器来同时提取用于语义分割和实例分割的特征。然后,分别使用不同的解码器来生成语义分割图和实例分割图。最后,通过一个融合步骤来结合这两个结果,生成全景分割图。这个融合步骤可能涉及到复杂的逻辑判断和标签映射操作,以确保每个像素都被正确标记。另一种路径是采用端到端的训练方式,直接优化全景分割的损失函数。这种方法需要设计一种能够同时处理语义和实例信息的网络结构,并使用大量的标注数据来训练这个网络。由于全景分割任务的复杂性,这种方法通常需要大量的计算资源和时间来达到满意的性能。