Skip to main content

AntiCAP

Project description

logo

AntiCAP

Version:3.1.4

多类型验证码识别,开源学习项目,不承担法律责任。

类型 状态 描述
OCR识别 返回图片字符串
数学计算 返回计算结果
缺口滑块 返回坐标
阴影滑块 返回坐标
图标点选 侦测图标位置 或 按序返回坐标
文字点选 侦测文字位置 或 按序返回坐标
相似对比 图片中文字的相似度对比
WebApi服务 https://github.com/81NewArk/AntiCAP-WebApi

📄 AntiCAP 文档

🌍环境说明

python >=3.8  64bit

📁 安装

Pypi下载

pip install AntiCAP -i https://pypi.tuna.tsinghua.edu.cn/simple

🤖 调用说明

1. 通用OCR识别

参考例图 (数字、大小写字母、汉字)

# example.py

import base64
import AntiCAP


with open("captcha.jpg", "rb") as img_file:
    img_base64 = base64.b64encode(img_file.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)
result = Atc.OCR(img_base64=img_base64) #传入图片Base64编码字符串

print(result) # 返回字符串 jepy

2. 算术验证码识别

参考例图 (加减乘除类) 目前模型泛化能力较弱 等待更新

# example.py

import base64
import AntiCAP


with open("captcha.jpg", "rb") as img_file:
    img_base64 = base64.b64encode(img_file.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Math(img_base64=img_base64) #传入图片Base64编码字符串

print(result) #返回计算结果 8

3. 图标侦测

参考例图

# example.py

import base64
import AntiCAP


with open("captcha.jpg", "rb") as img_file:
    img_base64 = base64.b64encode(img_file.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Detection_Icon(img_base64=img_base64) #传入图片Base64编码字符串

print(result)

# [{'class': 'icon', 'box': [9.12, 105.4, 111.73, 223.02]}...]
# box分别为 [x1, y1, x2, y2] 左上角和右下角坐标

4. 文字侦测

参考例图

# example.py

import base64
import AntiCAP


with open("captcha.jpg", "rb") as img_file:
    img_base64 = base64.b64encode(img_file.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)
result = Atc.Detection_Text(img_base64=img_base64) #传入图片Base64编码字符串

print(result)
# [{'class': 'Text', 'box': [145.71, 19.21, 223.99, 95.7]}...]
# box分别为 [x1, y1, x2, y2] 左上角和右下角坐标

5. 图标点选类

提示图

目标图片

# example.py

import base64
import AntiCAP

with open("order_image.jpg", "rb") as f:
    order_img_base64 = base64.b64encode(f.read()).decode('utf-8')

# 读取目标图(所有图标)并转为 base64
with open("target_image.jpg", "rb") as f:
    target_img_base64 = base64.b64encode(f.read()).decode('utf-8')

Atc = AntiCAP.Handler(show_banner=True)
result = Atc.ClickIcon_Order(
    order_img_base64=order_img_base64,
    target_img_base64=target_img_base64
)

print(result)

6. 文字点选类

提示图

目标图片

# example.py

import base64
import AntiCAP

with open("order_image.jpg", "rb") as f:
    order_img_base64 = base64.b64encode(f.read()).decode('utf-8')

# 读取目标图(所有图标)并转为 base64
with open("target_image.jpg", "rb") as f:
    target_img_base64 = base64.b64encode(f.read()).decode('utf-8')

Atc = AntiCAP.Handler(show_banner=True)
result = Atc.ClickIcon_Order(
    order_img_base64=order_img_base64,
    target_img_base64=target_img_base64
)

print(result)

7. 缺口滑块类

缺口图

背景图

# example.py

import base64
import AntiCAP

# 读取滑块图片(小块)
with open("slider.png", "rb") as f:
    target_base64 = base64.b64encode(f.read()).decode('utf-8')

# 读取背景图片(带缺口的大图)
with open("background.jpg", "rb") as f:
    background_base64 = base64.b64encode(f.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)

result = Atc.Slider_Match(target_base64=target_base64,
                          background_base64=background_base64
)

print(result)

8. 阴影滑块类

目标图片

背景图片

# example.py

import base64
import AntiCAP

# 读取滑块图片(小块)
with open("target.jpg", "rb") as f:
    target_base64 = base64.b64encode(f.read()).decode('utf-8')

# 读取背景图片(带缺口的大图)
with open("background.jpg", "rb") as f:
    background_base64 = base64.b64encode(f.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)

result = Atc.Slider_Match(target_base64=target_base64,
                          background_base64=background_base64
)

print(result)

9. 相似度对比

图片1

图片2

# example.py
import base64
import AntiCAP

with open("image1.jpg", "rb") as f:
    image1_base64 = base64.b64encode(f.read()).decode('utf-8')

with open("image2.jpg", "rb") as f:
    image2_base64 = base64.b64encode(f.read()).decode('utf-8')


Atc = AntiCAP.Handler(show_banner=True)

result = Atc.compare_image_similarity(image1_base64=image1_base64, image2_base64=image2_base64)

print("相似度结果:", result)

🐧 QQ交流群


QQGroup

🚬 请作者抽一包香香软软的利群


Ali Wx

💪🏼 模型训练


https://github.com/81NewArk/AntiCAP_trainer

根据自身要求训练模型 无缝衔接下一个 下一个更乖。

😚 致谢名单

这份荣光我不会独享

[1] Ddddocr作者 网名:sml2h3

[2] 微信公众号 OneByOne 网名:十一姐

[3] 苏州大学,苏州大学文正学院 计算机科学与技术学院 张文哲教授

[4] 苏州大学,苏州大学文正学院 计算机科学与技术学院 王辉教授

[5] 苏州市职业大学,苏州大学文正学院 计算机科学与技术学院 陆公正副教授

[6] 武汉科锐软件安全教育机构 钱林松讲师 网名:Backer

📚 参考文献

[1] Github. 2025.03.28 https://github.com/sml2h3

[2] Github. 2025.03.28 https://github.com/2833844911/

[3] Bilibili. 2025.03.28 https://space.bilibili.com/308704191

[4] Bilibili. 2025.03.28 https://space.bilibili.com/472467171

[5] Ultralytics. 2025.03.28 https://docs.ultralytics.com/modes/train/

[6] YRL's Blog. 2025.03.28 https://blog.2zxz.com/archives/icondetection

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anticap-3.1.5.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

AntiCAP-3.1.5-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file anticap-3.1.5.tar.gz.

File metadata

  • Download URL: anticap-3.1.5.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.6

File hashes

Hashes for anticap-3.1.5.tar.gz
Algorithm Hash digest
SHA256 000d8159a62fa9c2d2aa0cbaeb0385bbf83c0ebf03ce1c25428abc289826e820
MD5 fb3f985bbc55906c48c146388b2e460b
BLAKE2b-256 1d01a1963f01fec31b75a0e811b14819c22ff672d4e08bf94d4843edeb1b17f8

See more details on using hashes here.

File details

Details for the file AntiCAP-3.1.5-py3-none-any.whl.

File metadata

  • Download URL: AntiCAP-3.1.5-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.6

File hashes

Hashes for AntiCAP-3.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 96ab7491da8e0404c72e8b99f5387894bb7693c5224f9fb337bfc3801e63baa4
MD5 22a75de4a22252387dacd27e20efddbd
BLAKE2b-256 25eac8f7812c1821ef6fff5179a2d429a1162afa74dd3a8bc9aeabb3d5ae0d6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page