本项目基于chineseocr 与psenet 实现中文自然场景文字检测及识别
-
pytorch 1.2.0
-
python3
-
linux/macos/windows
-
windows环境配置参考热心网友的文章Python构建快速高效的中文文字识别OCR 👍
-
windows环境运行需要手动编译psenet/pse目录下的pse.cpp为DLL,为了方便新增支持python3.5和python3.6的pyd文件,在windows平台运行 的时候需要根据自己环境的python版本更改对应的pyd文件为pse.pyd即可
-
Docker 环境
-
可以直接在项目根目录下面运行
docker build -t my/chineseocr .
构建运行环境的镜像,也可以使用其他已经构建好的镜像
docker run -dit -p 8080:8080 -v /mnt/d/data/:/data --name chineseocr vitzy/chineseocr_lite
。 -
可通过
docker attach --sig-proxy=false <container id>
或者docker exec -it <your container name or id> /bin/bash
进入容器,然后git clone https://github.com/ouyanghuiyu/chineseocr_lite
拉取本项目代码到/data
-
cd 到
chineseocr_lite
下进行安装:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
-
启动 web
python3 app.py 8080
, 在浏览器中打开http://127.0.0.1:8080/ocr
。
-
cd psenet/pse
rm -rf pse.so
make
- 提供轻量的backone检测模型psenet(8.5M),crnn_lstm_lite(9.5M) 和行文本方向分类网络(1.5M)
- 任意方向文字检测,识别时判断行文本方向
- crnn\crnn_lite lstm\dense识别(ocr-dense和ocr-lstm是搬运chineseocr的)
- 支持竖排文本识别
- ncnn 实现 (支持lstm) nihui大佬实现的crnn_lstm推理 具体操作详解: 详细记录超轻量中文OCR LSTM模型ncnn实现
- 提供竖排文字样例以及字体库(旋转90度的字体)
- dbnet ncnn 实现
- 提供dbnet模型,dbnet.onnx(3.7M) dbnet_lite.onnx(1.7M)
- psenet ncnn核扩展实现,有效解决粘连文本检测问题,详见ncnn ocr一条龙
- nihui大佬实现的crnn_lstm推理 具体操作详解: 详细记录超轻量中文OCR LSTM模型ncnn实现
- 升级crnn_lite_lstm_dw.pth模型crnn_lite_lstm_dw_v2.pth , 精度更高
cd chineseocr_lite## 进入chineseocr目录
python app.py 8080 ##8080端口号,可以设置任意端口
cd chineseocr_lite && python flask_app.py
- 请求url: http://ip:port/api/v1/ocr
- 请求方式:POST
- 请求参数
- imgString:图片转base64后的字符串, str
- 返回实例
{
"code": "SUCCESS",
"text": "不配图我总觉得不舒服不完整不专业"
}