文字识别 python离线_开源易用的中文离线OCR,识别率媲美大厂

TrWebOCR-开源的离线OCR

介绍

TrWebOCR,基于开源项目 Tr 构建。

在其基础上提供了http调用的接口,便于你在其他的项目中调用。

并且提供了易于使用的web页面,便于调试或日常使用。

特性

中文识别

快速高识别率

文字检测

支持一定角度的旋转

并发请求

由于模型本身不支持并发,但通过tornado多进程的方式,能支持一定数量的并发请求。具体并发数取决于机器的配置。

安装需求

运行平台

✔ Python 3.6+

✔ Ubuntu 16.04

✔ ️Ubuntu 18.04

✔ CentOS 7

✔ Docker

Windows和MacOS系统下可通过构建Docker镜像来使用,暂不支持直接部署使用

其他Linux平台暂未测试,可自行安装测试

最低配置要求

CPU: 1核

内存: 2G

SWAP: 2G

安装说明

服务器部署

安装python3.7

推荐使用miniconda

执行install.py

python install.py

安装依赖包

pip install -r requirements.txt

运行

python backend/main.py

项目默认运行在8089端口,看到以下输出则代表运行成功:

# tr 1.5.0 https://github.com/myhub/tr

server is running: 0.0.0.0:8089

Docker部署

从 Dockerfile 构建或者直接 Pull镜像

# dockerfile 构建

docker build -t trwebocr:latest .

# 从 dockerhub pull

docker pull mmmz/trwebocr:latest

Docker run

docker run -itd -p 8089:8089 --name trwebocr trwebocr:latest

这里把容器的8089端口映射到了物理机的8089上,但如果你不喜欢映射,去掉run后面的-p 8089:8089 也可以使用docker的IP加8089来访问

接口文档

接口文档的内容放在了本项目的wiki里:

接口文档

接口调用示例

Python 使用File上传文件

import requests

url = 'http://192.168.31.108:8089/api/tr-run/'

img1_file = {

'file': open('img1.png', 'rb')

}

res = requests.post(url=url, data={'compress': 0}, files=img1_file)

Python 使用Base64

import requests

import base64

def img_to_base64(img_path):

with open(img_path, 'rb')as read:

b64 = base64.b64encode(read.read())

return b64

url = 'http://192.168.31.108:8089/api/tr-run/'

img_b64 = img_to_base64('./img1.png')

res = requests.post(url=url, data={'img': img_b64})

效果展示

更新记录

2020年06月14日

优化Dockerfile,解决Build失败报错 Dockerfile需要下载的部分使用国内源,提高build速度 增加supervisor守护python进程

2020年06月13日

增加接口调用示例

License

Apache 2.0

鸣谢

感谢 myhub 和它的开源项目Tr

最后

项目在GitHub和码云上同步更新,国内朋友可以通过码云clone项目~

如果你也喜欢这个项目,不妨给个star (^.^)

你可能感兴趣的:(文字识别,python离线)