杀死验证码
项目描述
Kcaptcha API文档
最新版本:1.0.3
pip install kcaptcha==1.0.3
更新
2022-04-18:
- 打包时未能正确包含数据文件的问题修复。
2022-04-17:
-
已通过pypi发布。可通过
pip install kcaptcha安装。(但不想写文档先忍一下[doge])from kcaptcha.core import SlideKiller slide_killer = SlideKiller() # test slide match mode with open('imgs/slide_match_target_1.jpg', 'rb') as f: test_match_target = f.read() with open('imgs/slide_match_bg_1.jpg', 'rb') as f: test_match_background = f.read() match_result = slide_killer.match(test_match_target, test_match_background, simple_target=True, target_threshold=(200, 300), method=4, background_threshold=(100, 200), debug=True, border=True)
-
增加调试参数,显示参数,识别过程中各阶段的图像,方便调整。
一、概述
通过API提供类型识别、识别码的识别码的识别点的识别服务。
主机: 192.168.0.155:9898
| 功能 | URI | 备注 |
|---|---|---|
| 通用字符型验证码识别 | /common/ocr/文件 | 通过开源的onnx格式人工智能模型实现 |
| 通用点选验证码识别 | /common/det/文件 | 通过开源的onnx格式人工智能模型实现 |
| 通用身份验证码识别-匹配模式 | /common/slide-match/文件 | 通过cv库实现 |
| 通用鉴别码识别-对比模式 | /common/slide-match/文件 | 通过cv库实现 |
| 极验文字点选验证码 | /geetest/order-click/文件 | 通过cv库及ai模型实现 |
可以处理的验证码示例如下:
-
通用字符型鉴定
-
通用点选(不带语序,仅用于目标识别)
-
通用通用匹配模式
于能获取图片(及目标图片)的背景图(背景图)
-
通用通用-比较模式
及带获取背景图的背景图验证于身份,从而能够返回完整距离
-
极验文字点选验证码
按顺序点选文字验证码,图标形式暂未实现。
二、通用字符型验证码
1. 请求参数(POST)
| 名称 | 类型 | 必填 | 示例 | 描述 |
|---|---|---|---|---|
| 图像 | 细绳 | 是 | 图片文件 | 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。 |
2. 返回数据
| 名称 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 代码 | 整数 | 200 | 状态码 |
| 味精 | 细绳 | “” | 状态描述 |
| 结果 | 细绳 | “杰普” | 识别结果 |
3. 请求示例
import requests
url = HOST + '/common/ocr/file'
img_file_path = {Your Img Filepath}
files = {
'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)
4. 响应示例
{"code": 200, "results": "jepv", "msg": ""}
三、通用点选型验证码
1. 请求参数(POST)
| 名称 | 类型 | 必填 | 示例 | 描述 |
|---|---|---|---|---|
| 图像 | 细绳 | 是 | 图片文件 | 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。 |
2. 返回数据
| 名称 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 代码 | 整数 | 200 | 状态码 |
| 味精 | 细绳 | “” | 状态描述 |
| 结果 | 大批 | [[131、53、182、103]、[214、52、258、96]] | 识别结果:列表每一个为一个四元组,该四元组一个区域,分别为左上x坐标、左上y坐标、右下x坐标、右下y坐标。 |
3. 请求示例
import requests
url = HOST + '/common/det/file'
img_file_path = {Your Img Filepath}
files = {
'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)
4. 响应示例
{"code": 200, "results": [[131, 53, 182, 103], [214, 52, 258, 96], [299, 105, 350, 154], [292, 17, 341, 65]], "msg": ""}
四、通用识别码识别-匹配模式
1. 请求参数(POST)
| 名称 | 类型 | 必填 | 示例 | 描述 |
|---|---|---|---|---|
| target_img | 细绳 | 是 | 图片文件 | 将图片的主体文件调用时把图片中的文件通过HTTP上传到 |
| bg_img | 细绳 | 是 | 图片文件 | 带背景图片的文件,调用时把图片中的文件上传到HTTP正文 |
| 方法 | 整数 | 否 | 4 | 进行基因包含的算法模式,任选匹配0~4,具体算法可参考cv2的文档 |
| target_threshold_min | 整数 | 否 | 100 | 尿图二值化处理的最小值 |
| target_threshold_max | 整数 | 否 | 300 | 血清二值化处理的最大价值 |
| background_threshold_min | 整数 | 否 | 100 | 二值化处理的基线值图 |
| background_threshold_max | 整数 | 否 | 130 | 背景二值化处理最大的器官值 |
| 边界 | 布尔 | 否 | 真的 | 对那些图片 处理时是否添加图片 |
注:因各种时发现验证码存在差异,当识别准确率不高,可尝试调整方法、阈值_阈值_最小值、目标阈值_最大值、背景阈值_最大值、目标阈值_参数、边界参数
2. 返回数据
| 名称 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 代码 | 整数 | 200 | 状态码 |
| 味精 | 细绳 | “” | 状态描述 |
| 结果 | 目的 | {"target_y": 0, "target": [191, 116, 259, 184]} | 右:target_y 为Y轴上移动的距离;target 为正确识别位置,以四元组分别表示,为左上x坐标、左上x坐标、下x坐标、下y坐标。 |
3. 请求示例
import requests
url = HOST + '/common/slide-match/file'
target_img_file_path = {Your Img Filepath}
bg_img_file_path = {Your Img Filepath}
data = {
'method': 4,
'target_threshold_min': 100,
'target_threshold_max': 300,
'background_threshold_min': 100,
'background_threshold_max': 130,
'border': True
}
files = {
'target_img': ('img', open(target_img_file_path, 'rb')),
'bg_img': ('img', open(bg_img_file_path, 'rb')),
}
response = requests.post(url, files=files, data=data)
4. 响应示例
{"code": 200, "results": {"target_y": 0, "target": [191, 116, 259, 184]}, "msg": ""}
五、通用识别码识别-对比模式
1. 请求参数(POST)
| 名称 | 类型 | 必填 | 示例 | 描述 |
|---|---|---|---|---|
| full_bg_img | 细绳 | 是 | 图片文件 | 完整背景图片的上传文件调用时把图片文件传递到HTTP正文中上传 |
| bg_img | 细绳 | 是 | 图片文件 | 带背景图片的文件,调用时把图片中的文件上传到HTTP正文 |
2. 返回数据
| 名称 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 代码 | 整数 | 200 | 状态码 |
| 味精 | 细绳 | “” | 状态描述 |
| 结果 | 目的 | {'目标':[124, 79]} | 定位:目标组为识别位置,以二元表示,分别为结果的左侧距定位范围、纵坐标。 |
3. 请求示例
import requests
url = HOST + '/common/slide-compare/file'
full_bg_img_path = {Your Img Filepath}
bg_img_path = {Your Img Filepath}
files = {
'full_bg_img': ('img', open(full_bg_img, 'rb')),
'bg_img': ('img', open(bg_img_path, 'rb')),
}
response = requests.post(url, files=files)
4. 响应示例
{"code": 200, "results": {'target': [124, 79]}, "msg": ""}
六、极验文字点选验证码识别
1. 请求参数(POST)
| 名称 | 类型 | 必填 | 示例 | 描述 |
|---|---|---|---|---|
| 图像 | 细绳 | 是 | 图片文件 | 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。 |
2. 返回数据
| 名称 | 类型 | 示例 | 描述 |
|---|---|---|---|
| 代码 | 整数 | 200 | 状态码 |
| 味精 | 细绳 | “” | 状态描述 |
| 结果 | 大批 | [{"char": "松", "target": [149, 125, 207, 182]}, {"char": "油", "target": [9, 242, 67, 300]}, { "char": "醇", "target": [94, 25, 156, 87]}] | 结果:顺序返回识别结果,每项中的字符为识别的字,目标为一个四元组,分别为左上x坐标、左上y坐标、右下x坐标、右下y坐标。 |
3. 请求示例
import requests
url = HOST + '/geetest/order-click/file'
img_file_path = {Your Img Filepath}
files = {
'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)
4. 响应示例
{"code": 200, "results": [{"char": "松", "target": [149, 125, 207, 182]}, {"char": "油", "target": [9, 242, 67, 300]}, {"char": "醇", "target": [94, 25, 156, 87]}], "msg": ""}
去做:
-
通过pypi发布,以提供更多的方式使用
-
增加的调试功能:调用时任选可以返回中间的过程图,方便调节值等参数提高准确率
-
极验图标点选验证
-
极验语序点选验证码
-
计算式验证码处理
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
kcaptcha-1.0.3.tar.gz
(15.1 kB
查看哈希)
内置分布
kcaptcha-1.0.3-py3-none-any.whl
(75.9 MB
查看哈希)