Object Detection
ultralytics
English
yolov12
crack-detection
wall-crack
attention-mechanism
ema-attention
ablation-study
Instructions to use ShallowDusty/argus-yolov12-crack with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use ShallowDusty/argus-yolov12-crack with ultralytics:
from ultralytics import YOLOvv12 model = YOLOvv12.from_pretrained("ShallowDusty/argus-yolov12-crack") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Argus YOLOv12 Crack β Pretrained Weights
This repository hosts the pretrained weights for Argus YOLOv12 Crack, an undergraduate-thesis-stage research project on wall crack detection.
Recommended configuration: YOLOv12n + EMA(P3+P4, factor=16).
Code, training configs, reproduction guide, and Web demo: https://github.com/Shallow-dusty/Argus-YOLOv12-Crack
Layout
.
βββ kaggle/ # Paper-headline recommended weights (Kaggle P100, n=3)
β βββ ema-p34-factor16-seed0.pt
β βββ ema-p34-factor16-seed1.pt
β βββ ema-p34-factor16-seed43.pt
βββ 3070/ # Cross-platform check (RTX 3070 Laptop, n=3)
β βββ ema-p34-factor16-seed0.pt
β βββ ema-p34-factor16-seed1.pt
β βββ ema-p34-factor16-seed43.pt
βββ cross-domain/ # T6 cross-domain pressure test (single seed each)
β βββ ema-p34-factor16-crack500.pt
β βββ ema-p34-factor16-deepcrack.pt
βββ baseline/ # YOLOv12n baseline (no attention) for reference
βββ yolov12n-baseline-kaggle.pt
βββ yolov12n-baseline-3070-seed0.pt
Headline numbers
Primary dataset: wall_crack_v2_split (2366 / 295 / 297, single class crack,
CC BY 4.0).
| Setting | Configuration | mAP50 |
|---|---|---|
| Recommended Β· Kaggle n=3 mean Β± std | YOLOv12n + EMA(P3+P4, factor=16) |
0.73070 Β± 0.00672 |
| Recommended Β· RTX 3070 n=3 mean Β± std | same | 0.73689 Β± 0.00400 |
| Baseline | YOLOv12n baseline |
0.70561 |
Full data: see docs/COMPARISON_TABLE.md
in the GitHub repo.
Quick load (Ultralytics)
from huggingface_hub import hf_hub_download
from ultralytics import YOLO
weights = hf_hub_download(
repo_id="ShallowDusty/argus-yolov12-crack",
filename="kaggle/ema-p34-factor16-seed0.pt",
)
model = YOLO(weights)
results = model.predict("path/to/your/wall_image.jpg")
Training recipe (summary)
- Backbone: YOLOv12n + EMA attention inserted at P3 + P4
- EMA factor (channel grouping divisor): 16
- Epochs: 200 with
patience=50early stopping - Image size: 640
- Optimizer: SGD, lr0=0.01, momentum=0.937, weight_decay=5e-4
- Batch: 16 (Kaggle P100) / 32 (RTX 3070 Laptop)
- Framework: ultralytics 8.4.21, torch 2.6.0
Full configs: configs/ema-p34-factor16.yaml
and the auto-resolved data.yaml produced by src/train.py.
Limitations
- Single-class wall-crack dataset (< 3000 images); +2~+3 pp mAP50 over baseline.
- T6 cross-domain rankings (crack500, deepcrack) are unstable and do not establish EMA superiority across datasets.
- Inference latency / deployment optimization (TensorRT, quantization) are out of scope.
Citation
@software{argus_yolov12_crack_2026,
author = {Shallow},
title = {{Argus YOLOv12 Crack: Wall Crack Detection with YOLOv12n + EMA Attention}},
year = {2026},
url = {https://github.com/Shallow-dusty/Argus-YOLOv12-Crack},
license = {MIT}
}
License
MIT License Β© 2026 Shallow.
- Downloads last month
- 307