目录
前言
这篇文章是我根据 B 站 霹雳吧啦Wz 的《深度学习:语义分割篇章》中的 语义分割前言 所作的学习笔记,涵盖内容如目录所示,希望能为正在学习语义分割的小伙伴们提供一些帮助ヾ(^▽^*))) 因为才刚刚开始接触语义分割,所以在表达上可能比较幼稚,希望王子公主们多多包涵啦!如果存在什么问题的话,也麻烦大家直接指出!在未来这段时间里, 煮茶 期待能和大家一起学习进步~
一、常见的分割任务
首先,我们需要知道常见的分割任务有哪些,以及它们各自的经典网络,具体如下:
常见分割任务 | 经典网络 |
---|---|
语义分割(Semantic Segmentation) | FCN |
实例分割(Instance Segmentation) | Mask R-CNN |
全景分割(Panoramic Segmentation) | Panoptic FPN |
语义分割:需要对图片上的所有像素点进行分类,但不需要分割同类别的不同实体。
实例分割:目标检测和语义分割的结合,需要在语义分割的基础上,标注出同类物体的不同个体,例如 person1、person2 等。
全景分割:语义分割和实例分割的升级版,不仅需要对前景物体进行分割,还需要对背景进行检测和分割。
为了让大家更直观地感受这三者的区别,我在下面贴了图,参考:语义分割、实例分割和全景分割_语义分割和实例分割-CSDN博客
二、语义分割的网络模型
知道什么是语义分割后,我们就可以去 PyTorch 官网查看 torchivision 中提供的语义分割网络模型啦,为了让王子公主们能拥有更好的学习体验,我在这里放置了【semantic-segmentation】快速跳转按钮ヾ(•ω•`)o
根据 PyTorch 官网提供的语义分割网络模型,我们可以得到下面这张表:
Model | mIoU | Global Pixel Acc | Params (M) | GFLOPS |
---|---|---|---|---|
DeepLabV3 MobileNetV3-Large | 60.3 | 91.2 | 11.0 | 10.45 |
DeepLabV3 ResNet101 | 67.4 | 92.4 | 61.0 | 258.74 |
DeepLabV3 ResNet50 | 66.4 | 92.4 | 42.0 | 178.72 |
FCN ResNet101 | 63.7 | 91.9 | 54.3 | 232.74 |
FCN ResNet50 | 60.5 | 91.4 | 35.3 | 152.72 |
LR-ASPP MobileNetV3-Large | 57.9 | 91.2 | 3.2 | 2.09 |
三、语义分割的常见数据集格式
1、PASCAL VOC —— PNG 图片(P模式)
在 PNG 图片中记录了每个像素所属的类别信息,使用 调色板 模式进行存储,针对 0 ~ 255 像素,每个像素都对应一种颜色:
- 像素 0 对应的是 ( 0 , 0 , 0 ) 黑色
- 像素 1 对应的是 ( 127 , 0 , 0 ) 深红色
- 像素 255 对应的是 ( 244 , 244 , 129 ) 目标边缘
关于 PASCAL VOC 数据集的语义分割应用,大家可以查看霹雳吧啦的这篇博客:
2、MS COCO
关于 MS COCO 数据集格式,针对图像中的每一个目标都记录了 polygons 多边形坐标。
关于 MS COCO 数据集的语义分割应用,大家可以查看霹雳吧啦的这篇博客:
四、语义分割所得结果具体形式
同上文在讲解 PASCAL VOC 数据集格式所说的,语义分割所得结果的具体形式为 单通道图片 ,加上 调色板 后就变成彩色图片, 每个像素数值都对应了类别索引 。注意,使用调色板是为了更好地可视化我们的预测结果ヾ(•ω•`)o
五、语义分割的常见评价指标
常见的语义分割评价指标主要包括 Pixel Accuracy ( Global Accuracy )、mean Accuracy、mean IoU 等:
- Pixel Accuracy = 类别预测正确的像素个数总和 ÷ 图片的总像素个数
- mean Accuracy = 对每个类别的 Accuracy 求平均值
- mean IoU = 对每个类别的 IoU 求平均值( 我用绿、蓝、橙的框在图中作了说明 (๑•̀ㅂ•́)و✧)
【注意】在下面关于语义分割评价指标的计算应用中,微臣都在视频教程的截图中补充了红、蓝的文字说明噢~
六、语义分割的常用标注工具
1、Labelme 标注工具
Labelme 是一款经典的标注工具,支持目标检测、语义分割、实例分割等任务。开源网址:https://github.com/wkentaro/labelme
关于 Labelme 的安装与使用,大家可以参考霹雳吧啦的这篇博客:
2、EISeg 标注工具
EISeg 是基于飞桨开发的交互式分割标注软件,是半自动的标注工具。仓库地址:https://github.com/PaddlePaddle/PaddleSeg
关于 EISeg 的安装与使用,大家可以参考霹雳吧啦的这篇博客:
【补充】为了让王子公主们能够更加方便地在仓库中找到 EISeg ,我在这里放置了【EISeg】快速跳转按钮!
最后说些话
致亲爱的王子公主们:微臣最近忙于课程作业,暂时还未安装和使用 Labelme 和 EISeg 标注工具,等后面亲身经历之后,会再来更新这篇笔记的 (●'◡'●) 最后祝大家身体健康,生活顺利!