Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
b96c8474
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
285
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看板
提交
b96c8474
编写于
5月 12, 2020
作者:
C
chenguowei01
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
https://github.com/PaddlePaddle/PaddleSeg
into humanseg
上级
4dc59f4c
5488f7d4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
37 addition
and
44 deletion
+37
-44
README.md
README.md
+17
-22
contrib/HumanSeg/README.md
contrib/HumanSeg/README.md
+15
-14
contrib/HumanSeg/requirements.txt
contrib/HumanSeg/requirements.txt
+1
-3
contrib/README.md
contrib/README.md
+4
-5
未找到文件。
README.md
浏览文件 @
b96c8474
# PaddleSeg
图像分割库
# PaddleSeg
[
![Build Status
](
https://travis-ci.org/PaddlePaddle/PaddleSeg.svg?branch=master
)
](https://travis-ci.org/PaddlePaddle/PaddleSeg)
[
![License
](
https://img.shields.io/badge/license-Apache%202-blue.svg
)
](LICENSE)
[
![Version
](
https://img.shields.io/github/release/PaddlePaddle/PaddleSeg.svg
)
](https://github.com/PaddlePaddle/PaddleSeg/releases)
![
python version
](
https://img.shields.io/badge/python-3.6+-orange.svg
)
![
support os
](
https://img.shields.io/badge/os-linux%2C%20win%2C%20mac-yellow.svg
)
## 简介
PaddleSeg是基于
[
PaddlePaddle
](
https://www.paddlepaddle.org.cn
)
开发的端到端图像分割开发套件,覆盖了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割网络。通过模块化的设计,以配置化方式驱动模型组合,帮助用户更便捷地完成从训练到部署的全流程图像分割应用。
</br>
PaddleSeg是基于
[
PaddlePaddle
](
https://www.paddlepaddle.org.cn
)
开发的端到端图像分割开发套件,覆盖了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割网络。通过模块化的设计,以配置化方式驱动模型组合,帮助开发者更便捷地完成从训练到部署的全流程图像分割应用。
-
[
特点
](
#特点
)
-
[
安装
](
#安装
)
...
...
@@ -23,8 +23,6 @@ PaddleSeg是基于[PaddlePaddle](https://www.paddlepaddle.org.cn)开发的端到
-
[
更新日志
](
#更新日志
)
-
[
贡献代码
](
#贡献代码
)
</br>
## 特点
-
**丰富的数据增强**
...
...
@@ -45,7 +43,7 @@ PaddleSeg支持多进程I/O、多卡并行、跨卡Batch Norm同步等训练加
-
**产业实践案例**
PaddleSeg提供
大量真实产业实践案例,如人像分割、表计检测、遥感分割、人体解析,工业质检等产业实践案例,助理开发者更快落地深度学习
图像分割技术。
PaddleSeg提供
丰富地产业实践案例,如
[
人像分割
](
./contrib/HumanSeg
)
、
[
工业表计检测
](
./contrib/MechanicalIndustryMeter
)
、
[
遥感分割
](
./contrib/RemoteSensing
)
、
[
人体解析
](
contrib/ACE2P
)
,
[
工业质检
](
https://aistudio.baidu.com/aistudio/projectdetail/184392
)
等产业实践案例,助力开发者更便捷地落地
图像分割技术。
## 安装
...
...
@@ -53,7 +51,7 @@ PaddleSeg提供大量真实产业实践案例,如人像分割、表计检测
版本要求
*
PaddlePaddle >= 1.7.0
*
Python
2.7 or
3.5+
*
Python
>=
3.5+
由于图像分割模型计算开销大,推荐在GPU版本的PaddlePaddle下使用PaddleSeg.
```
...
...
@@ -74,8 +72,6 @@ cd PaddleSeg
pip install -r requirements.txt
```
</br>
## 使用教程
我们提供了一系列的使用教程,来说明如何使用PaddleSeg完成语义分割模型的训练、评估、部署。
...
...
@@ -128,8 +124,6 @@ pip install -r requirements.txt
|人像分割|
[
点击体验
](
https://aistudio.baidu.com/aistudio/projectdetail/188833
)
|
|PaddleSeg特色垂类模型|
[
点击体验
](
https://aistudio.baidu.com/aistudio/projectdetail/226710
)
|
</br>
## FAQ
#### Q: 安装requirements.txt指定的依赖包时,部分包提示找不到?
...
...
@@ -152,26 +146,27 @@ python pdseg/train.py --cfg xxx.yaml TRAIN.RESUME_MODEL_DIR /PATH/TO/MODEL_CKPT/
A: 降低Batch size,使用Group Norm策略;请注意训练过程中当
`DEFAULT_NORM_TYPE`
选择
`bn`
时,为了Batch Norm计算稳定性,batch size需要满足>=2
#### Q: 出现错误 ModuleNotFoundError: No module named 'paddle.fluid.contrib.mixed_precision'
A: 请将PaddlePaddle升级至1.5.2版本或以上。
</br>
## 交流与反馈
*
欢迎您通过
[
Github Issues
](
https://github.com/PaddlePaddle/PaddleSeg/issues
)
来提交问题、报告与建议
*
微信公众号:飞桨PaddlePaddle
*
QQ群: 7
96771754
*
QQ群: 7
03252161
<p
align=
"center"
><img
width=
"200"
height=
"200"
src=
"https://user-images.githubusercontent.com/45189361/64117959-1969de80-cdc9-11e9-84f7-e1c2849a004c.jpeg"
/>
     
<img
width=
"200"
height=
"200"
margin=
"500"
src=
"./docs/imgs/qq_group2.png"
/></p>
<p
align=
"center"
>
   
微信公众号
                
官方技术交流QQ群
</p>
## 更新日志
*
2020.05.12
**`v0.5.0`**
*
全面升级
[
HumanSeg人像分割模型
](
./contrib/HumanSeg
)
,新增超轻量级人像分割模型HumanSeg-lite支持移动端实时人像分割处理,并提供基于光流的视频分割后处理提升分割流畅性。
*
新增
[
气象遥感分割方案
](
./contrib/RemoteSensing
)
,支持积雪分割、云分割等气象遥感场景。
*
新增
[
Lovasz Loss
](
docs/lovasz_loss.md
)
*
2020.02.25
**`v0.4.0`**
*
新增适用于实时场景且不需要预训练模型的分割网络Fast-SCNN,提供基于Cityscapes的
[
预训练模型
](
./docs/model_zoo.md
)
1个
。
*
新增LaneNet车道线检测网络,提供
[
预训练模型
](
https://github.com/PaddlePaddle/PaddleSeg/tree/release/v0.4.0/contrib/LaneNet#%E4%B8%83-%E5%8F%AF%E8%A7%86%E5%8C%96
)
一个
。
*
新增适用于实时场景且不需要预训练模型的分割网络Fast-SCNN,提供基于Cityscapes的
[
预训练模型
](
./docs/model_zoo.md
)
1个
*
新增LaneNet车道线检测网络,提供
[
预训练模型
](
https://github.com/PaddlePaddle/PaddleSeg/tree/release/v0.4.0/contrib/LaneNet#%E4%B8%83-%E5%8F%AF%E8%A7%86%E5%8C%96
)
一个
*
新增基于PaddleSlim的分割库压缩策略(
[
量化
](
./slim/quantization/README.md
)
,
[
蒸馏
](
./slim/distillation/README.md
)
,
[
剪枝
](
./slim/prune/README.md
)
,
[
搜索
](
./slim/nas/README.md
)
)
...
...
@@ -207,4 +202,4 @@ A: 请将PaddlePaddle升级至1.5.2版本或以上。
## 贡献代码
我们非常欢迎您为PaddleSeg贡献代码或者提供使用建议。如果您可以修复某个issue或者增加一个新功能,欢迎给我们提交
pull r
equests.
我们非常欢迎您为PaddleSeg贡献代码或者提供使用建议。如果您可以修复某个issue或者增加一个新功能,欢迎给我们提交
Pull R
equests.
contrib/HumanSeg/README.md
浏览文件 @
b96c8474
# HumanSeg人像分割模型
本教程基于PaddleSeg核心分割网络,提供针对人像分割场景从预训练模型、Fine-tune、视频分割预测部署的全流程应用指南。
本教程基于PaddleSeg核心分割网络,提供针对人像分割场景从预训练模型、Fine-tune、视频分割预测部署的全流程应用指南。
最新发布HumanSeg-lite模型超轻量级人像分割模型,支持移动端场景的实时分割。
## 环境依赖
...
...
@@ -14,21 +14,20 @@ PaddlePaddle的安装可参考[飞桨快速安装](https://www.paddlepaddle.org.
$
pip
install
-r
requirements.txt
```
## 预训练模型
HumanSeg开放了在大规模人像数据上训练的三个预训练模型,满足多种使用场景的需求
| 模型类型 | Checkpoint | Inference Model | Quant Inference Model | 备注 |
| --- | --- | --- | --- | --- |
| 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
)
| -- | 高精度模型,适用于服务端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
)
| 超轻量级模型, 适用于手机自拍人像,且有移动端实时分割场景 |
| HumanSeg-server |
[
humanseg_server_ckpt
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server.zip
)
|
[
humanseg_server_
export
](
https://paddleseg.bj.bcebos.com/humanseg/models/humanseg_server_export.zip
)
| -- | 高精度模型,适用于服务端GPU且背景复杂的人像场景 |
| HumanSeg-mobile |
[
humanseg_mobile
_ckpt
](
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
)
| 轻量级模型, 适用于移动端或服务端CPU的前置摄像头场景 |
| HumanSeg-lite |
[
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
)
| 超轻量级模型, 适用于手机自拍人像,且有移动端实时分割场景 |
**NOTE:**
其中Checkpoint为模型权重,用于Fine-tuning场景。
Inference Model和Quant Inference Model为预测部署模型,包含
`__model__`
计算图结构、
`__params__`
模型参数和
`model.yaml`
基础的模型配置信息。
*
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/
)
*
其中Inference Model适用于服务端的CPU和GPU预测部署,Qunat Inference Model为
量化版本,适用于通过Paddle Lite进行移动端等端侧设备部署。更多Paddle Lite部署说明查看
[
Paddle Lite文档
](
https://paddle-lite.readthedocs.io/zh/latest/
)
执行以下脚本进行HumanSeg预训练模型的下载
```
bash
...
...
@@ -42,16 +41,18 @@ python pretrained_weights/download_pretrained_weights.py
python data/download_data.py
```
##
视频流分割快速体验
##
快速体验视频流人像分割
```
bash
# 通过电脑摄像头进行实时分割处理
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_e
px
ort
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_e
xp
ort
# 对人像视频进行分割处理
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_epxort
\
--video_path
data/video_test.mp4
python video_infer.py
--model_dir
pretrained_weights/humanseg_lite_export
--video_path
data/video_test.mp4
```
**NOTE**
:
视频分割处理时间需要几分钟,请耐心等待。
## 训练
使用下述命令基于与训练模型进行Fine-tuning,请确保选用的模型结构
`model_type`
与模型参数
`pretrained_weights`
匹配。
...
...
@@ -61,7 +62,7 @@ python train.py --model_type HumanSegMobile \
--data_dir
data/mini_supervisely
\
--train_list
data/mini_supervisely/train.txt
\
--val_list
data/mini_supervisely/val.txt
\
--pretrained_weights
pretrained_weights/humanseg_
M
obile
\
--pretrained_weights
pretrained_weights/humanseg_
m
obile
\
--batch_size
8
\
--learning_rate
0.001
\
--num_epochs
10
...
...
@@ -89,7 +90,7 @@ python train.py --help
```
bash
python val.py
--model_dir
output/best_model
\
--data_dir
data/mini_supervisely
\
--val_list
data/mini_supervisely/val.txt
\
--val_list
data/mini_supervisely/val.txt
```
其中参数含义如下:
*
`--model_dir`
: 模型路径
...
...
@@ -142,7 +143,7 @@ python quant_online.py --model_type HumanSegMobile \
--pretrained_weights
output/best_model
\
--batch_size
2
\
--learning_rate
0.001
\
--num_epochs
2
\
--num_epochs
2
```
其中参数含义如下:
*
`--model_type`
: 模型类型,可选项为:HumanSegServer、HumanSegMobile和HumanSegLite
...
...
contrib/HumanSeg/requirements.txt
浏览文件 @
b96c8474
pyyaml >= 5.1
visualdl == 2.0.0-alpha.1
Pillow
tqdm
paddleslim
contrib/README.md
浏览文件 @
b96c8474
# PaddleSeg 产业实践
分割模型
# PaddleSeg 产业实践
提供基于PaddlSeg最新的分割特色模型:
...
...
@@ -8,7 +8,7 @@
-
[
工业表盘分割
](
#工业表盘分割
)
-
[
AIStudio在线教程
](
#AIStudio在线教程
)
## 人像分割HumanSeg
## 人像分割
HumanSeg
HumanSeg系列全新升级,提供三个适用于不同场景,包含适用于移动端实时分割场景的模型
`HumanSeg-lite`
,提供了包含光流的后处理的优化,使人像分割在视频场景中更加顺畅,更多详情请参考
[
HumanSeg
](
./HumanSeg
)
...
...
@@ -18,7 +18,7 @@ HumanSeg系列全新升级,提供三个适用于不同场景,包含适用于
人体解析(Human Parsing)是细粒度的语义分割任务,旨在识别像素级别的人类图像的组成部分(例如,身体部位和服装)。ACE2P通过融合底层特征、全局上下文信息和边缘细节,端到端训练学习人体解析任务。以ACE2P单人人体解析网络为基础的解决方案在CVPR2019第三届LIP挑战赛中赢得了全部三个人体解析任务的第一名
## ACE2P模型框架图
##
##
ACE2P模型框架图
![](
./ACE2P/imgs/net.jpg
)
PaddleSeg提供了ACE2P获得比赛冠军的预训练模型,更多详情请点击
[
ACE2P
](
./ACE2P
)
...
...
@@ -37,7 +37,7 @@ PaddleSeg提供了基于LaneNet的车道线分割模型,更多详情请点击[
### 1. 模型结构
un
et
U-N
et
### 2. 数据准备
...
...
@@ -47,7 +47,6 @@ unet
python ./contrib/MechanicalIndustryMeter/download_mini_mechanical_industry_meter.py
```
### 3. 下载预训练模型
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录