一、精易论坛李逍遥大佬开源的http版PaddleOCR
大佬原源码是cpu、gpu分开的,而且一启动就调用PaddleOCR,没有gpu却用了gpu版本的会直接崩。所以,我自己稍微修改了下易语言源码上传到了百度网盘,直接使用gpu版本的源码并关掉自启,自行选择是否启用gpu。
v4精度更高,但速度不如v3。电脑截图基本很清晰,所以我用不着,且做脚本v4牺牲了速度。
以下为使用方法:
1、原理:http post
启动服务
PaddleOCR_WebApi.exe --det_model_dir=".\多模型\检测模型\中文_OCRv3" --rec_model_dir=".\多模型\识别模型\中文简体_OCRv3" --cls_model_dir=".\多模型\方向模型\原始分类器模型" --rec_char_dict_path=".\多模型\识别模型\中文简体_OCRv3\中文简体_OCRv3.txt" --use_angle_cls=false --cls=false --enable_mkldnn=true --use_gpu=false --gpu_mem=2000 --rec_img_h=48 --table=false --layout=false --http_port=19811
--det_model_dir=
--rec_model_dir=
--cls_model_dir=
--rec_char_dict_path=
以上为模型文件的引用路径,不用多说,记住如果在别的位置调用需要绝对路径
--use_angle_cls=
--cls=
以上为识别旋转方向,两个都要
--enable_mkldnn= 启用cpu加速,v4+非avx512cpu不要启用,否则会卡爆
--use_gpu= 启用gpu加速,有n卡才能用,否则闪退
--gpu_mem= 启用gpu加速时占用的显存
--rec_img_h= v3、v4均为48,不能修改
--table=
--layout=
表格识别、版面分析功能,用不着
--http_port= http端口
顺利的话会开启PaddleOCR http服务,浏览器输入127.0.0.1:19811
看到url error就成功了。
使用
上面打开的窗口里有写,ocr0为单纯返回文字,ocr1返回文字及坐标。用post方式提交图片base64编码文本(不用加base64前缀)
2、实现:易语言
网盘里的PaddleOCR_WebApi_简化自用.e
不要用精易模块里的网页_访问
来post,并不成功
3、实现:python
这里用命令行传参方式,即xxx\xxx.py 图片路径
如果没有路径则取默认值
import base64
import requests
import sys
# 获取传递的参数列表
args = sys.argv[1:]
# 根据参数执行相应的操作
if len(args) == 1:
print(args[0])
image_path=args[0]
else:
print("未知参数")
image_path = r'C:\Users\Chenfirm\Desktop\QQ截图20240516211941.png'
#image_path = r'C:\Users\Chenfirm\Desktop\QQ截图20240516211941.png'
with open(image_path, 'rb') as img_file:
img_data = img_file.read()
img_base64 = base64.b64encode(img_data).decode('utf-8')
url = 'http://127.0.0.1:19811/ocr2'
headers = {'Content-Type': 'x-www-form-urlencoded'}
response = requests.post(url, data=img_base64, headers=headers)
if response.status_code == 200:
ocr_result = response.text
print(ocr_result)
else:
print("post错误: ", response.status_code)
4、实现:按键精灵
二、大佬制作的ZXL本地OCR服务V3.0
就是上面的精简版,调用方法同