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.