Skip to main content

A Segment toolkit

Project description

Torch版的语义分割全家桶(大量模型一键训练与导出)

简介

yiku-seg 是一个由仪酷开发的语义分割工具,其中集成了大量的模型,同时使用主干网络和分割头分离的写法,使得在保证了傻瓜化训练的基础上,保留了模型配置的灵活性,其中包含了Translab等特色模型。在本文中将介绍如何使用yiku-seg训练一个模型

pip install yiku_seg


Top News

更新日志:增加数据增强开关

2024-06 : 数据集支持多种文件格式

下载源优化,这下国内也可以流程用了

2024-03 : 增加数据增强开关 增加一堆模型

OOOO天下第一

增加augmentation字段组 方便控制数据增强功能

新增了UNet+百度HGNetv2的杂交模型,可以在配置文件base字段里增加 arch=unet启用

2023-11 : 增加Unet模型

Unet伫立在大地之上

新增了UNet+百度HGNetv2的杂交模型,可以在配置文件base字段里增加 arch=unet启用

2023-11 : 使用命令行工具训练

”不行啊,每次都要改代码,感觉不如OO啊“

您还在为改python文件烦恼吗,您还在为乱哄哄的文件夹烦恼吗,赶快使用 pip install git+https://gitee.com/yiku-ai/hgnetv2-deeplabv3 安装吧,装了你不吃亏,装了你不上当。

更新了七彩VIP皮肤,不过不用担心,我已经给你充值好了,可以直接使用

2023-09 : 新增TransLab分割头,可以通过设置pp参数切换

TransLab是一款由仪酷智能科技有限公司开发的分割头,在这款分割头里面,我们将DeepLabv3基于传统卷积的空洞卷积 换成了基于Transformer的AIFI模块

玩Transformer玩的

2023-08:在原作者基础上添加多个新款Backbone(HGNetv2,yolov8系列)

如果在 新模型(HGNetv2 YOLOv8 MobileNetv3)有疑问或者建议 欢迎issue和PR

仪酷LabView工业AI推理插件工具包已经支持此项目包括最新主干在内的模型

如果需要原版代码 请访问https://github.com/bubbliiiing/deeplabv3-plus-pytorch

2022-04:支持多GPU训练。

2022-03:进行大幅度更新、支持step、cos学习率下降法、支持adam、sgd优化器选择、支持学习率根据batch_size自适应调整。
BiliBili视频中的原仓库地址为:https://github.com/bubbliiiing/deeplabv3-plus-pytorch/tree/bilibili

2020-08:创建仓库、支持多backbone、支持数据miou评估、标注数据处理、大量注释等。

模型文档

| unet系列 | lab系列 | pspnet系列 | segFormer系列

所需环境

参看requirements.txt

建议先安装pytorch

训练步骤

a、训练voc数据集

1、pip install yiku_seg 安装

2、VOC拓展数据集的百度网盘如下: 链接: https://pan.baidu.com/s/1vkk3lMheUm6IjTXznlg7Ng 提取码: 44mk

3、下载config.ini 根据实际情况修改一般的,我们只需要去修改config.ini里面base字段的那些参数

[base]
frozen_batch-size=4
unfrozen_batch-size=2
frozen_epoch=100
unfrozen_epoch=50
fp16=true
dataset_path=VOCdevkit
save_path=logs
num_classes=21
backbone=hgnetv2l
image_size=512
header = transformer

其中batchsize和你的显存大小有关path是路径相关的。num_classes一般是多少类 header和backbone与模型的结构有关,建议打开config.ini里面有对参数的详细解释

4、命令行输入siren.train -c config文件路径

5、实际你也可以python -m yiku.train -c config.ini

b、训练自己的数据集

1、本文使用VOC格式进行训练。
2、训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的SegmentationClass中。
3、训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
4、在训练前利用voc_annotation.py文件生成对应的txt。
5、在config.ini下面,选择自己要使用的主干模型和下采样因子,支持的模型在预测步骤中有描述。下采样因子可以在8和16中选择。需要注意的是,预训练模型需要和主干模型相对应。
6、注意修改train.py的num_classes为分类个数+1。
7、如果您需要控制数据增强功能 请在config.ini里面添加如下字段组

[augmentation]
enable=true #总开关
jitter=0.3 # 尺寸抖动比率
flip=0.5 # 翻转图片比率
blur=0.25 # 模糊比率
hsv_jitter_enable=False #HSV抖动

8、运行siren.train -c config文件路径即可开始训练。

导出步骤

1、命令行输入siren.export -c config文件路径 -f onnx。onnx位于配置文件的训练结果文件夹。 -f 参数支持 onnx openvino 和paddle 其中 还有--half 只要这个flag存在 openvino就是导出FP16精度的模型, 这在较新XeGPU上相比FP32有两倍的提升。所以参数 可以输入siren.export -h

config,ini里面的base字段 加上single_ch=true可以启用单通道输入,虽然对推理性能没卵用,但有些人非得要这个模式

2、运行python -m yiku.export -c config文件路径 -f onnx也可以导出

预测步骤

a、使用预训练权重

1、根据下载的模型 修改config.ini,直接输入siren.pred -c config.ini -i http://just.样例.link/怒O大伟出奇迹.jpg -m 你模型的路径.pth

-i 参数可以是图片 可以是uri 可以是相机索引 可以是视频 可以是文件夹

--show 这个flag设置后就会将结果弹窗弹出。

-h 查看所有参数的帮助

b、使用自己训练的权重

1、按照训练步骤训练。
2、使用训练的config即可,无需手动指定权重。

可完成预测。
4、在predict.py里面进行设置可以进行fps测试、整个文件夹的测试和video视频检测。

Reference

https://github.com/ggyyzm/pytorch_segmentation
https://github.com/bonlime/keras-deeplab-v3-plus
https://github.com/bubbliiiing/deeplabv3-plus-pytorch
https://github.com/ultralytics/ultralytics

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yiku_seg-0.1.5a4.tar.gz (12.1 MB view hashes)

Uploaded Source

Built Distribution

yiku_seg-0.1.5a4-py3-none-any.whl (12.2 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page