本项目基于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即可
- 重写Dockerfile,资源占用更小,可在1C 1G的学生服务器编译成功
- 容器环境是python3.6 + pytorch-cpu1.2
- 编译方式:在项目根目录下运行
docker build -t chineseocr:v1 .
- Flask-RESTful API运行方式:
docker run --name ocr_api -p5000:5000 -d <Image ID>
请求方式详见下方 - web app运行方式:
docker run --name ocr_ui -p8000:8000 -d <Image ID> python3 app.py 8000
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 实现 (感谢 @zhengqicl 的实现)
- 提供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": "不配图我总觉得不舒服不完整不专业"
}