--- license: cc-by-nc-sa-4.0 pipeline_tag: object-detection language: - gmy tags: - linear-a - linear-b - aegean-scripts - epigraphy - ancient-languages - object-detection - image-classification - digital-humanities - ocr - yolo - convnext - minoan - mycenaean - greek --- # BOTHROS — Linear A & Linear B sign reading from photographs Weights for the [BOTHROS](https://github.com/jmacdonald263/bothros) pipeline: photograph an ancient Aegean tablet, get the signs on it by catalogue code and reading. **🤗 Try the [live demo](https://huggingface.co/spaces/JMacD263/bothros-demo)** — no install, upload a photo. (Free-tier Space; if it shows "sleeping", give it ~30s to wake.) > **The name** — a [*bóthros*](https://en.wikipedia.org/wiki/Bothros) (βόθρος) is the pit Odysseus digs in > the *Odyssey*, pouring libations so the spirits of the dead rise to speak with him. Apt for a > tool that reads scripts silent for three thousand years. - **`yolo_aegean_unified.pt`** — one YOLO11s detector localising signs for *both* scripts (sign detection is class-agnostic; Linear A and Linear B signs are visually cognate). - **`la_classifier.pth` / `lb_classifier.pth`** — ConvNeXt-Tiny classifiers (AB-codes for Linear A; B-codes + readings for Linear B). - **`lb_class_to_reading.json`** — Linear B B-code → phonetic reading map. **Scope:** this release covers Linear A and Linear B. Cretan Hieroglyphic (a *stronger* internal result, held back over train/test leakage in too small a corpus) and Cypro-Minoan (parked — the comparable Corazza 2022 corpus is non-redistributable) are not in v0.1.0; see the [GitHub repo](https://github.com/jmacdonald263/bothros) for status. ## Results (held-out, leak-free) | metric | Linear A | Linear B | DeepScribe (cuneiform ref) | |---|---|---|---| | classifier oracle top-1 | 79.3% | 64.5% | 74% | | pipeline E2E sign top-1 | 68.7% | 63.8% | 56.3% | | pipeline per-line F1 | 64.9% | 76.5% | — | | CER (lower better) | ~0.48 | 0.44 | 0.669 | *Per-line F1 is at the precise operating points (conf-filter 0.25 LA, n=133 / 0.30 LB, n=320). DeepScribe is a cross-domain reference (different script/corpus, hand-annotated GT, 141 classes vs LA 374 / LB 142), not a head-to-head. Full methodology + reproduction: [GitHub repo](https://github.com/jmacdonald263/bothros).* *Cross-script: a Linear-B-only detector reads Linear A at **60.7% F1 zero-shot** — the basis for shipping one unified `aegean-unified` detector for both scripts.* ## Benchmark vs release weights Two sets ship here. **Benchmark** (`yolo_aegean_unified.pt`, `la_classifier.pth`, `lb_classifier.pth`) — strict held-out split; the numbers above are theirs; use these to reproduce/compare. **Release** (`*_release`) — retrained on the **full data incl. the held-out split**: max capability + broader coverage (LB 148 vs 142 classes), but **NOT benchmarkable** (they have seen the test tablets — cite the benchmark numbers, not these). Fetch with `download_weights.py --release`; run with `bothros read … --release`. ## Usage ```bash pip install bothros # or: pip install -e . from the GitHub repo python3 scripts/download_weights.py python3 -m bothros read your_tablet.jpg --script la # or --script lb ``` ## Licence **CC BY-NC-SA 4.0** — derived from research-only corpora: lineara.xyz + GORILA (Linear A images), **SigLA (Ester Salgarella & Simon Castellan)** + lineara.xyz (Linear A sign boxes + AB-code catalogue), DĀMOS (Federico Aurora) + LinearBExplorer (Linear B). No corpus images are redistributed — only the trained weights. The pipeline source code is MIT (see the GitHub repo). Non-commercial use only. ## Citation DOI [10.5281/zenodo.20746759](https://doi.org/10.5281/zenodo.20746759) · code + docs: https://github.com/jmacdonald263/bothros