URAD-200: Unpaved Road Anomaly Detection Dataset
收藏资源简介:
Pixel-level anomaly detection dataset of **unpaved road surfaces** from Greater Florianópolis, Santa Catarina, Brazil. Frames come from a vehicle frontal-view camera along **three unpaved routes covering ≈24 km (≈8 km each)** and are cropped to the road ahead. The release contains 200 labeled test frames plus 75 nominal references. The intended protocol is unsupervised / one-class visual anomaly detection: a small **nominal** set of defect-free frames is the reference (memory bank), and a labeled **test** set is used for pixel-level and image-level evaluation. ## Contents | Split | Files | Description | | --- | --- | --- | | `testset/im/` | 200 RGB JPEGs | Evaluation frames (`test-0001.jpg` … `test-0200.jpg`) | | `testset/labels/` | 200 PNG masks | Pixel-level binary annotations of surface distress (0 = background, 255 = anomaly) | | `nominalset/im/` | 75 RGB JPEGs | Defect-free reference frames (`nominal-0001.jpg` … `nominal-0075.jpg`) | ## Acquisition Recordings were made in daytime with a dashboard-mounted **GoPro Hero 7 Black** (Linear FOV, ISO 100–400, low sharpness to preserve surface texture); RGB video only. One route was recorded in 2025 and the other two in 2026. The roads were moderately maintained and show mixed distress, including potholes, ruts, washboarding, and cracks. Raw frames are 4000×3000. A fixed region of interest keeps the central-to-near-field road surface: roughly the uppermost 45% (sky and horizon), the bottom 8% (hood), and the lateral margins (~17% left, ~20.5% right) are discarded. The released images and masks are all **2502 × 1407** (≈16:9). ## Splits Per route, the **first kilometre** supplies the 25 nominal frames; the remainder of the route supplies the test frames. The two splits never share the same road segment. | Route | Nominal | Test | | --- | ---: | ---: | | Antônio Carlos | 25 | 50 | | SC-281 Angelina | 25 | 75 | | SC-108 Angelina | 25 | 75 | | **Total** | **75** | **200** | Test distress was annotated as polygons on Roboflow and rasterized to binary PNG masks. **113** test images have annotated distress; **87** have empty (all-zero) masks. The nominal set is image-level only and has no masks. ## Image–mask pairing Each test image and its mask share the same basename: `testset/im/test-NNNN.jpg` ↔ `testset/labels/test-NNNN.png` Nominal frames in `nominalset/im/` have no masks. Source index (IDs are sequential within each campaign): - `test-0001`–`test-0050` / `nominal-0001`–`nominal-0025` — Antônio Carlos - `test-0051`–`test-0125` / `nominal-0026`–`nominal-0050` — SC-281 Angelina - `test-0126`–`test-0200` / `nominal-0051`–`nominal-0075` — SC-108 Angelina ## Typical use 1. Build a reference set from `nominalset/im/` (75 defect-free crops). 2. Score every pixel (or patch) of each `testset/im/` frame by distance to that reference. 3. Evaluate against `testset/labels/` (e.g. pixel-level AUPRO / AUROC) and, at image level, treat empty vs non-empty masks as nominal vs anomalous.




