This project implements hyperbola extraction on GPR patch images: a ResNet50-based segmentation model that splits hyperbola (foreground) from background, similar to the two-part split used in the /resnet folder (e.g. best_on_folder7).
- Backbone: ResNet50 (1‑channel input, pretrained on ImageNet by default).
- Head: Decoder producing a binary mask (hyperbola vs background) per patch.
- Input: PNG GPR patches named like
*_patch*.pngwith YOLO‑style label files*_patch*.txt. Labels are converted to ellipse masks inside the bounding box for training. - Output:
- Trained checkpoints under
output_dir/exp_<id>/fold_k/. - Segmentation mask (extracted hyperbola region); optional visualizations: raw patch, GT mask, predicted mask.
- Trained checkpoints under
The command‑line interface mirrors the existing /resnet project so you can reuse scripts and habits with minimal changes.
See INSTALLATION.md for environment setup, COMMANDS.md for ready‑to‑run commands, and MANUAL.md for a full workflow description.
These are rough targets for reasonable extraction (segmentation) (numbers will vary by dataset and split):
| Metric | Typical acceptable | Good models (approx.) |
|---|---|---|
train_loss |
< 0.1 | |
val_loss |
< 0.1 | |
train_iou |
> 0.40 | 0.5 – 0.8 |
val_iou |
> 0.35 | 0.5 – 0.8 |
If train_iou and val_iou climb into the 0.5–0.8 range without val_loss diverging, the model is usually extracting the hyperbola region reliably.