@
如图所示:图像验证码,识别指定颜色的文字。
首先有几条道路可以通向罗马,这里不分先后优劣一一讲述。
(3)把所有颜色都通过颜色变换为一种颜色,整体思路同(2)。如下图,笔者将黑色转换为红色,但是样本成本只有采集一种颜色的成本。看起来是目前位置最佳的方案了,事实也是如此的。但是呢,100w的样本对于普通人来说也是一笔不小的花销,即便有了样本能做出来也需要花费不少的时间和精力。
不过采集样本不是单纯的接打码平台就完事了,需要经过官网判断,只有通过验证,正确的样本才保存下来。这样有效的样本对提高识别率才有帮助。
笔者实时对接官网对实验模型进行检验,结果如上图,测试了200+次,识别率达到98%以上,识别速度的话,CPU大概5-8毫秒左右,模型大概3mb。
附上接口,为了防止滥用,接口每天只支持请求500次:
请求地址 | Content-Type | 参数形式 | 请求方法 |
---|---|---|---|
http://152.136.207.29:19812/captcha/v1 | application/json | JSON | POST |
具体参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
image | Yes | String | Base64 编码 |
param_key | No | String | 颜色,red\blue\green\black\yellow |
请求为JSON格式,形如:
{"image": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAIAAA...base64编码后的图像二进制流", "param_key ": "blue"}
返回结果:
参数名 | 类型 | 说明 |
---|---|---|
message | String | 识别结果或错误消息 |
code | String | 状态码 |
success | String | 是否请求成功 |
该返回为JSON格式,形如:
{"message": "xxxx", "code": 0, "success": true}
Python示例:
import requests
import base64
with open(r"C:\1.png", "rb") as f:
b = f.read()
# param_key: black-全黑色,red-红色,blue-蓝色,yellow-黄色
r = requests.post("http://152.136.207.29:19812/captcha/v1", json={
"image": base64.b64encode(b).decode(), "param_key": "yellow"
})
print(r.json())
原文:https://www.cnblogs.com/kerlomz/p/12861772.html