Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
ab8e8ce5
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1529
Star
32963
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ab8e8ce5
编写于
5月 19, 2022
作者:
文幕地方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
replace finetune with fine-tune
上级
815be0b9
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
29 addition
and
25 deletion
+29
-25
applications/车牌识别.md
applications/车牌识别.md
+29
-25
未找到文件。
applications/车牌识别.md
浏览文件 @
ab8e8ce5
...
...
@@ -283,7 +283,7 @@ python tools/eval.py -c configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o \
2.
Global.eval_batch_step: 模型多少step评估一次,这里设为从第0个step开始没隔772个step评估一次,772为一个epoch总的step数。
2.
优化器相关:
1.
Optimizer.lr.name: 学习率衰减器设为常量 Const
2.
Optimizer.lr.learning_rate: 做
finetune
实验,学习率需要设置的比较小,此处学习率设为配置文件中的0.05倍
2.
Optimizer.lr.learning_rate: 做
fine-tune
实验,学习率需要设置的比较小,此处学习率设为配置文件中的0.05倍
3.
Optimizer.lr.warmup_epoch: warmup_epoch设为0
3.
数据集相关:
1.
Train.dataset.data_dir:指向训练集图片存放目录
...
...
@@ -363,6 +363,8 @@ python3.7 deploy/slim/quantization/quant.py -c configs/det/ch_PP-OCRv3/ch_PP-OCR
可以看到通过量化训练在精度几乎无损的情况下,降低模型体积60%并且推理速度提升15%。
速度测试基于
[
PaddleOCR lite教程
](
../deploy/lite/readme_ch.md
)
完成。
#### 4.1.4 模型导出
使用如下命令可以将训练好的模型进行导出
...
...
@@ -472,7 +474,7 @@ W0501 08:51:57.132315 11326 device_context.cc:465] device: 0, cuDNN Version: 7.6
从infer结果可以看到,车牌中的文字大部分都识别正确,只是多识别出了一个
`·`
。针对这种情况,有如下两种方案:
1.
直接通过后处理去掉多识别的
`·`
。
2.
进行
fine
tune。
2.
进行
fine-
tune。
#### 4.2.2 预训练模型直接预测+改动后处理
...
...
@@ -501,7 +503,7 @@ text = text.replace('·','')
2.
Global.eval_batch_step: 模型多少step评估一次,这里设为从第0个step开始没隔45个step评估一次,45为一个epoch总的step数。
2.
优化器相关
1.
Optimizer.lr.name: 学习率衰减器设为常量 Const
2.
Optimizer.lr.learning_rate: 做
finetune
实验,学习率需要设置的比较小,此处学习率设为配置文件中的0.05倍
2.
Optimizer.lr.learning_rate: 做
fine-tune
实验,学习率需要设置的比较小,此处学习率设为配置文件中的0.05倍
3.
Optimizer.lr.warmup_epoch: warmup_epoch设为0
3.
数据集相关
1.
Train.dataset.data_dir:指向训练集图片存放目录
...
...
@@ -509,7 +511,7 @@ text = text.replace('·','')
3.
Eval.dataset.data_dir:指向测试集图片存放目录
4.
Eval.dataset.label_file_list:指向测试集标注文件
使用如下命令启动
fine
tune
使用如下命令启动
fine-
tune
```
bash
python tools/train.py
-c
configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml
-o
\
...
...
@@ -577,6 +579,8 @@ python3.7 deploy/slim/quantization/quant.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_
可以看到量化后能降低模型体积53%并且推理速度提升57%,但是由于识别数据过少,量化带来了1%的精度下降。
速度测试基于
[
PaddleOCR lite教程
](
../deploy/lite/readme_ch.md
)
完成。
#### 4.2.5 模型导出
使用如下命令可以将训练好的模型进行导出。
...
...
@@ -670,10 +674,10 @@ python3 tools/infer/predict_system.py --det_model_dir=output/ch_PP-OCRv3_det_dis
# PP-OCRv3中英文超轻量检测预训练模型,PP-OCRv3中英文超轻量识别预训练模型+后处理去掉多识别的`·`
python3 tools/infer/predict_system.py
--det_model_dir
=
output/ch_PP-OCRv3_det_distill_train/infer
--rec_model_dir
=
output/ch_PP-OCRv3_rec_train/infer
--image_dir
=
/home/aistudio/data/CCPD2020/ccpd_green/test/
--draw_img_save_dir
=
infer/post
# PP-OCRv3中英文超轻量检测预训练模型+fine
tune,PP-OCRv3中英文超轻量识别预训练模型+fine
tune
python3 tools/infer/predict_system.py
--det_model_dir
=
output/CCPD/det/infer
--rec_model_dir
=
output/CCPD/rec/infer
--image_dir
=
/home/aistudio/data/CCPD2020/ccpd_green/test/
--draw_img_save_dir
=
infer/finetune
# PP-OCRv3中英文超轻量检测预训练模型+fine
-tune,PP-OCRv3中英文超轻量识别预训练模型+fine-
tune
python3 tools/infer/predict_system.py
--det_model_dir
=
output/CCPD/det/infer
--rec_model_dir
=
output/CCPD/rec/infer
--image_dir
=
/home/aistudio/data/CCPD2020/ccpd_green/test/
--draw_img_save_dir
=
infer/fine
-
tune
# PP-OCRv3中英文超轻量检测预训练模型
finetune+量化,PP-OCRv3中英文超轻量识别预训练模型finetune
+量化 结果转换和评估
# PP-OCRv3中英文超轻量检测预训练模型
fine-tune +量化,PP-OCRv3中英文超轻量识别预训练模型 fine-tune
+量化 结果转换和评估
python3 tools/infer/predict_system.py
--det_model_dir
=
output/CCPD/det_quant/infer
--rec_model_dir
=
output/CCPD/rec_quant/infer
--image_dir
=
/home/aistudio/data/CCPD2020/ccpd_green/test/
--draw_img_save_dir
=
infer/quant
```
...
...
@@ -692,11 +696,11 @@ python3 tools/end2end/eval_end2end.py end2end/gt end2end/pretrain
python3 tools/end2end/convert_ppocr_label.py
--mode
=
pred
--label_path
=
infer/post/system_results.txt
--save_folder
=
end2end/post
python3 tools/end2end/eval_end2end.py end2end/gt end2end/post
# PP-OCRv3中英文超轻量检测预训练模型
finetune,PP-OCRv3中英文超轻量识别预训练模型fine
tune 结果转换和评估
python3 tools/end2end/convert_ppocr_label.py
--mode
=
pred
--label_path
=
infer/fine
tune/system_results.txt
--save_folder
=
end2end/fine
tune
python3 tools/end2end/eval_end2end.py end2end/gt end2end/finetune
# PP-OCRv3中英文超轻量检测预训练模型
fine-tune,PP-OCRv3中英文超轻量识别预训练模型 fine-
tune 结果转换和评估
python3 tools/end2end/convert_ppocr_label.py
--mode
=
pred
--label_path
=
infer/fine
-tune/system_results.txt
--save_folder
=
end2end/fine-
tune
python3 tools/end2end/eval_end2end.py end2end/gt end2end/fine
-
tune
# PP-OCRv3中英文超轻量检测预训练模型
finetune+量化,PP-OCRv3中英文超轻量识别预训练模型finetune
+量化 结果转换和评估
# PP-OCRv3中英文超轻量检测预训练模型
fine-tune +量化,PP-OCRv3中英文超轻量识别预训练模型 fine-tune
+量化 结果转换和评估
python3 tools/end2end/convert_ppocr_label.py
--mode
=
pred
--label_path
=
infer/quant/system_results.txt
--save_folder
=
end2end/quant
python3 tools/end2end/eval_end2end.py end2end/gt end2end/quant
```
...
...
@@ -722,7 +726,7 @@ avg_edit_dist_img: 1.47
precision: 70.54%
recall: 84.38%
fmeasure: 76.84%
The convert label saved
in
end2end/finetune
The convert label saved
in
end2end/fine
-
tune
start testing...
hit, dt_count, gt_count 4286 4898 5006
character_acc: 94.16%
...
...
@@ -748,14 +752,14 @@ fmeasure: 87.36%
|---|---|---|
|PP-OCRv3中英文超轻量检测预训练模型|PP-OCRv3中英文超轻量识别预训练模型|0.04%|
|PP-OCRv3中英文超轻量检测预训练模型|PP-OCRv3中英文超轻量识别预训练模型+后处理去掉多识别的
`·`
|76.84%|
|PP-OCRv3中英文超轻量检测预训练模型+fine
tune|PP-OCRv3中英文超轻量识别预训练模型+fine
tune|86.55%|
|PP-OCRv3中英文超轻量检测预训练模型+fine
tune+量化|PP-OCRv3中英文超轻量识别预训练模型+fine
tune+量化|87.36%|
|PP-OCRv3中英文超轻量检测预训练模型+fine
-tune|PP-OCRv3中英文超轻量识别预训练模型+fine-
tune|86.55%|
|PP-OCRv3中英文超轻量检测预训练模型+fine
-tune+量化|PP-OCRv3中英文超轻量识别预训练模型+fine-
tune+量化|87.36%|
从结果中可以看到对预训练模型不做修改,只根据场景下的具体情况进行后处理的修改就能大幅提升端到端指标到76.84%,在CCPD数据集上进行
finetune
后指标进一步提升到86.55%, 在经过量化训练之后,由于检测模型的recall变高,指标进一步提升到87.36%。
从结果中可以看到对预训练模型不做修改,只根据场景下的具体情况进行后处理的修改就能大幅提升端到端指标到76.84%,在CCPD数据集上进行
fine-tune
后指标进一步提升到86.55%, 在经过量化训练之后,由于检测模型的recall变高,指标进一步提升到87.36%。
### 4.5 实验总结
我们分别使用PP-OCRv3中英文超轻量预训练模型在车牌数据集上进行了直接评估和
finetune 和finetune+量化3种方案的实验
,指标对比如下:
我们分别使用PP-OCRv3中英文超轻量预训练模型在车牌数据集上进行了直接评估和
fine-tune 和 fine-tune+量化3种方案的实验,并基于
[
PaddleOCR lite教程
](
../dygraph/deploy/lite/readme_ch.md
)
进行了速度测试
,指标对比如下:
-
检测
...
...
@@ -777,17 +781,17 @@ fmeasure: 87.36%
-
端到端指标如下:
|
det|rec
|fmeasure|模型大小|预测速度(lite) |
|---
|
---|---|---|---|
|
PP-OCRv3中英文超轻量检测预训练模型|PP-OCRv3中英文超轻量识别预训练模型
|0.04%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型|PP-OCRv3中英文超轻量识别预训练模型+后处理去掉多识别的
`·`
|76.84%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型+finetune|PP-OCRv3中英文超轻量识别预训练模型+finetune
|86.55%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型+finetune+量化|PP-OCRv3中英文超轻量识别预训练模型+finetune+量化
|87.36%|5.8M|224ms|
|
det | rec
|fmeasure|模型大小|预测速度(lite) |
|---
--------------------------------|---------------------------------
---|---|---|---|
|
PP-OCRv3中英文超轻量检测预训练模型 | PP-OCRv3中英文超轻量识别预训练模型
|0.04%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型 | PP-OCRv3中英文超轻量识别预训练模型+后处理去掉多识别的
`·`
|76.84%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型+fine-tune | PP-OCRv3中英文超轻量识别预训练模型+fine-tune
|86.55%|12.8M|298ms|
|
PP-OCRv3中英文超轻量检测预训练模型+fine-tune+量化 | PP-OCRv3中英文超轻量识别预训练模型+fine-tune+量化
|87.36%|5.8M|224ms|
*结论*
PP-OCRv3的检测模型在未经过fine-tune的情况下,在车牌数据集上也有一定的精度,经过
finetune
后能够极大的提升检测效果,精度达到99%。在使用量化训练后检测模型的精度几乎无损,并且模型大小压缩60%。
PP-OCRv3的检测模型在未经过fine-tune的情况下,在车牌数据集上也有一定的精度,经过
fine-tune
后能够极大的提升检测效果,精度达到99%。在使用量化训练后检测模型的精度几乎无损,并且模型大小压缩60%。
PP-OCRv3的识别模型在未经过fine-tune的情况下,在车牌数据集上精度为0,但是经过分析可以知道,模型大部分字符都预测正确,但是会多预测一个特殊字符,去掉这个特殊字符后,精度达到90%。PP-OCRv3识别模型在经过
finetune
后识别精度进一步提升,达到94.4%。在使用量化训练后识别模型大小压缩53%,但是由于数据量多少,带来了1%的精度损失。
PP-OCRv3的识别模型在未经过fine-tune的情况下,在车牌数据集上精度为0,但是经过分析可以知道,模型大部分字符都预测正确,但是会多预测一个特殊字符,去掉这个特殊字符后,精度达到90%。PP-OCRv3识别模型在经过
fine-tune
后识别精度进一步提升,达到94.4%。在使用量化训练后识别模型大小压缩53%,但是由于数据量多少,带来了1%的精度损失。
从端到端结果中可以看到对预训练模型不做修改,只根据场景下的具体情况进行后处理的修改就能大幅提升端到端指标到76.84%,在CCPD数据集上进行
finetune
后指标进一步提升到86.55%, 在经过量化训练之后,由于检测模型的recall变高,指标进一步提升到87.36%并且模型大小降低54%。
从端到端结果中可以看到对预训练模型不做修改,只根据场景下的具体情况进行后处理的修改就能大幅提升端到端指标到76.84%,在CCPD数据集上进行
fine-tune
后指标进一步提升到86.55%, 在经过量化训练之后,由于检测模型的recall变高,指标进一步提升到87.36%并且模型大小降低54%。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录