主页
topics
语义分割
图像分割是一个端到端图像分析过程,它将数字图像分成多个片段,并对每个区域中包含的信息进行分类。三种图像分割任务(语义、实例和全景分割)为图像中的各个像素分配标签,以标记图像中不同对象和区域的特定边界和形状,并使用颜色、对比度、图像中的位置和其他属性等信息对它们进行分类。
语义分割按语义类标记图像中包含的每个像素,而实例分割和全景分割则用于不同的分类任务。实例分割模型仅关注图像中包含的可以计算的语义类:人物、动物、树木、汽车或消防栓等实体和对象。它可以检测任何单个对象或实例,然后为每个对象或实例输出一个分割掩码和特定的标识符标签。全景分割模型需要两种信息:它们执行语义分割并检测和分割各个对象实例,通过为每个像素分配语义标签和(在适当情况下)唯一实例标识符来提供更完整的图像分析。
了解如何随时随地扩展所有数据的 AI 工作负载。
语义分割任务可以帮助机器区分图像中的不同对象类和背景区域。随着人工智能 (AI) 和机器学习 (ML) 的兴起,图像分割和分割图的创建在训练计算机识别数字图像(例如风景、人物照片、医学图像等)中的重要上下文方面发挥着重要作用。
借助图像分割学习模型,机器能够像人脑一样解读视觉信息。尽管图像分割模型确实与对象检测模型有某些共同的用途,但它们在关键方面有所不同:它们在像素级别识别图像中包含的不同实体,而不是使用边界框来模拟这些信息。本质上,虽然图像分类模型可以确定图像中包含的内容(但不能进行任何定位),并且对象检测模型可以确定对象在图像中的位置,但要确定图像中实体的特定形状和边界,则需要图像分割模型。1
随着深度学习算法在帮助机器将图像解读为数据方面越来越成功,机器在识别对象方面表现越来越好。图像分类任务可以帮助机器理解图像中包含的信息,而语义分割可以让机器识别不同类型视觉信息的精确位置,以及每个信息的开始和结束位置。
语义分割模型创建输入图像的分割图。分割图本质上是原始图像的重建,其中每个像素已按语义类进行颜色编码,以创建分割掩码。分割掩码只是图像中与图像其他区域区分开来的一部分。例如,空旷场地中的一棵树的分割图可能包含三个分割掩码:一个用于树,一个用于地面,一个用于背景中的天空。
为此,语义分割模型使用复杂的神经网络将相关像素精确地组合成分割掩码,并正确识别每组像素(或分段)的真实语义类。这些深度学习 (DL) 方法需要在由人类专家注释的大型预标记数据集上训练模型,并通过反向传播和梯度下降等机器学习技术调整权重和偏差。
深度学习方法已经取代其他“传统”机器学习算法,例如支持向量机 (SVM) 和随机森林。尽管深度神经网络需要更多的时间、数据和计算资源来训练,但它们的性能优于其他方法,在早期证明创新成功后,迅速成为首选方法。
对图像数据进行准确分类的任务需要由像素值组成的数据集,这些像素值代表不同对象的掩码或图像中包含的类标签。通常,由于图像分割中涉及的训练数据的复杂性,此类数据集比其他机器学习数据集更大、更复杂。
有许多开源图像分割数据集可供使用,涵盖各种语义类,每个类都有数千个示例和详细注释。例如,想象一个分割问题,对无人驾驶汽车中的计算机视觉进行训练,以识别需要刹车的所有不同对象,例如行人、自行车和其他汽车。汽车的计算机视觉必须经过训练才能一致地识别所有这些对象,否则它可能不会始终告知汽车刹车;它的训练也必须极其准确和精确,否则它可能会在错误地将无害的视觉图像分类为关注对象后不断刹车。
以下是一些用于图像和语义分割的较常见开源数据集:
Pascal 视觉对象类 (Pascal VOC):Pascal VOC 数据集由许多不同的对象类、边界框和强大的分割图组成。
MS COCO:MS COCO 包含大约 330,000 张图像和注释,用于检测、分割和图像描述等许多任务。
Cityscapes:常见的 Cityscapes 数据集解读来自城市环境的数据,由 5,000 张图像、20,000 个注释和 30 个类标签组成。
经过训练的模型需要强大的架构才能正常运行。以下是一些广泛使用的语义分割模型。
全卷积网络 (FCN)
全卷积网络 (FCN) 是一种用于语义分割的最先进的神经网络架构,它依赖于多个连接的卷积层。传统的 CNN 架构由输出单个标签的卷积层和平坦层组成,而 FCN 模型用 1:1 卷积块替换其中一些平坦层,可以进一步提取有关图像的更多信息。避免使用平坦、密集的层,转而使用卷积、池化或上采样层,使 FCN 网络更容易训练。
U-Net
U-Net 架构是基于 2015 年推出的原始 FCN 架构进行的修改,可以始终取得更好的结果。它由编码器和解码器两部分组成。当编码器堆叠卷积层时,卷积层始终如一地对图像进行下采样以从中提取信息,而解码器则使用反卷积过程重建图像特征。U-Net 架构主要用于医学领域,旨在识别肺部和大脑中的癌性和非癌性肿瘤。
DeepLab
DeepLab 语义分割模型由 Google 于 2015 年开发,旨在进一步改进原始 FCN 的架构并提供更精确的结果。虽然 FCN 模型中的层堆栈可以显著降低图像分辨率,但 DeepLab 的架构使用一种称为“空洞卷积”的过程来对数据进行上采样。通过空洞卷积过程,卷积核可以从图像中删除信息并在核参数之间留出间隙。
DeepLab 的扩张卷积方法将数据从更大的视野中拉出,同时仍然保持相同的分辨率。然后通过完全连接的条件随机场算法 (CRF) 拉取特征空间,以便捕获更多细节并将其用于逐像素损失函数,从而产生更清晰、更准确的分割掩码。
金字塔场景解析网络 (PSPNet)
2017 年,一种新的图像分割算法问世。PSPNet 部署了金字塔解析模块,相较其前代能够以更高的准确率收集环境图像数据集。与前代一样,PSPNet 架构采用编码器-解码器方法,但在提高 DeepLab 应用以执行像素级计算,PSPNet 添加了一个新的金字塔池化层来实现其结果。PSPNet 的多向缩放池化使其能够比其他模型分析更宽的图像信息窗口。
自动驾驶汽车使用语义分割来查看周围的环境并对其做出实时反应。语义分割将汽车看到的内容分成分类的视觉区域,例如道路上的车道、其他汽车和十字路口。借助通过语义分割向汽车提供的知识,汽车能够安全导航和到达目的地,并采取重要行动来应对意外事件,例如行人过马路或另一辆汽车突然刹车。
CT 扫描、X 射线和 MRI 等许多常见的医疗程序都依赖于图像分析。虽然这项任务过去通常由医学专业人员承担,但如今,医学图像分割模型也取得了类似的结果。通过分析图像并在其中的各种对象周围绘制精确的边界,配备语义分割的 AI 可帮助检测异常情况,甚至提出潜在的诊断建议。
农民正在使用 AI、自动化和语义分割来帮助检测农作物中的虫害,甚至可以自动喷洒农药。计算机视觉可以告诉农民田地的哪些部分可能受到感染或面临风险,自动化系统可以采取行动消除害虫。
语义分割经常用于支持相机在人像和风光模式之间切换、添加或移除滤镜或创建效果。Instagram 和 TikTok 等应用程序上的所有常见滤镜和功能使用语义分割来识别汽车、建筑物、动物和其他对象,以便可以应用所选滤镜或效果。
1《计算机视觉实用机器学习》(ibm.com 外部链接),Lakshmanan、Valliappa、Gorner、Martin 和 Gillard、Ryan、O’Reilly Media,2021 年 7 月