【DSW Gallery】基于EasyCV的STDC图像语义分割示例

简介: EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文将为您介绍如何在PAI-DSW中使用EasyCV训练轻量化语义分割模型STDC

直接使用

请打开基于EasyCV的STDC图像语义分割示例,并点击右上角 “ 在DSW中打开” 。

image.png

EasyCV语义分割-STDC

  本文将以STDC模型为例,介绍如何基于EasyCV进行语义分割模型训练和预测。

  STDC(Short-Term Dense Concatenate network)是一种轻量化的语义分割模型,通过轻量化的STDC模块和边缘学习分支,在Cityscape数据集上能够达到71.9%的mIOU,同时在NVIDIA GTX 1080Ti上实现250FPS的速度。

运行环境要求

modelscope:tf1.15torch1.11-gpu-py37-cu113-ubuntu20.04 镜像, GPU机型 P100 or V100, 内存 32G

安装依赖包

1、安装mmcv-full

# 根据cuda和torch版本
! pip install -U openmim && mim install mmcv-full==1.6.1

2、安装EasyCV算法包

可以通过如下命令安装,也可以拉取最新EasyCV代码进行安装

! echo y | pip uninstall pai-easycv && pip install http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/pkgs/whl/2023_02/pai_easycv-0.9.0-py3-none-any.whl
! echo y | pip uninstall mmdet

3、简单验证

from easycv.apis import *

图像语义分割模型训练&预测

下面示例将介绍如何基于EasyCV STDC算法训练语义分割模型,并进行预测。

数据准备

可以使用我们提供的示例数据快速走通流程,也可以使用自定义的数据集进行模型训练

! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/data/small_cityscape_raw/small_cityscapes_raw.tar.gz && tar -zxf small_cityscapes_raw.tar.gz

该数据是提取部分cityscape数据,并将标签文件转换成了easycv所需的分割格式(标签文件是单通道的png图片,图片上的像素值即代表了label id)

文件目录如下

small_cityscapes_raw
├── imgs
│   ├── train
│   │   ├── aachen_000000_000019.png
│   │   ├── aachen_000001_000019.png
            ...
│   │   └── aachen_000173_000019.png
│   └── val
│       ├── bremen_000000_000019.png
│       ├── bremen_000001_000019.png
            ...
│       └── bremen_000315_000019.png
└── labels
    ├── train
    │   ├── aachen_000000_000019.png
    │   ├── aachen_000001_000019.png
            ...
    │   └── aachen_000173_000019.png
    └── val
        ├── bremen_000000_000019.png
        ├── bremen_000001_000019.png
            ...

训练模型

下载示例配置文件, 进行STDC模型训练

! rm -rf stdc1_raw_8xb6_e1290.py
! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/configs/segmentation/stdc/stdc1_raw_8xb6_e1290.py

为了适配小数据,我们对配置文件stdc1_raw_8xb6_e1290.py做如下字段的修改,减少训练epoch数目

如果使用自定义的数据集,则还需要修改config中数据集路径相关配置、以及类别数目和类别名配置

total_epochs = 10
!python -m torch.distributed.launch --nproc_per_node=1 \
/opt/conda/lib/python3.7/site-packages/easycv/tools/train.py \
stdc1_raw_8xb6_e1290.py --work_dir work_dir/example_seg --launcher pytorch --fp16

预测

查看训练产生的模型文件,其中_export.pt结尾的模型文件是最终导出用来做推理的模型

! ls work_dir/example_seg/*pt*

导入模型权重,并预测测试图片的检测结果,这里由于在小数据集上无法充分训练得到比较好的结果,这里提供在cityscape全量数据上训练的模型进行预测

! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/segmentation/stdc/stdc1_cityscapes/epoch_1250_export.pth
from easycv.predictors.segmentation import SegmentationPredictor
output_ckpt = 'epoch_1250_export.pth'
detector = SegmentationPredictor(output_ckpt)
output = detector(['small_cityscapes_raw/imgs/val/bremen_000000_000019.png'])
print(output)
detector.show_result('small_cityscapes_raw/imgs/val/bremen_000000_000019.png', output[0]['seg_pred'], out_file='out.jpg')
from PIL import Image
display(Image.open('out.jpg'))

将导出的模型文件上传至OSS,使用PAI-EAS中的easycv predictor即可部署在线服务

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
定位技术 Python
【python】pygame实现植物大战僵尸小游戏(附源码 有注释)
【python】pygame实现植物大战僵尸小游戏(附源码 有注释)
3223 1
|
机器学习/深度学习 网络架构 计算机视觉
UNet详细解读(一)论文技术要点归纳
UNet详细解读(一)论文技术要点归纳
765 0
|
存储 弹性计算 监控
深度解读:公有云与私有云有哪些区别?
如今云计算逐渐兴起,越来越多传统企业及用户对云计算基础产品【云服务器、云主机】有需求,准备把数据往云上迁移,其中云主机私有云、公有云和混合云,不知道如何选择云主机类型,下面小编为大家科普什么是公有云、什么是私有云,希望对你有帮助。
5454 0
深度解读:公有云与私有云有哪些区别?
|
机器学习/深度学习 人工智能 编解码
【AI系统】轻量级CNN模型新进展
本文继续探讨CNN模型的小型化,涵盖ESPNet、FBNet、EfficientNet和GhostNet系列。ESPNet系列通过高效空间金字塔卷积减少运算量;FBNet系列采用基于NAS的轻量化网络设计;EfficientNet系列通过复合缩放方法平衡网络深度、宽度和分辨率;GhostNet系列则通过Ghost模块生成更多特征图,减少计算成本。各系列均旨在提升模型效率和性能,适用于移动和边缘设备。
1330 6
|
弹性计算 数据可视化 应用服务中间件
2024年阿里云服务器2核2G配置有什么优惠?可选实例规格及优惠价格参考
阿里云服务器2核2G配置多少钱?可选实例规格有哪些?2024年的优惠价格是多少?根据阿里云2024年的收费标准及活动价格来看,2核2G配置轻量应用服务器的最优惠的价格是61元1年,云服务器2核2G配置的价格为99元1年。阿里云服务器2核2G配置可选的规格有4个,不同实例的价格有所不同,下面是2核2G配置可选实例规格详解及优惠价格表。
2024年阿里云服务器2核2G配置有什么优惠?可选实例规格及优惠价格参考
|
机器学习/深度学习 编解码 自然语言处理
一文综述 | 万字文总结,近几年都有哪些语义分割模型用了Transformer方法呢?
一文综述 | 万字文总结,近几年都有哪些语义分割模型用了Transformer方法呢?
1743 0
|
机器学习/深度学习 监控 安全
基于Java的智能视频监控系统设计与实现
基于Java的智能视频监控系统设计与实现