Invoice Layout Detection — YOLOv8n
Fine-tuned YOLOv8n 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.
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.9600 |
| mAP50-95 | 0.7167 |
| Precision | 0.9502 |
| Recall | 0.9592 |
Validation (best epoch 62)
| Metric | Best | Final (epoch 87) |
|---|
| mAP50 | 0.8787 | 0.8282 |
| mAP50-95 | 0.6253 | 0.6050 |
| Precision | 0.8853 | 0.8439 |
| Recall | 0.7849 | 0.7735 |
Training time: ~41.0 min on RTX 4070 Laptop GPU.
Training configuration
| Parameter | Value |
|---|
| Batch | 8 |
| 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

Precision–Recall

Confusion matrices
| Raw | Normalized |
|---|
 |  |
Validation predictions
| Ground truth | Model predictions |
|---|
 |  |
Training batches (augmented)
Label distribution

Usage
Ultralytics (recommended)
from ultralytics import YOLO
from huggingface_hub import hf_hub_download
weights = hf_hub_download("AvoCahDoe/invoice-layout-yolov8n", "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-yolov8n/weights/best.pt")
results = model.predict("invoice_page.png")
Training reproduction
python scripts/train_comparison.py --models yolov8n
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 ← this model | 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 | 0.8418 | 0.4926 | 0.9033 | 0.8466 | YOLO11m |
| 6 | yolov8m | 0.8388 | 0.5289 | 0.9077 | 0.8580 | YOLOv8m |
License
Apache 2.0