本地搭建php-curl验证码识别api接口

前言github上有个非常好的开源验证码识别库,很多python猿都知道的python库。所以如果你是PHP猿,想通过php-curl实现一些功能肯定会遇到验证码识别关卡,这时你有两个选择:花钱对接付费API接口;本地搭建python库API接口;花钱能解决的问题,不是问题,没钱可花那是你的问题 我没钱,所以我选择第二种自己搭建本地接口,当然如果你有服务器,也可以在服务器上使用docker搭建个线上API接口。不废话,库的名字就是ddddocr(带带弟弟OCR)自己去搜,看自述文件基本都会了,有功能的介绍,同时里面扩展部分,还有一键部署ddddocr api库链接。本文着重介绍下,这个一键部署api的库ocr_api_server。安装python这个库支持 本地电脑安装运行 和 线上服务器运行 ,本地比较简单,先在电脑上下载个python版本3.7-3.9 64位,那就选择3.8版本的python吧。python官网:https://www.python.org/点击菜单 Downloads -> Windows 下方找到Python 3.8.10 Download Windows installer (64-bit)下载即可。如果是64位系统,下方链接直接下载!https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe和其他Windows软件一样,界面化安装很简单了。安装过程中记得加入系统环境变量,有个PATH的框框记得打勾。命令行执行 python -v 得到python版本信息说明安装成功。下载ocr_api_server库最简单运行方式# 安装依赖
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
上面只需要cmd执行两行,第一行和下方五选一看注释选择。接口使用方法# 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())好了,ddddocr api本地搭建并启用,至于识别成功率我测试搜狗验证码大概能有60-70%吧。


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/53392/