图像处理与计算机视觉

语义分割

你需要知道的三件事

什么是语义分割?

语义分割是一种深度学习算法,它将标签或类别与图像中的每个像素相关联。它用于识别形成不同类别的像素集合。例如,自动驾驶车辆需要识别车辆、行人、交通标志、路面和其他道路特征。

语义分割在许多应用中都有应用,如自动驾驶、医学成像和工业检测。

语义分割的一个简单示例是将图像分为两类。例如,在图1中,显示海滩上的人的图像与显示图像像素的版本配对,图像像素被分割为两个独立的类:人和背景。

图1:图像和标记像素。

语义分割不限于两类。您可以更改分类图像内容的类别数。同样的图像可以分为四类:例如人、天空、水和背景。

语义分割与目标检测有何不同?

语义分割是目标检测的一种有用的替代方法,因为它允许感兴趣的对象在像素级跨越图像中的多个区域。这种技术可以清晰地检测形状不规则的对象,与对象检测相反,对象检测必须适合边界框(图2)。

图2:对象检测,显示用于识别对象的边界框。

语义分割是如何使用的?

因为语义分割标记图像中的像素,所以它比其他形式的对象检测更精确。这使得语义分割对于需要精确图像地图的各种行业的应用非常有用,例如:

  • 自动驾驶-用于通过将道路与障碍物(如行人、人行道、电线杆和其他车辆)隔开来识别汽车的可行驶路径
  • 工业检验-用于检测材料中的缺陷,如晶圆检查
  • 卫星图像-用于识别山脉、河流、沙漠和其他地形
  • 医学影像-用于分析和检测细胞中的癌异常
  • 机器人视觉-用于识别和导航对象和地形

图3:多光谱卫星图像的语义分割。

语义分割的工作原理

训练语义分割网络对图像进行分类的过程如下:

  1. 分析一组像素标记的图像。
  2. 创建语义分段网络。
  3. 训练网络将图像分类为像素类别。
  4. 评估网络的准确性。

示例:自动驾驶应用程序

图4中的序列显示了用于自动驾驶的语义分段的真实示例。道路图像会自动从其他车辆中分割出来。下一节将介绍如何创建这些网络。

图4:自动驾驶应用程序的语义分割。

理解架构

语义分割的一种常见方法是创建一个基于卷积神经网络(CNN)建筑。典型的CNN架构如图5所示。

该CNN将整个图像分类为许多预定义类别之一。

图5:CNN的典型结构。

要在像素级别而不是整个图像进行分类,可以附加CNN的反向实现。执行上采样处理的次数与下采样处理的次数相同,以确保最终图像与输入图像的大小相同。最后,使用像素分类输出层,将每个像素映射到特定的类别。这形成了一个编码器-解码器体系结构,它支持语义分割。

图6:CNN在每一层执行图像相关功能,然后使用池层(绿色)对图像进行下采样。该过程在网络的前半部分重复数次。此图前半部分的输出后面是等量的未冷却层(橙色)。

利用MATLAB进行语义分割

在MATLAB中,执行语义分段的工作流遵循以下五个步骤:

  1. 标记数据或获取标记数据。
  2. 为原始图像和标记图像创建数据存储。
  3. 对数据存储进行分区。
  4. 导入CNN并将其修改为SegNet。
  5. 培训和评估网络。

步骤1:标记数据或获取标记数据。

深度学习模型建立在大量数据的基础上,语义分割也不例外。一种选择是在互联网上查找标记数据。如果你有自己的数据集,你可以使用MATLAB中的图像标签应用程序。您可以使用此数据集来训练SegNet。

图7:MATLAB Image Labeler应用程序,用于标记用于语义分割的图像。

了解更多

步骤2:为原始图像和标记图像创建数据存储。

当处理大量数据时,通常不可能将所有信息加载到内存中。要管理大型数据集,可以使用数据存储。数据存储包含要访问的文件的位置,并且仅当需要对文件进行操作时,才允许将其读入内存。

要创建SegNet,您需要两个数据存储:

  1. 图像数据存储,其中包含原始图像
  2. 像素标签数据库,其中包含标记的图像

步骤3:对数据存储进行分区。

创建SegNet时,必须将数据存储划分为两部分:

  1. 用于训练SegNet的训练集
  2. 用于评估网络准确性的测试集

图8:显示彩色图像(左)和相应标记像素(右)的高速公路场景。

步骤4:导入CNN并将其修改为SegNet。

加载预训练网络(如VGG16)并使用SegNetLayers命令,创建像素级标记所需的编码器-解码器体系结构。

图9:使用MATLAB中的一行代码创建SegNet体系结构。

第5步:培训和评估网络。

在最后一步中,为网络设置超参数并训练网络。

如何进一步了解语义分割

s manbetx 845支万博1manbetx持使用语义分割进行图像分析的产品包括MATLAB®,计算机视觉工具箱™ 用于像素标记,以及深度学习工具箱™ 用于创建和培训网络。

CUDA支持训练和预测万博1manbetx®具有3.0或更高计算能力的GPU。建议使用GPU,并要求并行计算工具箱™.

软件参考

30天免费试用

开始