Invoice Layout Detection — YOLO11m

Fine-tuned YOLO11m for 8-class invoice document layout region detection (metadata, vendor/customer blocks, table, line items, summary, payment, column headers).

Part of the Hub collection Invoice Layout Extraction.

Property Value
Architecture YOLO11m (20.1M params, 68.0 GFLOPs)
Base weights ultralytics/yolo11m
Input size 1024 px
Classes 8 layout regions
Training epochs 100 (best @ epoch 91)
Optimizer AdamW
Dataset AvoCahDoe/invoice-annotated-bbox
Demo Space AvoCahDoe/invoice-layout-yolov8n-demo
Train / val / test 372 / 14 / 7 pages

Classes

ID Name
0 invoice_metadata
1 vendor_block
2 customer_block
3 table_block
4 line_item
5 summary_block
6 payment_block
7 Column

Metrics

Test split (held-out, 7 images)

Metric Value
mAP50 0.8418
mAP50-95 0.4926
Precision 0.9033
Recall 0.8466

Validation (best epoch 91)

Metric Best Final (epoch 100)
mAP50 0.8493 0.8780
mAP50-95 0.4951 0.4917
Precision 0.8280 0.8682
Recall 0.7991 0.7980

Training time: ~180.4 min on RTX 4070 Laptop GPU.

Training configuration

Parameter Value
Batch 6
Image size 1024
Patience 25
LR (cosine) 0.01 → 0.01
Mosaic 1.0
Mixup 0.15
Copy-paste 0.1
Horizontal flip 0.0

Training results

Learning curves

Training results

Precision–Recall

PR curve

Confusion matrices

Raw Normalized
Confusion matrix Normalized confusion matrix

Validation predictions

Ground truth Model predictions
Val labels Val predictions

Training batches (augmented)

Batch 0 Batch 1 Batch 2
Train batch 0 Train batch 1 Train batch 2

Label distribution

Label distribution

Usage

Ultralytics (recommended)

from ultralytics import YOLO
from huggingface_hub import hf_hub_download

weights = hf_hub_download("AvoCahDoe/invoice-layout-yolo11m", "weights/best.pt")
model = YOLO(weights)
results = model.predict("invoice_page.png", imgsz=1024, conf=0.25)
results[0].show()

Load from Hub by repo id

from ultralytics import YOLO

model = YOLO("hf://AvoCahDoe/invoice-layout-yolo11m/weights/best.pt")
results = model.predict("invoice_page.png")

Training reproduction

python scripts/train_comparison.py --models yolo11m

Repository layout

weights/best.pt          # Best checkpoint (use this)
weights/last.pt          # Last epoch checkpoint
config/                  # Training configuration
metrics/                 # Per-epoch and summary metrics
assets/                  # Plots and visualizations

Model comparison (test split)

All six architectures fine-tuned on the same invoice layout dataset.

Rank Model test mAP50 test mAP50-95 Precision Recall Hub
1 yolov8n 0.9600 0.7167 0.9502 0.9592 YOLOv8n
2 yolov8s 0.9006 0.6739 0.9419 0.8677 YOLOv8s
3 yolov8x 0.8757 0.6224 0.9144 0.8735 YOLOv8x
4 yolo11x 0.8738 0.6127 0.9484 0.8530 YOLO11x
5 yolo11m ← this model 0.8418 0.4926 0.9033 0.8466 YOLO11m
6 yolov8m 0.8388 0.5289 0.9077 0.8580 YOLOv8m

License

Apache 2.0

Downloads last month
38
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train AvoCahDoe/invoice-layout-yolo11m

Space using AvoCahDoe/invoice-layout-yolo11m 1

Collection including AvoCahDoe/invoice-layout-yolo11m

Evaluation results