计算机视觉框架OpenMMLab开源学习:语义分割基础

Posted GoAI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机视觉框架OpenMMLab开源学习:语义分割基础相关的知识,希望对你有一定的参考价值。

写在前面:强烈推荐给大家一个优秀的人工智能学习网站,内容包括人工智能基础、机器学习、深度学习神经网络等,详细介绍各部分概念及实战教程,通俗易懂,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站


 语义分割

前言:本系列第六篇文章主要介绍语义分割知识,了解计算机视觉框架OpenMMLab的MMSegmentation工具基本原理及使用,为后续语义分割实战做铺垫。

本节内容:

语义分割的基本思路 深度学习下的语义分割模型 全卷积网络 空洞卷积与 DeepLab 模型 上下文信息与 PSPNet 模型 分割模型的评估方法 实践 MMSegmentation

语义分割概念

任务: 将图像按照物体的类别分割成不同的区域 等价于: 对每个像素进行分类。

语义分割应用:

无人驾驶汽车,人像分割,智能遥感,医疗影像分析

mmdet是实例分割,先做检测

  • 语义分割 : 仅考虑像素的类别 不分割同一类的不同实体
  • 实例分割 : 分割不同的实体 仅考虑前景物体
  • 全景分割 : 背景仅考虑类别 前景需要区分实体

语义分割的基本思路

 在原图上计算卷积,计算复用结果相同

问题:全连接层要求固定输入大小

 兼容任意尺寸的图,没有全连接层

深度学习下的语义分割模型

 升采样:双线性插值和转置卷积

池化,卷积降采样,语义分割需要升采样

 

 卷积,空间语义会因为降采样逐渐丢失位置信息

问题:基于顶层特征预测,再升采样 32 倍得到的预测图较为粗糙

分析:高层特征经过多次降采样,细节丢失严重

解决思路: 结合低层次和高层次特征图

Unet 2015

上下文信息和PSPNet

图块周围的像素块,图像周围的内容:上下文

有歧义的区域:

滑动窗口会丢失上下文信息,并且低效,需要更大范围的信息

图像周围的内容(也称上下文)可以帮助我们做出更准确的判断。

方案:增加感受野更大的网络分支,将上下文信息导入局部预测中

PSPNet2016

不同感受野的上下文信息

空洞卷积与DeepLab系列算法

DeepLab 是语义分割的又一系列工作,其主要贡献为:

  • 使用空洞卷积解决网络中的下采样问题
  • 使用条件随机场 CRF 作为后处理手段,精细化分割图
  • 使用多尺度的空洞卷积(ASPP 模块)捕上下文信息

DeepLab v1

发表于2014 年,后于 2016、2017、2018 年提出 v2、v3、v3+ 版本

 

空洞卷积解决下采样问题

问题:图像分类模型中的下采样层使输出尺寸变小

  • 如果将池化层和卷积中的步长去掉
  • 可以减少下采样的次数;
  • 特征图就会变大,需要对应增大卷积核,以维持相同的感受野,但会增加大量参数

解决方案:

使用空洞卷积(Dilated Convolution/Atrous Convolution),在不增加参数的情况下增大感受野

下采样加标准卷积等价于空洞卷积

使用空洞卷积可以得到相同分辨率的特征图,且无需额外插值操作

  • 去除分类模型中的后半部分的下采样层
  • 后续的卷积层改为膨胀卷积,并且逐步增加rate来维持原网络的感受野

条件随机场Conditional Random Field,CRF

问题:模型直接输出的分割图较为粗糙,尤其在物体边界处不能产生很好的分割结果

一种后处理,使得语义边界分割精确

能量函数,可以看做一种损失函数

ASPP 空间金字塔池化 Atrous Spatial Pyramid Pooling

 PSPNet 使用不同尺度的池化来获取不同尺度的上下文信息

DeepLab v2&v3 使用不同尺度的空洞卷积达到类似的效果

更大膨胀率的空洞卷积--->>>更大的感受野--->>>更多的上下文特征

DeepLab v3+

  • DeepLab v2 / v3 模型使用 ASPP 捕捉上下文特征
  • Encoder / Decoder 结构(如 UNet) 在上采样过程中融入低层次的特征图,以获得更精细的分割图

DeepLab v3+ 将两种思路融合,在原有模型结构上增加了一个简单的 decoder 结构

  • Encoder 通过ASPP 产生多尺度的高层语义信息
  • Decoder 主要融合低层特征产生精细的分割结果

经典语义分割算法

语义分割模型的评估

在机器学习分类项目中,我们一般:

precision来评估某类别分类的准确性; 用accuracy来评估总体分类的准确性。

recall与precision区别:

(1)recall,召回率又名查全率,与漏报率有关,(漏报率,FN,即错误的预测为负样本,换句话说,将实际为正的样本预测为负),详情参照混淆矩阵,如下。

预测为正样本(positive,P)预测为负样本(negative,N)
实际为正样本 (True, T)TPFN
实际为负样本 (False, F)FPTN

其中,T指预测正确(预测为正样本,实际也为正样本的情况),F指预测错误。

recall=TP/(TP+FN),可理解为,实际为正的样本中,预测正确的样本的比例。

应用于,医生预测病人癌症的情况,病人更关注的是是否漏报,漏报会导致病被忽略,延误治疗。
通过记忆漏报率,可清晰理解recall的概念。

(2)precision,精准率又名查准率,与误报率有关,(误报率,FP,即错误的预测为正样本,换句话说,将实际为负的样本预测为正)。

precision=TP/(TP+FP),可理解为,在预测为正的样本集合中,预测正确的样本的比例。

总结:

本系列第六篇文章主要介绍语义分割知识,了解计算机视觉框架OpenMMLab的MMSegmentation工具基本原理及使用,为后续语义分割实战做铺垫。

以上是关于计算机视觉框架OpenMMLab开源学习:语义分割基础的主要内容,如果未能解决你的问题,请参考以下文章

计算机视觉框架OpenMMLab开源学习:基础介绍

计算机视觉框架OpenMMLab开源学习:图像分类实战

计算机视觉框架OpenMMLab开源学习:目标检测基础

OpenMMLab AI实战课笔记

计算机视觉框架OpenMMLab开源学习:图像分类

计算机视觉框架OpenMMLab开源学习:目标检测实战