|
|
--- |
|
|
license: mit |
|
|
language: |
|
|
- en |
|
|
pipeline_tag: image-classification |
|
|
datasets: |
|
|
- DannyLuna/recaptcha-57k-images-dataset |
|
|
tags: |
|
|
- code |
|
|
--- |
|
|
|
|
|
# recaptcha-classification-57k |
|
|
|
|
|
YOLO based image classification model for reCAPTCHA images. This |
|
|
model is used by [`vision-ai-recaptcha-solver`](https://github.com/DannyLuna17/VisionAIRecaptchaSolver) to solve reCAPTCHA challenges. |
|
|
|
|
|
## Model summary |
|
|
|
|
|
- Task: image classification |
|
|
- Format: ONNX (`recaptcha_classification_57k.onnx`) and PyTorch (`recaptcha_classification_57k.pt`) |
|
|
- Architecture: Ultralytics YOLO classification |
|
|
- Labels: 14 classes (13 target classes + `other`) |
|
|
- Trained on a [57k images dataset](https://huggingface.co/datasets/DannyLuna/recaptcha-57k-images-dataset). |
|
|
|
|
|
## Labels |
|
|
|
|
|
Target classes in this model: |
|
|
|
|
|
- bicycle |
|
|
- bridge |
|
|
- bus |
|
|
- car |
|
|
- chimney |
|
|
- crosswalk |
|
|
- fire hydrant |
|
|
- motorcycle |
|
|
- mountain |
|
|
- palm tree |
|
|
- stairs |
|
|
- tractor |
|
|
- traffic light |
|
|
|
|
|
The `other` class represents non-target/background tiles and is intentionally |
|
|
not treated as a match by the solver. |
|
|
|
|
|
## Intended use |
|
|
|
|
|
- Classifying individual reCAPTCHA tile images as part of research or testing |
|
|
workflows. |
|
|
- Integrated use with the [`vision-ai-recaptcha-solver`](https://github.com/DannyLuna17/VisionAIRecaptchaSolver) package. |
|
|
|
|
|
## Training data |
|
|
|
|
|
Trained on the dataset: |
|
|
[`DannyLuna/recaptcha-57k-images-dataset`](https://huggingface.co/datasets/DannyLuna/recaptcha-57k-images-dataset). |
|
|
|
|
|
## Training procedure |
|
|
|
|
|
Trained with Ultralytics YOLO classification and exported to ONNX with dynamic |
|
|
input shapes. |
|
|
|
|
|
## How to use |
|
|
|
|
|
### Ultralytics (recommended) |
|
|
|
|
|
```python |
|
|
from ultralytics import YOLO |
|
|
|
|
|
model = YOLO("recaptcha_classification_57k.onnx", task="classify") |
|
|
results = model("tile.jpg") |
|
|
|
|
|
probs = results[0].probs |
|
|
top1_idx = int(probs.top1) |
|
|
print(model.names[top1_idx], float(probs.top1conf)) |
|
|
``` |
|
|
|
|
|
### vision-ai-recaptcha-solver |
|
|
|
|
|
```python |
|
|
from vision_ai_recaptcha_solver import RecaptchaSolver, SolverConfig |
|
|
|
|
|
with RecaptchaSolver(SolverConfig()) as solver: |
|
|
result = solver.solve( |
|
|
website_key="your_site_key", |
|
|
website_url="https://example.com/your-page-with-recaptcha", |
|
|
) |
|
|
print(result.token) |
|
|
``` |
|
|
|
|
|
## Model files |
|
|
|
|
|
- `recaptcha_classification_57k.onnx` |
|
|
- `recaptcha_classification_57k.pt` |
|
|
|
|
|
## Limitations |
|
|
|
|
|
- The reCAPTCHA system changes over time; accuracy may degrade on new variants. |
|
|
- False positives are possible on visually similar objects. |
|
|
|
|
|
## Ethical considerations |
|
|
|
|
|
Use this model only for lawful, authorized purposes such as research, benchmarking, or |
|
|
testing in controlled environments. |
|
|
|
|
|
## License |
|
|
|
|
|
MIT License. See the repository `LICENSE` file for details. |