Instructions to use BDRC/TiBLA-RTDETR with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use BDRC/TiBLA-RTDETR with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("BDRC/TiBLA-RTDETR") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
File size: 5,639 Bytes
90136af dceae78 90136af dceae78 90136af dceae78 90136af dceae78 90136af dceae78 90136af c3d1821 51a8f6f dceae78 90136af dceae78 90136af dceae78 90136af dceae78 90136af dceae78 90136af dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 c3d1821 dceae78 90136af dceae78 90136af | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | ---
license: agpl-3.0
tags:
- object-detection
- document-layout-analysis
- tibetan
- rt-detr
- tibla
library_name: ultralytics
pipeline_tag: object-detection
datasets:
- BDRC/TiBLAD
---
# TiBLA-RTDETR
**Primary checkpoint of TiBLA (Tibetan Book Layout Analysis)** — an RT-DETR-l
detector for the page layout of modern Tibetan books (headers, text area,
footers, footnotes).
- **Base model / provenance:** [RT-DETR-l](https://docs.ultralytics.com/models/rtdetr/)
(Ultralytics), fine-tuned on the leak-free **v4** `tam2col` split of TiBLAD.
- **License:** AGPL-3.0 (inherited from the Ultralytics RT-DETR weights).
- **Dataset:** [BDRC/TiBLAD](https://huggingface.co/datasets/BDRC/TiBLAD)
- **Paper:** [buda-base/papers](https://github.com/buda-base/papers) (`papers/2026-tibetan-book-layout`) — *arXiv link forthcoming*
- **Code:** [github.com/buda-base/tibla](https://github.com/buda-base/tibla)
> This checkpoint is **seed 0**. Across five training seeds the paper reports
> mean canonical F1 **0.961 ± 0.009** (unified scorer, per-seed operating point);
> at the validation-selected operating point used in the table below this seed
> scores **0.952**.
## Task
A **4-class** detector — `header`, `text-area`, `footer`, `footnote` — kept as
four classes at training time. Evaluation folds them into a **3-class canonical
scheme**: `header`+`footer` are combined into one `header-footer` class (matched
individually, merged losslessly afterwards), `text-area` is merged to a single
page/column envelope as a post-processing step (two boxes only on genuine
two-column pages), and `footnote` is left as-is. All numbers below are in that
canonical space, on the leak-free TiBLAD **v4** 833-page test set, unified scorer
(pycocotools bbox mAP 0.50:0.05:0.95; F1 by greedy IoU≥0.5 at the best-mean-F1
operating point).
## Inference
```python
# pip install ultralytics
from ultralytics import RTDETR
model = RTDETR("tibetan_book_layout.pt")
# recommended per-class confidence thresholds (see below); predict at the floor
res = model.predict("page.jpg", imgsz=1024, conf=0.25)[0]
TH = {0: 0.60, 1: 0.55, 2: 0.25, 3: 0.60} # header / text-area / footnote / footer
for cls, conf, xywhn in zip(res.boxes.cls.tolist(), res.boxes.conf.tolist(),
res.boxes.xywhn.tolist()):
if conf >= TH[int(cls)]:
print(res.names[int(cls)], round(conf, 3), [round(v, 4) for v in xywhn])
```
A ready-made `infer.py` (batch, YOLO-format output) is included in this repo.
**Recommended confidence thresholds** (per-class max-F1 operating points):
`header`/`footer` ≈ **0.60**, `text-area` ≈ **0.55**, `footnote` ≈ **0.25**.
Footnote is deliberately kept low (recall-safe): the v4 test has only 38 footnote
GT boxes, so a low threshold keeps recall near 1.0. Raising `header`/`footer` from
0.25 to 0.60 lifts precision +0.028 for a −0.014 recall cost; raising `text-area`
from 0.25 to 0.55 (native) lifts precision +0.007 at no recall cost. If you prefer
one global knob, the single validation-selected best-mean-F1 confidence is **0.64**
(costs ≈0.008 mean F1 vs per-class tuning).
## Evaluation (TiBLAD v4, 833-page test)
| metric | **TiBLA-RTDETR** | TiBLA-PP-DocLayout-L | TiBLA-RFDETR |
|---|---|---|---|
| license | **AGPL-3.0** | Apache-2.0 | Apache-2.0 |
| base model | **RT-DETR-l (Ultralytics)** | PP-DocLayout-L (PaddleOCR, RT-DETR-L) | RF-DETR-L (Roboflow) |
| mean F1 (canonical 3-class) | **0.952** | 0.955 | 0.921 |
| header-footer F1 | **0.954** | 0.953 | 0.947 |
| text-area F1 | **0.999** | 0.998 | 0.996 |
| footnote F1 | **0.902** | 0.914 | 0.821 |
| mean AP@0.50 | **0.974** | 0.959 | 0.925 |
| mean AP@[0.50:0.95] | **0.786** | 0.781 | 0.667 |
| shared-class mAP@[.50:.95] (DocLayNet-aligned) | **0.650** | 0.641 | 0.604 |
| Hidden Trespass — header/footer | **0.009** | 0.004 | 0.021 |
| Hidden Trespass — footnote | **0.043** | 0.037 | 0.178 |
| COTe (Trespass) | **0.975 (0.001)** | 0.978 (0.000) | 0.974 (0.002) |
| operating confidence | **0.64** | 0.61 | 0.47 |
*"operating confidence" is the single global best-mean-F1 confidence, selected on
the leak-free validation split and frozen for test (no test-set tuning). COCO AP
rows are threshold-free (all detections above the fixed 0.05 floor).*
**Hidden Trespass** = peripheral (header/footer/footnote) ground-truth **area**
that survives in the *actual OCR body crop* `C = E \ P`, where `E` is the predicted
`text-area` envelope and `P` is the union of the predicted peripheral boxes the
pipeline subtracts; area-based, micro-averaged over the test set. Lower is better
(less peripheral text bled into the OCR region). Formal definition in the
[paper](https://github.com/buda-base/papers).
## Which checkpoint to pick
| checkpoint | license | mean F1 | shared mAP | footnote HT |
|---|---|---|---|---|
| **TiBLA-RTDETR** (primary) | AGPL-3.0 | 0.952 | 0.650 | 0.043 |
| TiBLA-PP-DocLayout-L | Apache-2.0 | 0.955 | 0.641 | 0.037 |
| TiBLA-RFDETR | Apache-2.0 | 0.921 | 0.604 | 0.178 |
RT-DETR-l leads on mAP, shared-class mAP and the 5-seed mean F1 (0.961 ± 0.009),
but its weights are AGPL-3.0 (Ultralytics). If you need a permissive license,
PP-DocLayout-L is an Apache-2.0 match (statistically on par on F1); RF-DETR is a
lighter PyTorch-native Apache-2.0 option.
## Citation
```bibtex
@misc{tibla2026,
title = {TiBLA: Tibetan Book Layout Analysis},
author = {Buddhist Digital Resource Center (BDRC)},
year = {2026},
howpublished = {\url{https://github.com/buda-base/tibla}},
note = {arXiv link forthcoming}
}
```
|