4 个版本
0.2.2 | 2023 年 11 月 16 日 |
---|---|
0.2.1 | 2023 年 9 月 1 日 |
0.2.0 | 2023 年 9 月 1 日 |
0.1.0 | 2023 年 9 月 1 日 |
#390 在 图像
1.5MB
85 代码行
Rust Amazon Captcha 解码器
欢迎使用 Rust Amazon Captcha 解码器,这是一个设计用来解决 Amazon.com CAPTCHA 的工具,无需依赖 Tesseract OCR 或任何外部 OCR 软件。该项目受 gopkg-dev/amazoncaptcha 和 a-maliarov/amazoncaptcha 优秀工作的启发,基于他们的数据集,以未压缩的 bincode 格式呈现。
主要功能
- 闪电般快速:我们的解码器速度非常快,每张图像只需约 7 毫秒即可解决 CAPTCHA。
- 精确度:达到高达 98.5% 的精确度,实现精确的 CAPTCHA 解码。
- 简单性和可维护性:该项目的代码库很小,只有 200 行代码,易于维护和扩展。
工作原理
Amazon CAPTCHA 显示出重复性,字符大小通常小于 32 像素,导致可能的组合数量有限。我们利用包含大多数这些可能性的 dataset.bin
数据集。当字符不匹配时,我们使用相似度比较函数进行准确的解码。
使用示例
use amazon_captcha_rs::Solver;
let image = image::open("captcha.jpg").unwrap();
let solver = Solver::new().unwrap();
let response = solver.resolve_image(&image);
assert_eq!(response, "caggpa");
基准测试
从版本 0.2.1 开始,我们引入了基准测试功能,直接在 Amazon 上评估解决的 CAPTCHA。我们进行了 2000 多次测试,以下结果如下
Resolved: 1990/2020
Precision: 98.51%
您可以使用以下命令运行基准测试
cargo run -r --example benchmark_infinite
此外,我们还对位于 example/dataset
的专有标记数据集进行了第二次基准测试。此数据集仅包含 100 张图片,并产生了以下结果
Solved: 97/99
Precision: 97.98%
Average resolve time: 6.76ms
Total time: 0.75s
使用以下命令执行此基准测试
cargo run -r --example benchmark
变更日志
版本 0.2.1
- 改进了文档
- 添加了更多基准测试选项
版本 0.2.0
- 增强了字母提取方法
- 引入了字母合并(用于第一字母与最后一字母被裁剪在一起的情况)
- 精确度提高到 97%
版本 0.1.0
- 首次发布,精确率为 64%
依赖关系
~13MB
~73K SLoC