Update README.md
Browse files
README.md
CHANGED
|
@@ -9,4 +9,31 @@ tags:
|
|
| 9 |
|
| 10 |
# Semantic Segmentation in Historical Maps
|
| 11 |
|
| 12 |
-
Pixel-level land cover classification of historical maps from the Swiss Siegfried map series. Trained as part of the course [Research Topics in Cartography](https://karto.ethz.ch/en/education/courses/master/research-topics-cartography.html) at ETH Zurich (Spring 2026).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
# Semantic Segmentation in Historical Maps
|
| 11 |
|
| 12 |
+
Pixel-level land cover classification of historical maps from the Swiss Siegfried map series. Trained as part of the course [Research Topics in Cartography](https://karto.ethz.ch/en/education/courses/master/research-topics-cartography.html) at ETH Zurich (Spring 2026). Source code: [github.com/dav1dclara/cartography-research](https://github.com/dav1dclara/cartography-research).
|
| 13 |
+
|
| 14 |
+
## Models
|
| 15 |
+
|
| 16 |
+
Seven classes, multi-label (a pixel can belong to multiple classes): **River, Forest, Lake, Wetland, Stream, Building, Road**. Each subfolder contains a `model.safetensors` plus a `config.json` carrying model configuration, class names, per-class decision thresholds, and recommended sliding-window patch size (512).
|
| 17 |
+
|
| 18 |
+
| Subfolder | Architecture | Encoder |
|
| 19 |
+
|---|---|---|
|
| 20 |
+
| `unet` | U-Net | EfficientNet-B4 |
|
| 21 |
+
| `unet_scse` | U-Net + SCSE attention | EfficientNet-B4 |
|
| 22 |
+
| `unetpp` | U-Net++ | EfficientNet-B4 |
|
| 23 |
+
| `deeplabv3p` | DeepLabV3+ | EfficientNet-B4 |
|
| 24 |
+
| `fpn` | FPN | EfficientNet-B4 |
|
| 25 |
+
| `pan` | PAN | EfficientNet-B4 |
|
| 26 |
+
|
| 27 |
+
## Usage
|
| 28 |
+
|
| 29 |
+
```bash
|
| 30 |
+
pip install torch segmentation-models-pytorch safetensors huggingface_hub pillow numpy
|
| 31 |
+
|
| 32 |
+
python inference.py \
|
| 33 |
+
--hf-repo davidclara/siegfried-maps-segmentation \
|
| 34 |
+
--model-name unetpp \
|
| 35 |
+
--image map.png \
|
| 36 |
+
--out-dir predictions/
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
`inference.py` is a minimal example: sliding-window prediction with `stride = patch_size // 2`, ImageNet normalization, sigmoid + per-class thresholding, writing one binary PNG per class to `--out-dir`. For the full training and inference pipeline see the [GitHub repository](https://github.com/dav1dclara/cartography-research).
|