来详解一下计算机视觉中的语义分割任务 (1)

这是我参与2022首次更文挑战的第19天,活动详情查看:2022首次更文挑战

最近工作内容主要就是语义分割,语义分割是一个大话题,估计一两次分享很难将其将清楚,特别还是语义形式,所以准备多做几次分享来说一说语义分割。

分享会涉及那些

在分享中我们会谈那些内容呢?

  • 什么是语义分割,也就是我们学习语言分割动力
  • 语义分割有哪些应用
  • 语义分割任务中的难点
  • 语义分割当下发展现况,会聊一聊 FCN、UNet、deepLab 系列和当下 swin
  • 语义分割未来发展方向,也就是自己一些想法

什么是语义分割

语义分割是一个比较基本的计算机视觉任务,英文是 semantic segmentation,通常翻译为语义分割,容易让人产生错觉,是跟自然语言相关的任务,其实这个任务早在深度学习盛行前就已经引起人们关注,当时还是用聚类这样的方法来做语义分割。

segmentation.png

语义分割有那些应用

现在普遍地应用到一些像自动驾驶的场景下。相对于图像分类和目标检测这些计算机视觉任务,语义分割具有一定难度,因为语义分割通过识别出目标轮廓可以更准确地将目标在图像所占据的空间表示出来。不过虽然语义分割看着高大尚,其实也是分类问题,就是一个像素分类,要做的是也就是将每个像素标出其所属的类别。

  • 医学影像上应用
  • 图像处理例如 blur 图像背景

语义分割衡量指标

在开始介绍模型前我们先简单介绍一下语义分割衡量指标 Acc 和 IoU,其实我们现在在做 AI 项目都是先着手选择模型,其实我们应该先了解衡量标准,有了目标。

区分 背景 前景
背景 TN FP
背景 FN TP

这里 T 表示 True , F 表示 False ,P 和 N 分别表示 positive 和 negative,其中 positive 和 negative 表示预测结果,而 T 和 F 表示预测错误

TP 表示预测正确,实际是正例样本 TN 表示预测正确,实际是负例样本 FP 表示预测错误,实际是正例样本 FN 表示预测错误,实际是负例样本

所以从本质上讲,这些问题通常是类别不均衡,也就是属于背景的像素要远远多于属于目标(前景)像素,因为大多数像素通常是背景像素,一般来说几乎 90% 左右的像素都是背景,或者说是负例样本。

要预测 10 个不同的类别,对于某一个类别只有剩下的 10% 属于该类别,其他部分可以看做背景,

iou.png

对于每一个分类,例如图中分类问题,在左侧 Ground Truth 图中,浅黄色区域来表示人物,浅紫色表示背景。而右侧是推测图,

我们需要扩大 intersection 也就是交集部分,也就是第二张图中,预测浅黄色和任务之间重合的区域,这个区域的面积也是我们想要扩大的区域

下面图中,左侧图中浅黄色表示交集 A B A \cap B 也就是 TP 部分,而右图中黄色部分是并集也就是 A B A \cup B 主要由 3 部分组成,也就是 TP 预测为前景实际也是

iou_02.png

I o U = i n t e r s e c t i o n u n i o n IoU = \frac{intersection}{union}

我们进一步将其对应到我们混淆矩阵,TP 表示实际是预测为前景,实际也是前景(人)。FP 表示预测错误实际前景,FN表示预测错误实际背景

I o U = T P F P + T P + F N IoU = \frac{TP}{FP + TP + FN}

代码简单实现

intersection = np.logical_and(target, prediction) 
union = np.logical_or(target, prediction) 
iou_score = np.sum(intersection) / np.sum(union)
复制代码

Guess you like

Origin juejin.im/post/7066383581807345701