Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
e207d1ad
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看板
未验证
提交
e207d1ad
编写于
8月 17, 2020
作者:
W
wuzewu
提交者:
GitHub
8月 17, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Create finetune_ocrnet.md
上级
1e80983b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
145 addition
and
0 deletion
+145
-0
tutorial/finetune_ocrnet.md
tutorial/finetune_ocrnet.md
+145
-0
未找到文件。
tutorial/finetune_ocrnet.md
0 → 100644
浏览文件 @
e207d1ad
# OCRNet模型使用教程
本教程旨在介绍如何通过使用PaddleSeg提供的
***`OCRNet`**
*
预训练模型在自定义数据集上进行训练、评估和可视化。
*
在阅读本教程前,请确保您已经了解过PaddleSeg的
[
快速入门
](
../README.md#快速入门
)
和
[
基础功能
](
../README.md#基础功能
)
等章节,以便对PaddleSeg有一定的了解。
*
本教程的所有命令都基于PaddleSeg主目录进行执行。
*
目前OCRNet只支持HRNet作为backbone
## 一. 准备待训练数据
![](
./imgs/optic.png
)
我们提前准备好了一份眼底医疗分割数据集,包含267张训练图片、76张验证图片、38张测试图片。通过以下命令进行下载:
```
shell
python dataset/download_optic.py
```
## 二. 下载预训练模型
接着下载对应的预训练模型
```
shell
python pretrained_model/download_model.py ocrnet_w18_bn_cityscapes
```
关于已有的OCRNet预训练模型的列表,请参见
[
模型组合
](
#模型组合
)
。如果需要使用其他预训练模型,下载该模型并将配置中的BACKBONE、NORM_TYPE等进行替换即可。
## 三. 准备配置
接着我们需要确定相关配置,从本教程的角度,配置分为三部分:
*
数据集
*
训练集主目录
*
训练集文件列表
*
测试集文件列表
*
评估集文件列表
*
预训练模型
*
预训练模型名称
*
预训练模型各阶段通道数设置
*
预训练模型的Normalization类型
*
预训练模型路径
*
其他
*
学习率
*
Batch大小
*
...
在三者中,预训练模型的配置尤为重要,如果模型配置错误,会导致预训练的参数没有加载,进而影响收敛速度。预训练模型相关的配置如第二步所展示。
数据集的配置和数据路径有关,在本教程中,数据存放在
`dataset/optic_disc_seg`
中
其他配置则根据数据集和机器环境的情况进行调节,最终我们保存一个如下内容的yaml配置文件,存放路径为
**configs/ocrnet_optic.yaml**
```
yaml
# 数据集配置
DATASET
:
DATA_DIR
:
"
./dataset/optic_disc_seg/"
NUM_CLASSES
:
2
TEST_FILE_LIST
:
"
./dataset/optic_disc_seg/test_list.txt"
TRAIN_FILE_LIST
:
"
./dataset/optic_disc_seg/train_list.txt"
VAL_FILE_LIST
:
"
./dataset/optic_disc_seg/val_list.txt"
VIS_FILE_LIST
:
"
./dataset/optic_disc_seg/test_list.txt"
# 预训练模型配置
MODEL
:
MODEL_NAME
:
"
ocrnet"
DEFAULT_NORM_TYPE
:
"
bn"
# 此处设置backbone的配置
HRNET
:
STAGE2
:
NUM_CHANNELS
:
[
18
,
36
]
STAGE3
:
NUM_CHANNELS
:
[
18
,
36
,
72
]
STAGE4
:
NUM_CHANNELS
:
[
18
,
36
,
72
,
144
]
# 此处设置OCR HEAD
# 其他配置
TRAIN_CROP_SIZE
:
(512, 512)
EVAL_CROP_SIZE
:
(512, 512)
AUG
:
AUG_METHOD
:
"
unpadding"
FIX_RESIZE_SIZE
:
(512, 512)
BATCH_SIZE
:
4
TRAIN
:
PRETRAINED_MODEL_DIR
:
"
./pretrained_model/ocrnet_w18_bn_cityscapes/"
MODEL_SAVE_DIR
:
"
./saved_model/ocrnet_optic/"
SNAPSHOT_EPOCH
:
5
TEST
:
TEST_MODEL
:
"
./saved_model/ocrnet_optic/final"
SOLVER
:
NUM_EPOCHS
:
10
LR
:
0.001
LR_POLICY
:
"
poly"
OPTIMIZER
:
"
adam"
```
## 四. 配置/数据校验
在开始训练和评估之前,我们还需要对配置和数据进行一次校验,确保数据和配置是正确的。使用下述命令启动校验流程
```
shell
python pdseg/check.py
--cfg
./configs/ocrnet_optic.yaml
```
## 五. 开始训练
校验通过后,使用下述命令启动训练
```
shell
# 指定GPU卡号(以0号卡为例)
export
CUDA_VISIBLE_DEVICES
=
0
# 训练
python pdseg/train.py
--use_gpu
--cfg
./configs/ocrnet_optic.yaml
```
## 六. 进行评估
模型训练完成,使用下述命令启动评估
```
shell
python pdseg/eval.py
--use_gpu
--cfg
./configs/ocrnet_optic.yaml
```
## 七. 进行可视化
使用下述命令启动预测和可视化
```
shell
python pdseg/vis.py
--use_gpu
--cfg
./configs/ocrnet_optic.yaml
```
预测结果将保存在visual目录下,以下展示其中1张图片的预测效果:
![](
imgs/optic_hrnet.png
)
## 模型组合
|预训练模型名称|Backbone|数据集|配置|
|-|-|-|-|
|ocrnet_w18_bn_cityscapes|OCRNet| Cityscapes | MODEL.MODEL_NAME: ocrnet
<br>
MODEL.HRNET.STAGE2.NUM_CHANNELS: [18, 36]
<br>
MODEL.HRNET.STAGE3.NUM_CHANNELS: [18, 36, 72]
<br>
MODEL.HRNET.STAGE4.NUM_CHANNELS: [18, 36, 72, 144]
<br>
MODEL.DEFAULT_NORM_TYPE: bn
<br>
MODEL.OCR.OCR_MID_CHANNELS: 512
<br>
MODEL.OCR.OCR_KEY_CHANNELS: 256|
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录