分割
我们之前学习了目标检测,它可以通过预测边界框来定位图像中的对象。然而,对于某些任务,我们不仅需要边界框,还需要更精确的对象定位。这项任务被称为分割。
课程内容
分割
我们之前学习了目标检测,它可以通过预测边界框来定位图像中的对象。然而,对于某些任务,我们不仅需要边界框,还需要更精确的对象定位。这项任务被称为分割。
课前测验
分割可以看作是像素分类,即对于图像中的每个像素,我们必须预测其类别(背景是其中一个类别)。主要有两种分割算法:
- 语义分割只告诉像素的类别,不区分同一类别的不同对象。
- 实例分割将类别划分为不同的实例。
例如,对于实例分割,这些羊是不同的对象;而对于语义分割,所有的羊都被表示为一个类别。
图片来源于这篇博客文章
分割有不同的神经网络架构,但它们的结构都相同。从某种意义上说,它类似于你之前学习过的自动编码器,但不是解构原始图像,而是解构一个掩码。因此,分割网络包括以下部分:
- 编码器从输入图像中提取特征
- 解码器将这些特征转换为掩码图像,其大小与通道数对应于类别数量。
图片来源于这篇论文
我们特别需要提到分割中使用的损失函数。在使用经典自动编码器时,我们需要测量两张图像之间的相似性,可以使用均方误差(MSE)来实现。在分割中,目标掩码图像中的每个像素表示类别编号(在第三维度上进行独热编码),因此我们需要使用特定于分类的损失函数——交叉熵损失,并对所有像素进行平均。如果掩码是二值的,则使用二值交叉熵损失(BCE)。
✅ 独热编码是一种将类别标签编码为长度等于类别数量的向量的方法。可以查看这篇文章了解这一技术。
