Latest Threat Research:Malicious dYdX Packages Published to npm and PyPI After Maintainer Compromise.Details
Socket
Book a DemoInstallSign in
Socket

captcha-recognizer

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

captcha-recognizer

滑块验证码识别

pipPyPI
Version
0.7.2
Maintainers
1

简体中文 | English

Captcha-Recognizer

Captcha-Recognizer是一个易用的通用滑块验证码识别库,通过深度学习训练通用的缺口检测模型,基于训练的结果,识别出验证码中的滑块缺口位置,并返回缺口的坐标与可信度。

支持的验证码类型

  • 单缺口验证码背景图
  • 多缺口验证码背景图 (1.0.0及之后版本移除)
  • 验证码全图(图片包含滑块和背景图)

在线演示

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/online-demo.gif

版本要求

  • Python >= 3.6.0

  • opencv-python

  • shapely

  • onnxruntime

  • Works on Linux, Windows, MacOS

使用方式

Pypi

从 Pypi 安装

pip install captcha-recognizer

HTTP API

请移步: captcha-api

使用示例

支持以下类型验证码的识别

  • 单缺口验证码背景图(不含滑块的背景图)
  • 单缺口、多缺口验证码全图(图片含滑块和背景图)

单缺口验证码背景图 识别示例

示例图 4

尺寸 672*390

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/example4.png

识别效果示例图4

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/predict4.png

单缺口、多缺口验证码全图 识别示例

示例图 8

尺寸 305*156

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/example8.png

识别效果示例图 8

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/predict8.png

代码示例

from captcha_recognizer.slider import Slider

# source传入待识别图片,支持数据类型为 Union[str, Path, bytes, np.ndarray]
# show为布尔值,默认值为False, 为True表示展示图片识别效果,线上环境请缺省,或设置为False
box, confidence = Slider().identify(source=f'images_example/example8.png', show=True)
print(f'缺口坐标: {box}')
print('置信度', confidence)

注意事项

偏移量

某些种类的滑块验证码,滑块初始位置存在一定偏移,以下面图中的滑块初始位置为例:

示例图 9

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/offset2.png

如示例图9中:

  • 第一条黑线位置为滑块初始位置,距离图片边框有大概有8个像素的偏移量(offset为8)
  • 识别结果的缺口坐标为 [x1, y1, x2, y2] 对应缺口的左上角和右下角坐标(坐标原点为图片左上角)
  • 第二条黑线的X轴坐标值对应缺口识别结果左上角的X轴坐标值,此处值为154(x1为154)
  • 因此实际滑块的距离为 x1-offset (154-8=146)
  • 也就是说,实际的滑块距离为缺口的x1值减去滑块距离图片边框的偏移量(offset)

获取偏移量

通常某一类的滑块验证码,滑块偏移量是固定的,可直接通过截图工具或测量工具获取 如果是动态的偏移量,可通过 identify_offset 方法获取偏移量

from captcha_recognizer.slider import Slider

offset, confidence = Slider().identify_offset(source='example.png')
print(f'偏移量: {offset}')
print('置信度', confidence)

图片缩放

某些验证码,前端渲染时会对图片进行缩放,因此实际的滑块距离也要按照图片缩放比例进行计算。

示例图 10

https://captcha-slider.oss-cn-beijing.aliyuncs.com/slider/rendered_size.png

opencv-python与numpy的兼容性问题

兼容版本1:

opencv-python==4.12.0.88
numpy==2.2.6

兼容版本2:

opencv-python==4.8.0.74
numpy==1.23.0

更多兼容的版本请自行尝试

了解更多

点击此处进入DeepWiki文档

DeepWiki文档内可通过底部AI对话框进行交流,自由了解本项目。

版本历史:

Pypi 版本历史 Github 版本历史

项目维护

  • 感谢 Star 支持;
  • 项目长期维护;
  • 有任何疑问或问题,欢迎提issue

更多联系方式

免责声明

本项目不针对任何一家验证码厂商,项目所有内容仅供学习交流使用,不用于其他任何目的,严禁用于非法用途。

许可证

MIT license

感谢你的支持

Stargazers

Stargazers repo roster for @chenwei-zhao/captcha-recognizer

Forkers

Forkers repo roster for @chenwei-zhao/captcha-recognizer

Star History

Star History Chart

版本历史

1.0.2 (2026-01-28)

  • 支持传入base64编码的图片 (Support passing in base64 encoded images)

1.0.1 (2025-09-29)

  • 提高默认的置信度阈值 (Improve default confidence threshold)

1.0.0 (2025-09-23)

  • 提高模型泛化能力 (Improve model generalization)
  • 优化识别逻辑 (Optimize recognition logic)

1.0.0-Beta1 (2025-09-15)

  • 更新README (Update README)

1.0.0-Beta (2025-09-15)

  • 移除V1版本 (V1 Removed)

0.10.0 (2025-08-19)

  • 移除旧版模型 (Remove old model)

0.9.0 (2025-08-19)

  • 新增V2增强版模型 (V2 Enhanced Model)

0.9.0-Beta (2025-08-06)

  • 新增V2增强版模型 (V2 Enhanced Model)

0.8.0 (2025-07-16)

  • 依赖最小化 (Dependency Minimization)
  • 将ultralytics库替换为cv2

0.7.3 (2025-06-24)

  • 修复README中示例错误 (Fix README example error)

0.7.2 (2025-05-30)

  • 优化单缺口图片的识别逻辑 (Optimize the logic of single-gap image recognition)

0.7.1 (2025-03-24)

  • 提交兼容性 (Compatibility)

0.7.0 (2025-02-12)

  • 优化滑块截图的识别逻辑 (Optimize the logic of sliding block screenshot recognition)

0.6.0 (2024-11-13)

  • 增强模型泛化能力 (Enhance model generalization)

0.5.0 (2024-11-06)

  • 新增功能:基于验证码截图识别滑块距离 (Added support for recognizing the distance of the sliding block in screenshot)

0.4.0 (2024-10-10)

  • 增强模型泛化能力 (Enhance model generalization)

0.3.3 (2024-09-29)

  • 添加HTTP API文档链接 (Add HTTP API docs link)

0.3.2 (2024-09-24)

  • 修复图片链接错误 (Fix image link)

0.3.1 (2024-09-24)

  • 添加一些注意事项 (Add some notes)

0.3.0 (2024-09-23)

  • 支持截图类型的验证码识别 (Screenshot support)

0.2.1 (2024-09-10)

  • Fix example image link

0.2.0 (2024-09-10)

  • Improve the captcha compatibility of the library

0.1.6 (2024-09-06)

  • Update README

0.1.5 (2024-09-06)

  • Compress sample picture

0.1.4 (2024-08-30)

  • Handle the case where the result is empty
  • Split workflow to two jobs

0.1.3 (2024-08-26)

  • Optimize example image css in README

0.1.2 (2024-08-26)

  • Update example image url in README

0.1.1 (2024-08-26)

  • Update README

0.1.0 (2024-08-23)

  • First release.

Keywords

captcha

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts