Indra OCR Vietnamese (v1)
Fine-tuned version of datalab-to/indra-ocr optimized for high-accuracy Vietnamese document text recognition.
This checkpoint is a drop-in replacement for the official indra-ocr pipeline. It retains full architecture compatibility with Datalab's ONNX runtime while significantly boosting accuracy on Vietnamese administrative decrees, academic research publications, and structured forms.
Benchmark & Evaluation
Evaluated on held-out Vietnamese test data across administrative (Chinhphu), academic (VJOL), and real-world forms (Datalab snapshot):
| Metric | Base Model (datalab-to/indra-ocr) |
Fine-Tuned (ANZ-Innovation/indra-v1) |
Improvement |
|---|---|---|---|
| Character Error Rate (CER NFD) | 19.66% | 12.81% | -34.81% relative |
| Exact Line Accuracy | 31.68% | 67.77% | +36.08% absolute |
Training Stats & Efficiency
- Hardware: 1x NVIDIA RTX A4000 16GB
- Throughput: ~971.3 samples/second
- Total Training Duration:
853.2s (14.2 minutes, 12 epochs, best at epoch 10) - Dataset Partitioning:
- Train: 21,030 lines
- Validation: 2,001 lines
- Test (Held-out): 2,001 lines
- Total: 25,032 lines
- Sources:
- Government decrees & administrative documents (Chinhphu): 3,520 lines
- Academic journals & scientific publications (VJOL): 5,180 lines
- Structured documents, forms, resumes & tables: 16,332 lines
Quickstart & Usage
You can use this fine-tuned model directly with the official indra-ocr package or ONNX Runtime:
pip install indra-ocr huggingface_hub
1. In Python with indra_ocr:
from huggingface_hub import snapshot_download
import indra_ocr
import cv2
# Download model weights from Hugging Face
model_dir = snapshot_download(repo_id="ANZ-Innovation/indra-v1")
# Load OCR pipeline
converter = indra_ocr.load(path=model_dir)
# Read image (grayscale)
img = cv2.imread("document_vn.png", cv2.IMREAD_GRAYSCALE)
# Run full OCR (detection + recognition)
result = converter.ocr(img)
for line in result.lines:
print(f" {line.text}")
Technical Details
- Recognizer Architecture: Multi-scale 1D depthwise separable convolutional backbone with 128-channel CTC classifier head (~1.24M parameters).
- Format: High-performance ONNX model (
rec.onnx) with frozen batch normalization and dynamic sequence length masking. - License: Modified OpenRAIL-M (commercial use permitted subject to Indra OCR terms).
Developed by ANZ Innovation.