SLANeXt_wired_bo_ft
Finetuned SLANeXt_wired for wired bordered administrative tables (Bulletin Officiel / legal gazette style). Trained exclusively on public table datasets โ no BO ground truth in the training mix.
| Base model | PaddlePaddle/SLANeXt_wired |
| Algorithm | SLANeXt + Vary_VIT_B backbone |
| Task | Wired table structure recognition โ HTML |
| Resolution | 512ร512 |
| Training run | bo_ft_gpu_v7 |
| Pipeline | PaddleOCR Table Recognition v2 (wired-only) |
Model description
This checkpoint is the table structure component of the TableDetectionRec pipeline. It predicts HTML table structure (<table>, <tr>, <td>, spans) from cropped table images. Companion models (not included here) handle cell detection (RT-DETR-L_wired_table_cell_det) and OCR (PP-OCRv4).
Design choices:
- Wired-only โ skips wired/wireless classification (
force_wired: true) - Dynamic orientation โ auto-detect 0ยฐ/90ยฐ/180ยฐ/270ยฐ at inference
- Encoder freeze โ first 10 of 12 Vary_VIT_B blocks frozen during finetune
- Early stopping โ patience=5 on validation structure accuracy
Training curriculum
| Stage | Name | Dataset(s) | Weight | Train cap | Best val acc | Best epoch | Early stop |
|---|---|---|---|---|---|---|---|
| 1 | structure | FinTabNet | 40% | 20,000 | 69.3% | 15 | yes |
| 2 | geometry | PubTables (filtered) | 30% | 40,000 | 95.0% | 6 | yes |
| 3 | relations | SciTSR | 15% | 8,000 | 95.0% | 6 | yes |
| 4 | noise | ICDAR + Marmot | 15% | 7,000 | 95.0% | 6 | yes |
Hyperparameters
| Parameter | Value |
|---|---|
| Batch size | 8 |
| Learning rate | 1e-4 (AdamW + cosine) |
| Max epochs / stage | 20 |
| Val split | 5% |
| Seed | 42 |
| Backbone freeze | 10 / 12 blocks |
Augmentations
Border removal, spacing jitter, ยฑ2ยฐ rotation, text stretch, line dropout, brightness/contrast jitter.
Dataset statistics (profiling sample)
| Dataset | Samples profiled | Mean cells | Median cells | Max cells | Span fraction |
|---|---|---|---|---|---|
| FinTabNet | 500 | 16.0 | 16 | 16 | 0.0 |
| PubTables | 500 | 5.0 | 5 | 5 | 1.0 |
| SciTSR | 50 | 4.0 | 4 | 4 | 0.0 |
| ICDAR | 100 | 19.3 | 18 | 30 | 0.0 |
| Marmot | 2,000 | 16.0 | 16 | 16 | 0.0 |
Repository layout
inference/
inference.pdiparams # Paddle inference weights (~348 MB)
inference.json # Model graph
inference.yml # PaddleOCR deploy config
config.json # Pre/post-processing config
plots/
01_train_val_loss.svg
02_table_acc.svg
04_stage_timeline.svg
metrics.json # Full training metrics
Usage
TableDetectionRec pipeline
# TableDetectionRec/config/table_recognition.yaml
pipeline:
force_wired: true
table_structure_model_dir: finetune/models/best/inference
cd TableDetectionRec
python scripts/02_run_table_recognition.py --run-dir <run_dir> --device gpu:0
PaddleOCR standalone
from paddleocr import TableStructureRecognition
model = TableStructureRecognition(
model_name="SLANeXt_wired",
model_dir="./inference", # path to downloaded inference/ folder
)
output = model.predict(input="table_crop.png", batch_size=1)
for res in output:
res.print()
res.save_to_json("./output/res.json")
Download from Hub
huggingface-cli download AvoCahDoe/SLANeXt_wired_bo_ft --local-dir ./SLANeXt_wired_bo_ft
Evaluation metrics (full)
See metrics.json for stage results and dataset profiling stats.
{
"stages": [
{
"stage": 1,
"name": "structure",
"best_acc": 0.692999999307,
"best_epoch": 15,
"stopped_early": true,
"n_train": 19000
},
{
"stage": 2,
"name": "geometry",
"best_acc": 0.95,
"best_epoch": 6,
"stopped_early": true,
"n_train": 38000
},
{
"stage": 3,
"name": "relations",
"best_acc": 0.95,
"best_epoch": 6,
"stopped_early": true,
"n_train": 845
},
{
"stage": 4,
"name": "noise",
"best_acc": 0.95,
"best_epoch": 6,
"stopped_early": true,
"n_train": 447
}
],
"dataset_stats": {
"fintabnet": {
"dataset": "fintabnet",
"n_samples": 500,
"cell_count_mean": 16.0,
"cell_count_median": 16.0,
"cell_count_max": 16,
"span_fraction": 0.0
},
"pubtables": {
"dataset": "pubtables",
"n_samples": 500,
"cell_count_mean": 5.0,
"cell_count_median": 5.0,
"cell_count_max": 5,
"span_fraction": 1.0
},
"scitsr": {
"dataset": "scitsr",
"n_samples": 50,
"cell_count_mean": 4.0,
"cell_count_median": 4.0,
"cell_count_max": 4,
"span_fraction": 0.0
},
"icdar": {
"dataset": "icdar",
"n_samples": 100,
"cell_count_mean": 19.26,
"cell_count_median": 18.0,
"cell_count_max": 30,
"span_fraction": 0.0
},
"marmot": {
"dataset": "marmot",
"n_samples": 2000,
"cell_count_mean": 16.0,
"cell_count_median": 16.0,
"cell_count_max": 16,
"span_fraction": 0.0
}
},
"exported": true,
"inference_dir": "/workspace/JuridicLayout/TableDetectionRec/finetune/models/best/inference"
}
Limitations
- Trained on public table datasets only; BO-specific layout may still need domain validation.
- Structure model is one piece of the full table pipeline (cells + OCR required for end-to-end extraction).
- Wireless / borderless tables are out of scope (wired-only configuration).
Citation
@misc{slanext_wired_bo_ft,
author = {AvoCahDoe},
title = {SLANeXt_wired_bo_ft: Finetuned wired table structure model},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/AvoCahDoe/SLANeXt_wired_bo_ft}}
}
License
Apache 2.0 (inherits from PaddlePaddle/SLANeXt_wired).
Model tree for AvoCahDoe/SLANeXt_wired_bo_ft
Base model
PaddlePaddle/SLANeXt_wiredSpace using AvoCahDoe/SLANeXt_wired_bo_ft 1
Evaluation results
- structure_acc_stage4 on mixed-public-tablesself-reported0.950