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

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 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-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
28天前
|
机器学习/深度学习 JSON 数据可视化
YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程
本文介绍了如何将个人数据集转换为YOLO11-pose所需的数据格式,并详细讲解了手部关键点检测的训练过程。内容涵盖数据集标注、格式转换、配置文件修改及训练参数设置,最终展示了训练结果和预测效果。适用于需要进行关键点检测的研究人员和开发者。
151 0
|
Ubuntu 机器人 定位技术
ros_gazebo/turtlebot3 室内仿真导航,提取camera/image和pose位姿真值,并将topic 时间同步对齐,最后制作成kitti 格式的数据集。
ros_gazebo/turtlebot3 室内仿真导航,提取camera/image和pose位姿真值,并将topic 时间同步对齐,最后制作成kitti 格式的数据集。
468 0
|
API 计算机视觉 索引
【COCO数据集】COCO API 解析图像数据和目标标签,vision-transformer DETR的相关transforms操作实现
【COCO数据集】COCO API 解析图像数据和目标标签,vision-transformer DETR的相关transforms操作实现
436 0
|
机器学习/深度学习 PyTorch 算法框架/工具
使用PyTorch构建卷积GAN源码(详细步骤讲解+注释版) 02人脸图片生成下
生成器的结构应与鉴别器相逆,因此生成器不再使用卷积操作,而是使用卷积的逆向操作,我们称之为转置卷积(transposed convolution)。
|
机器学习/深度学习 PyTorch 算法框架/工具
使用PyTorch构建卷积GAN源码(详细步骤讲解+注释版) 02人脸图片生成 上
使用PyTorch构建卷积GAN源码(详细步骤讲解+注释版) 02人脸图片生成 上
|
机器学习/深度学习 并行计算 数据可视化
【DSW Gallery】EasyCV-基于关键点的视频分类示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以基于关键点的视频分类为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】EasyCV-基于关键点的视频分类示例
|
缓存 自然语言处理 Shell
【DSW Gallery】基于CK-BERT的中文序列标注
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文以序列标注(命名实体识别)为例,为您介绍如何在PAI-DSW中使用EasyNLP。
【DSW Gallery】基于CK-BERT的中文序列标注
|
算法 PyTorch 算法框架/工具
【DSW Gallery】基于EasyCV的视频分类示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以视频分类为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于EasyCV的视频分类示例
|
算法 PyTorch 算法框架/工具
【DSW Gallery】基于YOLOX模型和iTAG标注数据的图像检测示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文将为您介绍如何在PAI-DSW中使用EasyCV和PAI-iTAG标注的检测数据训练YOLOX模型。
【DSW Gallery】基于YOLOX模型和iTAG标注数据的图像检测示例
|
并行计算 算法 自动驾驶
【DSW Gallery】基于EasyCV的BEVFormer 3D检测示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文将以BEVFormer 3D检测为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于EasyCV的BEVFormer 3D检测示例

热门文章

最新文章