一.下载源码
tensorflow_PSENet下载地址:https://github.com/liuheng92/tensorflow_PSENet(可以star和fork作者该项目)
下载完源码在执行训练和测试时会自动调用编译
Installation
Any version of tensorflow version > 1.0 should be ok.
python 2 or 3 will be ok.
训练数据集介绍
训练数据集格式是ICDAR 2015 和ICDAR2017那样的,如下:
一个jpg对应一个txt文件,确保jpg和对应的txt文件有相同的名字,放在同一文件夹下。
二.训练自己的数据 (linux系统下使用gpu训练)
train.py文件内修改配置后,执行如下命令:
python train.py --gpu_list=0 --input_size=512 --batch_size_per_gpu=8 --checkpoint_path=./resnet_train/ --training_data_path=./data/train_ImgTxt/
如果你有多块GPU,可以设置–gpu_list=0,1,2,3…;可以根据自己的内存设置合理的batch_size_per_gpu的大小。
训练时需要注意的地方:
1.作者使用的Python2,python3需要修改的地方有2处
1) utils_tool.py12行:
import queue改成:
try:
import queue
except ImportError:
import Queue as queue
2)eval.py 228行:
xrange改成range
2.g++版本不够的话,pse是不能编译,所以要升级一下。同时,用python3的话,把pse/Makefile文件中的第一行:CXXFLAGS = -I include -std=c++11 -O3
(
s
h
e
l
l
p
y
t
h
o
n
3
−
c
o
n
f
i
g
−
−
c
f
l
a
g
s
)
中
的
(shell python3-config --cflags) 中的
(shellpython3−config−−cflags)中的(shell python3-config --cflags)替换为-I/home/xx/anaconda3/include/python3.6m
注意:
替换的部分请换成自己的anaconda目录,如果不知道安装在哪,可以通过在命令行输入python3-config --cflags,然后回车看到,anaconda路径
三.测试(linux系统下使用gpu)
eval.py文件内修改配置后,执行如下命令:
python eval.py --test_data_path=./data/test_img/ --gpu_list=0 --checkpoint_path=./resnet_train/ --output_dir=./data/test_result/
测试完毕后,txt文件和对应的测试结果图片将会保存到测试结果路径下。
四.Windows系统下PSENET编译及测试过程
以上训练和测试是在linux系统下使用gpu,下面介绍Windows系统下编译源码和不使用gpu去调用训练好的模型进行测试。
用Linux系统可直接参考原项目,简单快捷。以下适合Windows系统,需要使用VS进行简单编译。
4.1. VS2015及以上进行编译PSENET
参考文档:https://blog.csdn.net/lly1122334/article/details/104752851
1)我使用的是VS2017,打开VS2017→新建项目→Visual C++→项目命名为pse
2)勾上空项目
3)配置属性(常规):右键项目pse→属性→配置Release→平台x64→目标文件扩展名.pyd→配置类型动态库(.dll)
4)配置属性(VC++目录):包含目录添加C:\chineseocr_lite-master\psenet\pse\include(项目文件)和C:\Users\Administrator\AppData\Local\Programs\Python\Python36\include(你的Python),库目录添加C:\Users\Administrator\AppData\Local\Programs\Python\Python36\libs(注意,是libs不是Lib)
注意:
如果使用Anaconda内置的python,要设置成Anaconda内置的python的路径,否则在测试时可能会报错python版本不一致。
5)附加依赖项:添加python3.lib;python36.lib;
6)配置管理器→活动解决方案配置Release→活动解决方案平台x64
7)把项目\psenet\pse\pse.cpp复制到源文件里→右键项目pse→重新生成
8)在VS项目pse\x64\Release就编译好了我们要的库文件pse.pyd
9)将pse.pyd复制到与项目\pse\pse.cpp同一文件夹下
Makefile文件中的第一行:CXXFLAGS = -I include -std=c++11 -O3
(
s
h
e
l
l
p
y
t
h
o
n
3
−
c
o
n
f
i
g
−
−
c
f
l
a
g
s
)
中
的
(shell python3-config --cflags) 中的
(shellpython3−config−−cflags)中的(shell python3-config --cflags)替换为Windows下编译时写入的python路径
10)注释掉\pse_init_.py的两行代码
经过以上10个小步骤,Windows系统下PSENET编译已完成,接下来可以将训练好的模型导入到Windows系统下tensorflow_PSENet-master项目中的模型路径下去完成Windows系统下的测试。
4.2.Windows系统下的PSENET进行测试
eval.py文件内修改配置后,执行如下命令:
python eval.py --test_data_path=data\test_img\ --gpu_list=0 --checkpoint_path=resnet_train\ --output_dir=data\test_result
测试完毕后,txt文件和对应的测试结果图片将会保存到测试结果路径下。
tensorflow_PSENet训练和测试过程都很简单,报错可能会在编译时出错,但是也都容易解决,没有什么大坑,而且测试效果良好,可以Star和Fork作者仓库https://github.com/liuheng92/tensorflow_PSENet,欢迎留言交流和指正,谢谢!