gtpbd-eval
GTPBD: A Fine-Grained Global Terraced Parcel and Boundary Dataset — Zhiwei Zhang et al. (2025) (arXiv:2507.14697, 2025)
What this evaluates
Evaluates fine-grained agricultural parcel delineation, boundary detection, and cross-domain generalization on high-resolution remote sensing imagery of terraced terrain. It benchmarks semantic segmentation, edge extraction, and parcel extraction models across multiple geographic domains.
Datasets
Metrics
IoU (primary) — range: [0, 1]
- Intersection over Union: ratio of the intersection area between predicted and ground truth masks to their union area.
F1-score — range: [0, 1]
- Harmonic mean of Precision and Recall: 2 * (Prec * Rec) / (Prec + Rec).
ODS — range: [0, 1]
- Optimal Dataset Scale F1-score: F1 computed using a single threshold optimized over the entire dataset.
OIS — range: [0, 1]
- Optimal Image Scale F1-score: F1 computed using the best threshold per image, then averaged across the dataset.
AP — range: [0, 1]
- Average Precision: area under the precision-recall curve across multiple thresholds.
GOC — range: percent
- Global Over-Classification Error: percentage of parcels incorrectly split or merged, measuring over-segmentation at the object level.
GUC — range: percent
- Global Under-Classification Error: percentage of parcels missed or merged, measuring under-segmentation at the object level.
GTC — range: percent
- Global Total Classification Error: sum of GOC and GUC, representing total object-level classification error.
Input / output format
Input: 512×512 cropped patches of high-resolution remote sensing imagery covering terraced agricultural terrain.
Output: Pixel-level segmentation masks, edge probability maps (binarized), or object-level parcel masks/polygons.
Scoring recipe
def compute_iou_f1(pred_mask, gt_mask, thr=0.5):
pred_bin = (pred_mask >= thr).astype(int)
inter = np.logical_and(pred_bin, gt_mask).sum()
union = np.logical_or(pred_bin, gt_mask).sum()
iou = inter / union if union > 0 else 0.0
tp = inter
fp = np.logical_and(pred_bin, ~gt_mask).sum()
fn = np.logical_and(~pred_bin, gt_mask).sum()
prec = tp / (tp + fp) if (tp + fp) > 0 else 0
rec = tp / (tp + fn) if (tp + fn) > 0 else 0
f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0
return iou, f1
def compute_ods(pred_maps, gt_edges):
# Optimize single threshold over all images to maximize F1
pass
def compute_ois(pred_maps, gt_edges):
# Optimize threshold per image, then average F1
pass
Common pitfalls
- Edge ground truth is synthetically generated via morphological erosion/dilation (1–5 px widths) rather than manually traced boundaries.
- Object-level metrics (GOC/GUC/GTC) measure parcel classification errors (over/under-segmentation) rather than boundary distance errors.
- UDA experiments use specific geographic domain pairs (S, N, G) representing distinct terraced zones, not standard synthetic-to-real splits.
Evidence (verbatim from paper)
To evaluate segmentation accuracy on the GTPBD dataset, we adopt five standard pixel-level metrics commonly used in semantic segmentation and unsupervised domain adaptation (UDA) tasks, including Precision (Prec.), Recall (Rec.), Intersection over Union (IoU), Overall Accuracy (OA) and F1-score;
Citation
@misc{zhang2025gtpbd,
title={GTPBD: A Fine-Grained Global Terraced Parcel and Boundary Dataset},
author={Zhiwei Zhang et al. (2025)},
year={2025},
note={arXiv:2507.14697}
}
1---2name: gtpbd-eval3description: Evaluates fine-grained agricultural parcel delineation, boundary detection, and cross-domain generalization on high-resolution remote sensing imagery of terraced terrain. It benchmarks semantic segmentation, edge extraction, and parcel extraction models across multiple geographic domains. Use when the user wants to benchmark on GTPBD, or asks about evaluating this task. Reports IoU.4---56# gtpbd-eval78> GTPBD: A Fine-Grained Global Terraced Parcel and Boundary Dataset — Zhiwei Zhang et al. (2025) (arXiv:2507.14697, 2025)910## What this evaluates1112Evaluates fine-grained agricultural parcel delineation, boundary detection, and cross-domain generalization on high-resolution remote sensing imagery of terraced terrain. It benchmarks semantic segmentation, edge extraction, and parcel extraction models across multiple geographic domains.1314## Datasets1516- **GTPBD** — total 47537; splits: train (-1), val (-1), test (-1); repo https://github.com/Z-ZW-WXQ/GTPBD1718## Metrics1920- `IoU` **(primary)** — range: [0, 1]21 - Intersection over Union: ratio of the intersection area between predicted and ground truth masks to their union area.22- `F1-score` — range: [0, 1]23 - Harmonic mean of Precision and Recall: 2 * (Prec * Rec) / (Prec + Rec).24- `ODS` — range: [0, 1]25 - Optimal Dataset Scale F1-score: F1 computed using a single threshold optimized over the entire dataset.26- `OIS` — range: [0, 1]27 - Optimal Image Scale F1-score: F1 computed using the best threshold per image, then averaged across the dataset.28- `AP` — range: [0, 1]29 - Average Precision: area under the precision-recall curve across multiple thresholds.30- `GOC` — range: percent31 - Global Over-Classification Error: percentage of parcels incorrectly split or merged, measuring over-segmentation at the object level.32- `GUC` — range: percent33 - Global Under-Classification Error: percentage of parcels missed or merged, measuring under-segmentation at the object level.34- `GTC` — range: percent35 - Global Total Classification Error: sum of GOC and GUC, representing total object-level classification error.3637## Input / output format3839**Input**: 512×512 cropped patches of high-resolution remote sensing imagery covering terraced agricultural terrain.4041**Output**: Pixel-level segmentation masks, edge probability maps (binarized), or object-level parcel masks/polygons.4243## Scoring recipe4445```python46def compute_iou_f1(pred_mask, gt_mask, thr=0.5):47 pred_bin = (pred_mask >= thr).astype(int)48 inter = np.logical_and(pred_bin, gt_mask).sum()49 union = np.logical_or(pred_bin, gt_mask).sum()50 iou = inter / union if union > 0 else 0.051 tp = inter52 fp = np.logical_and(pred_bin, ~gt_mask).sum()53 fn = np.logical_and(~pred_bin, gt_mask).sum()54 prec = tp / (tp + fp) if (tp + fp) > 0 else 055 rec = tp / (tp + fn) if (tp + fn) > 0 else 056 f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 057 return iou, f15859def compute_ods(pred_maps, gt_edges):60 # Optimize single threshold over all images to maximize F161 pass6263def compute_ois(pred_maps, gt_edges):64 # Optimize threshold per image, then average F165 pass66```6768## Common pitfalls6970- Edge ground truth is synthetically generated via morphological erosion/dilation (1–5 px widths) rather than manually traced boundaries.71- Object-level metrics (GOC/GUC/GTC) measure parcel classification errors (over/under-segmentation) rather than boundary distance errors.72- UDA experiments use specific geographic domain pairs (S, N, G) representing distinct terraced zones, not standard synthetic-to-real splits.7374## Evidence (verbatim from paper)7576> To evaluate segmentation accuracy on the GTPBD dataset, we adopt five standard pixel-level metrics commonly used in semantic segmentation and unsupervised domain adaptation (UDA) tasks, including Precision (Prec.), Recall (Rec.), Intersection over Union (IoU), Overall Accuracy (OA) and F1-score;7778## Citation7980```bibtex81@misc{zhang2025gtpbd,82 title={GTPBD: A Fine-Grained Global Terraced Parcel and Boundary Dataset},83 author={Zhiwei Zhang et al. (2025)},84 year={2025},85 note={arXiv:2507.14697}86}87```8889- arXiv: 2507.14697