ocr_api_server/README.md
2022-06-21 09:36:08 +08:00

86 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ocr_api_server
使用ddddocr的最简api搭建项目支持docker
**建议python版本3.7-3.9 64位**
再有不好好看文档的我就不管了啊!!!
# 运行方式
## 最简单运行方式
```shell
# 安装依赖
pip install -r requirements.txt -i https://pypi.douban.com/simple
# 运行 可选参数如下
# --port 9898 指定端口,默认为9898
# --ocr 开启ocr模块 默认开启
# --old 只有ocr模块开启的情况下生效 默认不开启
# --det 开启目标检测模式
# 最简单运行方式只开启ocr模块并以新模型计算
python ocr_server.py --port 9898 --ocr
# 开启ocr模块并使用旧模型计算
python ocr_server.py --port 9898 --ocr --old
# 只开启目标检测模块
python ocr_server.py --port 9898 --det
# 同时开启ocr模块以及目标检测模块
python ocr_server.py --port 9898 --ocr --det
# 同时开启ocr模块并使用旧模型计算以及目标检测模块
python ocr_server.py --port 9898 --ocr --old --det
```
## docker运行方式(目测只能在Linux下部署)
```shell
git clone https://github.com/sml2h3/ocr_api_server.git
# docker怎么安装百度吧
cd ocr_api_server
# 修改entrypoint.sh中的参数具体参数往上翻默认9898端口同时开启ocr模块以及目标检测模块
# 编译镜像
docker build -t ocr_server:v1 .
# 运行镜像
docker run -p 9898:9898 -d ocr_server:v1
```
# 接口
**具体请看test_api.py文件**
```python
# 1、测试是否启动成功可以通过直接GET访问http://{host}:{port}/ping来测试如果返回pong则启动成功
# 2、OCR/目标检测请求接口格式:
# http://{host}:{port}/{opt}/{img_type}/{ret_type}
# opt操作类型 ocr=OCR det=目标检测 slide=滑块match和compare两种算法默认为compare)
# img_type: 数据类型 file=文件上传方式 b64=base64(imgbyte)方式 默认为file方式
# ret_type: 返回类型 json=返回json识别出错会在msg里返回错误信息 text=返回文本格式(识别出错时回直接返回空文本)
# 例子:
# OCR请求
# resp = requests.post("http://{host}:{port}/ocr/file", files={'image': image_bytes})
# resp = requests.post("http://{host}:{port}/ocr/b64/text", data=base64.b64encode(file).decode())
# 目标检测请求
# resp = requests.post("http://{host}:{port}/det/file", files={'image': image_bytes})
# resp = requests.post("http://{host}:{port}/det/b64/json", data=base64.b64encode(file).decode())
# 滑块识别请求
# resp = requests.post("http://{host}:{port}/slide/match/file", files={'target_img': target_bytes, 'bg_img': bg_bytes})
# jsonstr = json.dumps({'target_img': target_b64str, 'bg_img': bg_b64str})
# resp = requests.post("http://{host}:{port}/slide/compare/b64", files=base64.b64encode(jsonstr.encode()).decode())
```