关于tr-Text Recognition项目的实战

1,395 阅读3分钟

tr - Text Recognition 实现的是OCR的技术

github项目地址:github.com/myhub/tr

项目的简介(主要是从项目的Readme获得):

一款针对扫描文档的离线文本识别SDK,核心代码全部采用C++开发,并提供Python接口

  • c++接口支持
  • 支持Windows系统
  • 添加python2支持
  • 去除opencv-python、Pillow依赖,降低部署难度
  • 支持多线程
  • 支持GPU

Requirements

  • Windows 7+/Ubuntu 16.04/Ubuntu 18.04
  • python2/python3,需要安装numpy
  • Windows系统需要安装 VC_redist.x64.exe

GPU版本安装说明(实践得:cpu速度极慢,建议gpu进行安装)

  • 如果对速度有要求,推荐安装GPU版本
  • 要使用GPU版本,复制tr_gpu文件夹里面的文件到tr文件夹
  • 注意: 需要先安装CUDA 10.1以及cuDNN 7.6.5

安装方式

Docker的安装方式被舍弃我舍弃掉了(有兴趣的可以自行尝试),这里使用setup.py的安装方式

git clone https://github.com/myhub/tr.git
cd ./tr
sudo python setup.py install

测试

python2 demo.py               # python2兼容测试     
python3 test.py               # 可视化测试
python3 test-multi-thread.py  # 多线程测试

实战步骤

首先gpu版本需要安装CUDA 10.1以及cuDNN 7.6.5的环境,这里我们采用现成的环境(易学智能平台),可以免去安装的环境的各种问题,快速的实现项目的搭建,缺点:费钱

易学智能的官网www.easyaiforum.cn/

1 进入易学智能官网,选择需要的环境,付钱开机

1.1 进入官网

1001.PNG

1.2 进入控制台

1002.PNG

1.3 选择环境

计费模式:我一般选择的是固定小时数,不够再追加就行了

1004.PNG

GPU型号我们选择1050ti,2¥/h,这里我们选择Conda101,因为这个环境中有cuda10.1和cudnn7.6.5

1003.PNG

1.4 点击结算开机

注意几个信息,确认即可开机

1005.PNG

1.5 开机后的运行界面

我一般习惯于使用终端的方式,进行操作,对命令不是很熟悉的小伙伴可以使用远程桌面的方式

1006.PNG

1.6 打开终端,切换到指定环境

我们需要的环境是py37-cuda101,切换命令是

conda activate py37-cuda101

1008.PNG

2 下载项目到我们的ubuntu主机中

这里我们github的速度比较慢,我们这里将其拷贝到gitee上,使用gitee的zip的下载方式

2.1将github上的项目克隆到gitee,生成zip的链接

1009.PNG

1010.PNG

2.2 使用wget的方式,下载到主机中(目前我实战中最快的方式)

1011.PNG

2.3 保存完成进入项目

2.3.1 首先解压

unzip xxxx.zip

1012.PNG

2.3.2 进入项目完成安装(默认安装CPU,GPU可以直接看3)

sudo python setup.py install

1015.PNG 密码的获取在这个地方:

1013.PNG

在安装的时候,遇到一个问题,会下载numpy,但是安装需要python >= 3.7的环境

1016.PNG

但是我们的虚拟环境不就是python37+cuda101吗,仔细一看,这个安装的路径有问题,我们的虚拟环境中本来就有numpy,在安装多此一举,去配置文件中将安装numpy的步骤干掉

vim setup.py

找到这个地方直接干掉

1017.PNG

删除这三行,保存,再次执行上面的安装语句即可(没有任何的问题了)

安装成功:

1018.PNG

3.安装GPU版本

上面的过程(默认)是安装CPU版本,不追求速度的可以直接进行测试了,这个部分是安装GPU

3.1 完成文件的拷贝

cp tr_gpu/lib* tr/

3.2 在完成安装

sudo python setup install

安装完成的效果和上面CPU的安装一样

4.上传图片,完成测试

4.1 上传图片

1021.PNG

注意上传到imgs文件夹中

1020.PNG

4.2 更改测试文件

将test.py文件中图片路径修改成自己想要测试的数据即可

更改前:

1022.PNG

更改后:

1023.PNG

4.3 完成测试

python test.py

使用gpu一共花费时间 1.65785s

4.4 查看效果

原始图片

002.jpg 识别结果

1030.PNG

5.项目的实践感受

  • 对于横向文本的识别率非常的高,特别是实验中的印刷体文本,效果非常的好(非常好)
  • 对于有一定倾斜角度的文本,识别效果较好()
  • 对于竖向的文本,识别效果差,可能模型对竖向并不支持