Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
f47165ba
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
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看板
未验证
提交
f47165ba
编写于
5月 25, 2020
作者:
D
Double_V
提交者:
GitHub
5月 25, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #93 from LDOUBLEV/fixocr
solve det eval bug and optimize doc
上级
e8a16963
e9b6f20d
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
38 addition
and
12 deletion
+38
-12
README.md
README.md
+7
-6
configs/det/det_mv3_db.yml
configs/det/det_mv3_db.yml
+1
-1
doc/detection.md
doc/detection.md
+3
-2
doc/installation.md
doc/installation.md
+22
-1
ppocr/postprocess/db_postprocess.py
ppocr/postprocess/db_postprocess.py
+5
-2
未找到文件。
README.md
浏览文件 @
f47165ba
...
...
@@ -48,7 +48,6 @@ python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_mode
更多的文本检测、识别串联推理使用方式请参考文档教程中
[
基于预测引擎推理
](
./doc/inference.md
)
。
## 文档教程
-
[
快速安装
](
./doc/installation.md
)
-
[
文本检测模型训练/评估/预测
](
./doc/detection.md
)
(持续更新中)
...
...
@@ -64,12 +63,14 @@ PaddleOCR开源的文本检测算法列表:
在ICDAR2015文本检测公开数据集上,算法效果如下:
|模型|骨干网络|Hmean|下载链接|
|模型|骨干网络|
precision|recall|
Hmean|下载链接|
|-|-|-|-|
|EAST|ResNet50_vd|85.85%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar
)
|
|EAST|MobileNetV3|79.08%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_mv3_east.tar
)
|
|DB|ResNet50_vd|83.30%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar
)
|
|DB|MobileNetV3|73.00%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_mv3_db.tar
)
|
|EAST|ResNet50_vd|88.18%|85.51|86.82%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_r50_vd_east.tar
)
|
|EAST|MobileNetV3|81.67%|79.83%|80.74%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_mv3_east.tar
)
|
|DB|ResNet50_vd|83.79%|80.65%|82.19%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_r50_vd_db.tar
)
|
|DB|MobileNetV3|75.92%|73.18%|74.53%|
[
下载链接
](
https://paddleocr.bj.bcebos.com/det_mv3_db.tar
)
|
*
注: 上述模型的训练和评估,设置后处理参数box_thresh=0.6,unclip_ratio=1.5,使用不同数据集、不同模型训练,可调整这两个参数进行优化
PaddleOCR文本检测算法的训练和使用请参考文档教程中
[
文本检测模型训练/评估/预测
](
./doc/detection.md
)
。
...
...
configs/det/det_mv3_db.yml
浏览文件 @
f47165ba
...
...
@@ -50,4 +50,4 @@ PostProcess:
thresh
:
0.3
box_thresh
:
0.7
max_candidates
:
1000
unclip_ratio
:
1.5
\ No newline at end of file
unclip_ratio
:
2.0
\ No newline at end of file
doc/detection.md
浏览文件 @
f47165ba
...
...
@@ -64,14 +64,15 @@ PaddleOCR计算三个OCR检测相关的指标,分别是:Precision、Recall
运行如下代码,根据配置文件det_db_mv3.yml中save_res_path指定的测试集检测结果文件,计算评估指标。
评估时设置后处理参数box_thresh=0.6,unclip_ratio=1.5,使用不同数据集、不同模型训练,可调整这两个参数进行优化
```
python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="{path/to/weights}/best_accuracy"
python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="{path/to/weights}/best_accuracy"
PostProcess.box_thresh=0.6 PostProcess.unclip_ratio=1.5
```
训练中模型参数默认保存在Global.save_model_dir目录下。在评估指标时,需要设置Global.checkpoints指向保存的参数文件。
比如:
```
python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="./output/det_db/best_accuracy"
python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="./output/det_db/best_accuracy"
PostProcess.box_thresh=0.6 PostProcess.unclip_ratio=1.5
```
...
...
doc/installation.md
浏览文件 @
f47165ba
## 快速安装
经测试PaddleOCR可在glibc 2.23上运行,您也可以测试其他glibc版本或安装glic 2.23
PaddleOCR 工作环境
-
PaddlePaddle1.7
-
python3
-
glibc 2.23
建议使用我们提供的docker运行PaddleOCR,有关docker使用请参考
[
链接
](
https://docs.docker.com/get-started/
)
。
1.
准备docker环境。第一次使用这个镜像,会自动下载该镜像,请耐心等待。
1.
(建议)准备docker环境。第一次使用这个镜像,会自动下载该镜像,请耐心等待。
```
# 切换到工作目录下
cd /home/Projects
...
...
@@ -20,6 +27,20 @@ sudo nvidia-docker run --name ppocr -v $PWD:/paddle --network=host -it hub.baidu
sudo nvidia-docker container exec -it ppocr /bin/bash
```
注意:如果docker pull过慢,可以按照如下步骤手动下载后加载docker,以cuda9 docker为例,使用cuda10 docker只需要将cuda9改为cuda10即可。
```
# 下载CUDA9 docker的压缩文件,并解压
wget https://paddleocr.bj.bcebos.com/docker/docker_pdocr_cuda9.tar.gz
# 为减少下载时间,上传的docker image是压缩过的,需要解压使用
tar zxf docker_pdocr_cuda9.tar.gz
# 创建image
docker load < docker_pdocr_cuda9.tar
# 完成上述步骤后通过docker images检查是否加载了下载的镜像
docker images
# 执行docker images后如果有下面的输出,即可按照按照 步骤1 创建docker环境。
hub.baidubce.com/paddlepaddle/paddle latest-gpu-cuda9.0-cudnn7-dev f56310dcc829
```
2.
安装PaddlePaddle Fluid v1.7(暂不支持更高版本,适配工作进行中)
```
pip3 install --upgrade pip
...
...
ppocr/postprocess/db_postprocess.py
浏览文件 @
f47165ba
...
...
@@ -35,6 +35,7 @@ class DBPostProcess(object):
self
.
thresh
=
params
[
'thresh'
]
self
.
box_thresh
=
params
[
'box_thresh'
]
self
.
max_candidates
=
params
[
'max_candidates'
]
self
.
unclip_ratio
=
params
[
'unclip_ratio'
]
self
.
min_size
=
3
def
boxes_from_bitmap
(
self
,
pred
,
_bitmap
,
dest_width
,
dest_height
):
...
...
@@ -46,7 +47,8 @@ class DBPostProcess(object):
bitmap
=
_bitmap
height
,
width
=
bitmap
.
shape
outs
=
cv2
.
findContours
((
bitmap
*
255
).
astype
(
np
.
uint8
),
cv2
.
RETR_LIST
,
cv2
.
CHAIN_APPROX_SIMPLE
)
outs
=
cv2
.
findContours
((
bitmap
*
255
).
astype
(
np
.
uint8
),
cv2
.
RETR_LIST
,
cv2
.
CHAIN_APPROX_SIMPLE
)
if
len
(
outs
)
==
3
:
img
,
contours
,
_
=
outs
[
0
],
outs
[
1
],
outs
[
2
]
elif
len
(
outs
)
==
2
:
...
...
@@ -83,7 +85,8 @@ class DBPostProcess(object):
scores
[
index
]
=
score
return
boxes
,
scores
def
unclip
(
self
,
box
,
unclip_ratio
=
2.0
):
def
unclip
(
self
,
box
):
unclip_ratio
=
self
.
unclip_ratio
poly
=
Polygon
(
box
)
distance
=
poly
.
area
*
unclip_ratio
/
poly
.
length
offset
=
pyclipper
.
PyclipperOffset
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录