- 视频链接:语义分割与MMSegmentation
- 好的教程:超详细!手把手带你轻松用 MMSegmentation 跑语义分割数据集
- 以及:超详细!带你轻松掌握 MMSegmentation 整体构建流程
- 案例代码:https://github.com/TommyZihao/MMSegmentation_Tutorials
1. 基本概念
1.1 案例演示
1.2 应用
1.3 语义分割概念
2. 语义分割算法
2.1 语义分割基本思路
2.1.1 按颜色
最简单的思路:按照颜色聚类,基于同一物体颜色具有连续性这个先验知识
- 大部分情况下,都可以分割(实现抠图)
- 但是没有语义,就无法对同类物体做合并或者归为一类
- 比如上图有个电线杆,马路就被分成了两部分。
- 同时需要额外手段确定物体类别
- 另外所基于的先验知识不完全准确,不同物体颜色可能接近,物体内也会包含多种颜色
2.1.2 逐像素分类
最早的CNN是用于分类问题的,分割任务可以作为逐像素分类的任务对待,基于滑窗逐点分类。
- 优势:充分利用现有的图像分类模型
- 问题:效率低下,重叠区域重复计算卷积。。。
- 这个问题不是密集检测解决了吗。。。😂
复用卷积计算:对于同样的卷积核,在滑窗上计算卷积,和直接在原图上计算卷积,计算结果是相同的。
这部分就是目标检测里rcnn→fast rcnn→faster rcnn的思路
虽然复用卷积解决重复卷积计算的问题,但是还有个输入尺寸固定的问题
- 传统的卷积神经网络里有全连接层,这就需要输入的特征图尺寸是固定的,进一步需要让输入的尺寸是固定的(输入网络的尺寸是固定的,原图如果size不合适需要进行resize等操作使之符合输入网络的尺寸)
- 但是我们希望分割的图像是任意大小的尺寸,这就导致特征图大小也不固定,就无法使用全连接层进行分类
可以使用全连接层的卷积化来解决输入尺寸不固定的问题
2.2 深度学习下的语义分割模型
2.2.1 全卷积网络
这里的问题在于:卷积神经网络逐层降采样,导致特征图的空间分辨率比原图要小很多,无法和原图对齐。
所以需要有一些上采样的办法
可以用一个卷积核模拟双线性插值的效果,此时就是一个固定的卷积核,实现了上采样的效果。
如果不模拟双线性插值,而是直接给出一个需要去学习的卷积核,让它完成上采样的任务,这就是转置卷积
结合高层和低层特征图,mmdetection里FPN特征金字塔(2016年),以及mmpose里HRNet(2019年)。套路一直是一样的。。。
2.2.2 Unet
2.2.3 上下文信息与PSPNet模型
上面Unet和FCN都是用了上下层的信息(高层语义和低层细节互补,高层+低层特征)。
另外还有使用上下文信息的
利用上下文信息来改善分割效果,也是分割网络进化的一个思路。
- 可能扩大感受野,使得在局部预测中包含上下文信息
多尺度池化,就对应不同尺度的感受野
2.2.4 空洞卷积与DeepLab算法
多尺度的空洞卷积ASPP模块就是多尺度池化+空洞卷积
2.2.5 总结
2.2.6 前言语义分割算法
Transformer系列
统一语义分割、实例分割和全景分割任务,大一统模型
以上几种比较前沿的新算法,MMSegmentation里都有实现
LabelStudio和LabelMe都集成了SAM,可以试试标注效果
参考:
- cvat VS label-studio
- Data Labeling Software: Best Tools for Data Labeling
2.3分割模型的评估方法
3. MMSegmentation
- Github链接:https://github.com/open-mmlab/mmsegmentation/blob/main/README_zh-CN.md
- 文档:https://mmsegmentation.readthedocs.io/zh_CN/latest/index.html
3.1 支持的数据集
参考:超详细!手把手带你轻松用 MMSegmentation 跑语义分割数据集
下载和将它重新组织成 MMSegmentaion 可以运行的格式的脚本,可以看看
- mmsegmentation/docs/en/user_guides/2_dataset_prepare.md,
- 或者中文文档:mmsegmentation/docs/zh_cn/dataset_prepare.md
已支持的数据集文章来源:https://www.toymoban.com/news/detail-486863.html
- Cityscapes:自动驾驶数据集,详见:图像分割cityscape数据集使用介绍,值得一读!
- PASCAL VOC:常规自然场景的语义分割
- ADE20K:有2万张图片150种目标的场景数据集,详见:ADE20K数据集
- Pascal Context: 是PASCAL VOC 2010 检测挑战的扩展,详见:语义分割的数据集
- COCO-Stuff 10k、COCO-Stuff 164k
- CHASE_DB1:视网膜血管分割数据集,详见:Chasedb1–视网膜血管分割数据集
- DRIVE:用于视网膜病变研究的数据集,详见:视网膜血管图像数据集DRIVE简介
- HRF:视网膜血管分割数据集,详见:HRF 视网膜血管分割数据集
- STARE:视网膜数据集
- Dark Zurich:自动驾驶数据集(有GPS数据),详见:Dark Zurich 语义分割数据集
- Nighttime Driving:道路场景数据集,由 35,000 张图像组成。详见:Nighttime Driving
- LoveDA:遥感语义分割(农村和城市的土地覆盖),详见:Junjue-Wang/LoveDA
快搜完了发现已经有文章整理过了。。。🥲🥲🥲文章来源地址https://www.toymoban.com/news/detail-486863.html
到了这里,关于OpenMMLab-AI实战营第二期——5-1.语义分割与MMSegmentation的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!