Pytorch——图像分割问题

1,074 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情


前言

上一篇文章中,我们介绍了MMDetection框架和MMDetection的使用说明。

今天,我们来介绍图像分割问题,包括图像分割的概念、图像分割问题方法、图像分割评价指标、图像分割问题难点。


  • 1.1 图像分割的概念

图像分割就是将图像中我们感兴趣的部分进行分割提取,对于分割后的图像,像素都会对应到一个类别,相较于目标检测,图像分割的力度会更细。

  • 图像分割:提取图像中哪些像素是用于表达已知目标的。
    • 目标种类与数量问题
    • 目标尺度问题
    • 外在环境干扰问题
    • 物体边缘

SX~%ETPNIT4G2@`LM{_6LO1.png

  • 目前的一些应用领域和常用的数据集
    • 自然场景:Passcal VOC, COCO, ADE20k等;
    • 自动驾驶: Cityscapes, KITTI等;
    • 医学图像:DRIVE, IMT, IDRiD等;
    • 航空遥感图像: Inria Aeral Image Labeling Dataset等;
    • 感兴趣区域: MSRA Salient Obiect Databas等;
    • 场景文字: COCO-Text等

JB4QS5P((UC1Z{66_ZSDL9R.png

  • Semantic Segmentation(语义分割)
    • 把图像中每个像素赋予一个类别标签(比如汽车、建筑、地面、天空等)
    • 比如下图就把图像分成了草地(浅绿)、人(红色)、数目(深绿)、天空(蓝色)等标签,用不同的颜色来表示。

~L4DPCL%}0$J37D5`PM(G_D.png

  • Instance Segmentation(实例分割)
    • 目标检测和语义分割的结合
    • 只对图像中的object进行检测,并对检测到的object进行分割
    • 相对目标检测的边界框,实例分割可精准到物体的边缘
    • 相对语义分割,实例分割需要标注图中同一物体的不同个体

2.png

  • Panoptic Segmentation(全景分割)
    • 全景分割是语义分割和实例分割的结合
    • 对图中的所有物体包括背景都进行检测和分割
    • 与语义分割相比,全景分割的困难在于要优化全连接网络的设计,使其网络结构能够区分不同类别的实例
    • 与实力分割相比,由于全景分割要求每个像素只能有一个类别和id标注,因此不能出现实例分割中的重叠现象。

3.png

  • 1.2 图像分割问题方法

  • Semantic Segmentation(语义分割)

    • 4.png
      • 首先利用卷积神经网络进行Encoding,将图像进行下采样,在经过一定比例的下采样之后进行上采样,将下采样之后的图进行上采样之后拿到和原始的输入图像长宽尺寸相同的图,这个图就是最终想要的分割图。
      • 在这个分割图中,对每一个原始图像的像素都进行分类,也就是说,当前语义分割想要分割出N个区域的话,那么我们在经过Encoding和Decodin之后拿到的输出结果是一个HxWxN的分割图。
    • 为什么要进行下采样?
      • 减小网络的计算量
      • 加大感受野,学习像素与像素之间的邻域信息
    • 比较经典的网络
      • UNet
      • PSPNet
      • SegNet
      • Deeplab系列
      • 推荐一个关于语义分割的网络的综述的论文:arxiv.org/pdf/1907.06…
  • Instance Segmentation(实例分割, two stage)

实例分割不仅要求要对物体进行分割,同时需要完成检测,对于感兴趣的目标,再去分割出它的轮廓;所以,对于实例分割的任务,可以将它理解成检测加分割的模型

  • Mask-RCNN

    • image.png
    • 经过卷积,下采样之后,提取RPN网络,拿到候选区之后,通过ROI Align将候选区进行提取,提取之后对类别再进行判断,回归出它的Box;同时再完成对感兴趣区域的分割
  • 两阶段实例分割算法:

    • Mask-R-CNN,Mask Scoring R-CNN,PANet等
  • Instance Segmentation(实例分割-single stage)

    • 6.png
    • SOLO是基于YOLO目标检测一个非常经典的一个single stage。
      • 通过下采样拿到SxS的特征图,之后对每一个格子预测类别和对应真值目标的坐标,并且进行Mask区域的分割
  • 单阶段实例分割算法:

    • anchor-based: YOLACT/YOLACT++
    • anchor-free: BlendMask,PolarMask,SOLOV1/SOLOV2
  • Panoptic Segmentation(全景分割)

  • 7.png

    • 主要将语义分割和实例分割结合起来,主要包含的模块:输入的图像经过一个卷积网络,卷积网络处理的结果分别经过实例分割的模块和语义分割的模块,拿到分割结果和检测结果,然后再对这两个模块的结果进行结合,拿到最终的全景网络的输出结果。
    • 比较典型的就是再Mask-RCNN的基础上加入一个FPN层,在FPN层完成语义分割,Mask-RCNN完成实例分割
  • 全景分割的模型:

    • Panoptic FPN(Mask R-CNN+FPN)
    • AUNet
    • UPSNet
    • TASCNet
    • JSIS-Net
    • DeeperLab
    • OANet
  • 1.3 图像分割评价指标

  • 算法性能的评价

    • Pixel Accuracy(像素准确率)
      • 针对每一个像素的预测结果
    • MPA(平均像素准确率)
      • 对每一个类别分别计算准确率,然后再类别的基础上进行平均
    • Mean Inetersection over Union(平均交并比)
    • 频权交并比(FWIoU)
    • FAIR研究团队为全景分割定了新的评价指标
    • PQ(panoptic segmentation)
    • SQ(segentation quality)
    • RQ(recognition quality)

8.png

  • 1.4 图像分割问题中的难点

  • 数据标注成本高

  • 小样本问题

  • 细粒度的图像分割任务

  • 视频图像分割,边缘准确性和稳定性

  • 模型压缩

  • 全景分割:things类别和stuff类别

9JQ4ZCQY3M({Q$KEN%9BFQX.png