CrackLite is a lightweight binary segmentation model for concrete crack images. The released code implements the manuscript architecture with Direction-Guided Topology Aggregation (DGTA), Normal-Calibrated Local Geometry Refinement (NLGR), and training-only centerline and boundary auxiliary heads.
The repository does not redistribute trained weights. Users can train a model
with python train.py or place an externally provided checkpoint under
outputs/checkpoint/checkpoint_best.pth.tar.
CrackLite is intended for research and prototyping in pixel-level concrete crack segmentation. Typical use cases include bridge, pavement, tunnel, retaining wall, and other concrete surface inspection images where thin crack continuity and local boundary quality matter.
The model should not be used as the sole basis for safety-critical maintenance, load-rating, or public-risk decisions. Field deployment should include qualified human review, site-specific calibration, and independent validation.
The manuscript evaluates CrackLite on:
| Dataset | F1 | mIoU |
|---|---|---|
| Bridge Crack | 0.7567 | 0.8001 |
| Crack500 | 0.7834 | 0.8037 |
| Concrete-Crack-Segmentation | 0.8519 | 0.8684 |
| PCHUN (zero-shot) | 0.3851 | 0.6155 |
The reported deployment profile is 3.3219M parameters and 47.2504 GFLOPs. On Jetson Orin NX 8GB, CrackLite reaches 132.825 ± 2.600 ms latency, 7.529 FPS, and 0.735 GB peak memory for 1024 x 1024 FP32 PyTorch inference.
- DGTA uses a discrete direction set and may be less adaptive at highly irregular junctions or abrupt orientation changes.
- Extremely faint crack tips, severe blur, stains, joints, and elongated rough texture can still cause false negatives or false positives.
- Topology-sensitive metrics should be interpreted together with F1/Dice and mIoU because no single metric captures overlap, connectivity, and boundaries.
- Embedded-device measurements are hardware- and software-specific and should be reproduced on the target deployment environment.
When publishing results, report the Git commit hash, dataset split, input size, threshold, checkpoint path or hash, PyTorch/CUDA versions, GPU model, random seed, and exact training/evaluation command.