目录
前言
一、常见的分割任务
二、语义分割的网络模型
三、语义分割的常见数据集格式
四、语义分割所得结果具体形式
五、语义分割的常见评价指标
六、语义分割的常用标注工具
这篇文章是我根据 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 |
在 PNG 图片中记录了每个像素所属的类别信息,使用 调色板 模式进行存储,针对 0 ~ 255 像素,每个像素都对应一种颜色:
关于 PASCAL VOC 数据集的语义分割应用,大家可以查看霹雳吧啦的这篇博客:
PASCAL VOC2012数据集介绍_太阳花的小绿豆的博客-CSDN博客文章浏览阅读4.8w次,点赞187次,收藏571次。之前有在Bilibili上简单介绍过这个数据集,但一直没有写博文,今天抽空总结下,如果不想看文章的,可以看下我在Bilibili上的讲解视频。Pascal VOC2012数据集详解视频: https://b23.tv/F1kSCKPascal VOC2012官网地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/官方发表关于介绍数据集的文章 《The PASCALVisual Object Classes Challenge: A Retrospecti_pascal voc2012https://blog.csdn.net/qq_37541097/article/details/115787033
关于 MS COCO 数据集格式,针对图像中的每一个目标都记录了 polygons 多边形坐标。
关于 MS COCO 数据集的语义分割应用,大家可以查看霹雳吧啦的这篇博客:
MS COCO数据集介绍以及pycocotools简单使用_太阳花的小绿豆的博客-CSDN博客文章浏览阅读4.3w次,点赞169次,收藏665次。文章目录1. MS COCO数据集简介2. MS COCO数据集下载3. MS COCO标注文件格式3.1 使用Python的json库查看3.2 使用官方cocoAPI查看1. MS COCO数据集简介官网地址https://cocodataset.org/简介MS COCO是一个非常大型且常用的数据集,其中包括了目标检测,分割,图像描述等。其主要特性如下:Object segmentation: 目标分割Recognition in context: 图像情景识别Superp_pycocotoolshttps://blog.csdn.net/qq_37541097/article/details/113247318
同上文在讲解 PASCAL VOC 数据集格式所说的,语义分割所得结果的具体形式为 单通道图片 ,加上 调色板 后就变成彩色图片, 每个像素数值都对应了类别索引 。注意,使用调色板是为了更好地可视化我们的预测结果ヾ(•ω•`)o
常见的语义分割评价指标主要包括 Pixel Accuracy ( Global Accuracy )、mean Accuracy、mean IoU 等:
【注意】在下面关于语义分割评价指标的计算应用中,微臣都在视频教程的截图中补充了红、蓝的文字说明噢~
Labelme 是一款经典的标注工具,支持目标检测、语义分割、实例分割等任务。开源网址:https://github.com/wkentaro/labelme
关于 Labelme 的安装与使用,大家可以参考霹雳吧啦的这篇博客:
Labelme分割标注软件使用_labelme2voc.py_太阳花的小绿豆的博客-CSDN博客文章浏览阅读3.4w次,点赞120次,收藏612次。Labelme是一款经典的标注工具,支持目标检测、语义分割、实例分割等任务。今天针对分割任务的数据标注进行简单的介绍。开源项目地址:https://github.com/wkentaro/labelme_labelme2voc.pyhttps://blog.csdn.net/qq_37541097/article/details/120162702
EISeg 是基于飞桨开发的交互式分割标注软件,是半自动的标注工具。仓库地址:https://github.com/PaddlePaddle/PaddleSeg
关于 EISeg 的安装与使用,大家可以参考霹雳吧啦的这篇博客:
EISeg分割标注软件使用-CSDN博客文章浏览阅读3.1w次,点赞77次,收藏400次。官方原话:EISeg(Efficient Interactive Segmentation)是基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。飞桨(PaddlePaddle)是百度开源的深度学习框架,社区也比较活跃,关键是中文方便交流.._eiseghttps://blog.csdn.net/qq_37541097/article/details/120154543
【补充】为了让王子公主们能够更加方便地在仓库中找到 EISeg ,我在这里放置了【EISeg】快速跳转按钮!
致亲爱的王子公主们:微臣最近忙于课程作业,暂时还未安装和使用 Labelme 和 EISeg 标注工具,等后面亲身经历之后,会再来更新这篇笔记的 (●'◡'●) 最后祝大家身体健康,生活顺利!