Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
532d6e37
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
286
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
532d6e37
编写于
5月 12, 2020
作者:
Z
Zeyu Chen
提交者:
GitHub
5月 12, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update README.md
上级
49664c7a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
33 deletion
+29
-33
contrib/HumanSeg/README.md
contrib/HumanSeg/README.md
+29
-33
未找到文件。
contrib/HumanSeg/README.md
浏览文件 @
532d6e37
# HumanSeg
# HumanSeg
人像分割模型
本教程
旨在通过paddlepaddle框架实现人像分割从训练到部署的流程
。
本教程
基于PaddleSeg核心分割网络框架,提供针对人像分割场景从预训练模型、Fine-tune、视频分割预测部署的全流程应用指南
。
HumanSeg
从复杂到简单提供三种人像分割模型:HumanSegServer、HumanSegMobile、HumanSegLite,
HumanSeg
提供三个人像分割模型系列:分别是HumanSeg-server、HumanSeg-mobile、HumanSeg-lite,适用于不同的算力场景
HumanSegServer适用于服务端,HumanSegMobile和HumanSegLite适用于移动端。
## 环境依赖
*
PaddlePaddle >= 1.7.0 或develop版本
*
Python 3.5+
*
Python == 3.5/3.6/3.7
*
PaddlePaddle >= 1.7.2
PaddlePaddle的快速安装可参考
[
飞桨快速安装
](
https://www.paddlepaddle.org.cn/install/quick
)
通过以下命令安装python包依赖,请确保在该分支上至少执行过一次以下命令
```
shell
$
pip
install
-r
requirements.txt
```
## 模型
| 模型类型 | 预训练模型 | 导出模型 | 量化模型 | 说明 |
## 预训练模型
| 模型类型 | Checkpoint | Inference Model | Quant Inference Model | 说明 |
| --- | --- | --- | --- | --- |
| HumanSegServer |
[
humanseg_server
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server.zip
)
|
[
humanseg_server_export
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server_export.zip
)
|
[
humanseg_server_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server_quant.zip
)
| 服务端GPU环境 |
| HumanSegMobile |
[
humanseg_mobile
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile.zip
)
|
[
humanseg_mobile_export
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile_export.zip
)
|
[
humanseg_mobile_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile_quant.zip
)
| 小模型, 适合轻量级计算环境 |
| HumanSegLite |
[
humanseg_lite
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite.zip
)
|
[
humanseg_lite_export
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite_export.zip
)
|
[
humanseg_lite_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite_quant.zip
)
| 小模型, 适合轻量级计算环境 |
| HumanSeg-server |
[
humanseg_server_ckpt
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server.zip
)
|
[
humanseg_server_infernce
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server_export.zip
)
|
[
humanseg_server_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server_quant.zip
)
| 服务端GPU环境 |
| HumanSeg-mobile |
[
humanseg_mobile
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile.zip
)
|
[
humanseg_mobile_infernce
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile_export.zip
)
|
[
humanseg_mobile_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_mobile_quant.zip
)
|轻量级模型, 适合移动端或CPU计算场景 |
| HumanSeg-lite |
[
humanseg_lite
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite.zip
)
|
[
humanseg_lite_infernce
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite_export.zip
)
|
[
humanseg_lite_quant
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_lite_quant.zip
)
| 轻量级模型, 适合移动端且有实时计算需求场景 |
**NOTE:**
其中Checkpoint为模型权重,用于Fine-tuning场景。
Inference Model和Quant Inference Model为预测部署模型,包含
`__model__`
计算图结构、
`__params__`
模型参数和
`model.yaml`
基础的模型配置信息。
其中Inference Model适用于服务端的CPU和GPU预测场景,Qunat Inference Model为的量化版本,适用于通过Paddle Lite进行移动端等端侧设备部署。更多Paddle Lite部署说明查看
[
Paddle Lite文档
](
https://paddle-lite.readthedocs.io/zh/latest/
)
## 指定运行设备
执行以下脚本进行HumanSeg预训练模型的下载
```
bash
export
CUDA_VISIBLE_DEVICES
=
0
python pretrained_weights/download_pretrained_weights.py
```
当CUDA_VISIBLE_DEVICES变量有效时,使用相应的显卡进行计算,无效时使用CPU进行计算
##
准备训练
数据
我们提供了一份
demo数据集,通过运行以下代码进行下载,该数据集是从supervise.ly抽取的一个小数据集
。
##
下载测试
数据
我们提供了一份
[
supervise.ly
](
https://supervise.ly/
)
发布人像分割数据集
**Supervisely Persons**
,从中随机抽取一小部分并转化成PaddleSeg可直接加载数据格式。通过运行以下代码进行快速下载
。
```
bash
python data/download_data.py
```
## 下载预训练模型
运行以下代码进行预训练模型的下载
```
bash
python pretrained_weights/download_pretrained_weights.py
```
## 视频流分割
## 视频流分割快速体验
```
bash
#
打开摄像头进行预测
#
通过电脑摄像头进行实时分割处理
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_epxort
# 对
视频进行预测
# 对
人像视频进行分割处理
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_epxort
\
----video_path
data/video_test.mp4
```
## 训练
使用下述命令
进行训练
使用下述命令
基于与训练模型进行Fine-tuning,请确保选用的模型结构
`model_type`
与模型参数
`pretrained_weights`
匹配。
```
bash
python train.py
--model_type
HumanSegMobile
\
--save_dir
output/
\
...
...
@@ -64,7 +64,6 @@ python train.py --model_type HumanSegMobile \
--batch_size
8
\
--learning_rate
0.001
\
--num_epochs
10
\
--save_interval_epochs
2
```
其中参数含义如下:
*
`--model_type`
: 模型类型,可选项为:HumanSegServer、HumanSegMobile和HumanSegLite
...
...
@@ -76,12 +75,13 @@ python train.py --model_type HumanSegMobile \
*
`--batch_size`
: 批大小
*
`--learning_rate`
: 初始学习率
*
`--num_epochs`
: 训练轮数
*
`--save_interval_epochs`
: 模型保存间隔
更多
参数请运行下述命令进行参
看:
更多
命令行帮助可运行下述命令进行查
看:
```
bash
python train.py
--help
```
**NOTE**
可通过更换
`--model_type`
变量与对应的
`--pretrained_weights`
体验不同的模型快速尝试。
## 评估
使用下述命令进行评估
...
...
@@ -89,13 +89,11 @@ python train.py --help
python val.py
--model_dir
output/best_model
\
--data_dir
data/mini_supervisely
\
--val_list
data/mini_supervisely/val.txt
\
--batch_size
2
```
其中参数含义如下:
*
`--model_dir`
: 模型路径
*
`--data_dir`
: 数据集路径
*
`--val_list`
: 验证集列表路径
*
`--batch_size`
: 批大小
## 预测
使用下述命令进行预测
...
...
@@ -144,7 +142,6 @@ python quant_online.py --model_type HumanSegMobile \
--batch_size
2
\
--learning_rate
0.001
\
--num_epochs
2
\
--save_interval_epochs
1
```
其中参数含义如下:
*
`--model_type`
: 模型类型,可选项为:HumanSegServer、HumanSegMobile和HumanSegLite
...
...
@@ -156,4 +153,3 @@ python quant_online.py --model_type HumanSegMobile \
*
`--batch_size`
: 批大小
*
`--learning_rate`
: 初始学习率
*
`--num_epochs`
: 训练轮数
*
`--save_interval_epochs`
: 模型保存间隔
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录