/ Модель

Характеристики

Лицензия
Своя лицензия
Базовая модель
indic-ocr
Опубликована
11 сен 2026

indic-ocr-mlx-bf16

Описание изображенийИзображение → текст

IndicBlockOCR MLX BF16 распознаёт текст на изображениях документов на английском и индийских языках, работая на Apple Silicon через MLX.

4скачиваний за 30 дней0лайковвеса обновлены11 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

IndicBlockOCR MLX BF16 — экспорт распознавателя документов IndicOCR, подготовленный для Apple Silicon и ускорения на GPU Metal. Модель основана на Qwen3.5-0.8B и использует словарь Sarvam-30B на 151 тысячу токенов, охватывающий 22 официальных индийских письменности, английский язык, числа и математические обозначения.

Модель предназначена для распознавания текста на изображениях документов и текстовых областей, в том числе на индийских языках. В описанном двухэтапном конвейере обнаружение и упорядочивание блоков выполняет отдельный PP-DocLayoutV3, а эта модель отвечает за транскрипцию текста. На наборе из 50 фрагментов документов авторы сообщают CER 1,69% и WER 4,10% относительно PyTorch-эталона; точное совпадение строк составило 72%.

Это вариант BF16 размером 1,6 ГБ; в бенчмарке авторов обработка занимала 683 мс на фрагмент на Metal GPU. Для запуска требуется экосистема MLX на Apple Silicon. Модель является дообучением bodhan-ai/indic-ocr; в метаданных лицензия указана как other, без уточнения условий.

Сценарии применения

  • распознавание печатного текста в индийских документах
  • транскрибирование рукописных фрагментов на поддерживаемых индийских языках
  • извлечение английского текста из изображений документов
  • распознавание чисел и математических обозначений в документе
  • транскрибирование отдельных строк или областей документа

Ограничения

Для запуска нужен Apple Silicon и MLX; обнаружение макета в описанном конвейере использует отдельный PP-DocLayoutV3 на PyTorch MPS. На тесте из 50 фрагментов точное совпадение составило 72%, хотя 94% фрагментов имели CER ниже 5%; условия лицензии в метаданных обозначены только как other.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

IndicOCR MLX BF16 (IndicBlockOCR)

This repository provides the full-precision BF16 (Bfloat16) reference MLX export of IndicBlockOCR (Stage 2 of bodhan-ai/indic-ocr), optimized for Apple Silicon Metal GPUs (M1/M2/M3/M4).

The recognizer architecture is based on Qwen3.5-0.8B with a 151k-token Sarvam-30B vocabulary covering 22 official Indic scripts, English, numbers, and mathematical notation.

Precision Variants

Empirical Parity and Accuracy Benchmarks

Evaluated against the PyTorch reference baseline on 50 real-world Indic document crops from ai4bharat/indicdlp.

Stage 2 Recognition Parity (BF16 vs PyTorch Baseline)

MetricPyTorch Baseline (CPU)IndicOCR MLX BF16 (Metal GPU)Parity Delta / Speedup
Character Error Rate (CER)Reference (0.0)0.0169 (1.69%)Reference fidelity
Word Error Rate (WER)Reference (0.0)0.0410 (4.10%)Reference readability
Exact Match Rate100.0%72.0%See analysis below
Crops with CER <= 5%100.0%94.0%High fidelity
Crops with CER <= 10%100.0%94.0%Production-ready
Crops with CER <= 20%100.0%98.0%Production-ready
Latency per Crop9,768.58 ms683.05 ms14.30x Speedup
Throughput15.3 chars/sec218.9 chars/sec14.3x Throughput
Memory Footprint~1.7 GB~1.6 GBReference size Reduction

Stage 1 Layout Detection (PP-DocLayoutV3 on PyTorch MPS)

Stage 1 runs with PyTorch on Apple's MPS backend. The recognizer uses MLX, but the layout detector does not: this project has no MLX PP-DocLayoutV3 runtime, and converting the layout tensors alone does not improve inference.

MetricScoreNote
Mean IoU0.9983Near-perfect bounding box alignment
Label Match Rate100.0%37 document class categories identical
Reading Order Match Rate100.0%Pairwise reading order identical
Detection Latency156.61 ms3.85x Speedup vs PyTorch CPU (603 ms)

Understanding Exact Match vs Character Error Rate

While the Exact Match rate is 72.0%, the mean Character Error Rate is only 1.69% and 94.0% of crops have less than 5% CER. Exact Match is an all-or-nothing metric: on long paragraph crops (e.g. 600+ characters), a single whitespace difference or character substitution drops the entire crop score to 0.

Autoregressive vision-language decoding on Apple Silicon Metal GPU uses different matrix multiplication tiling, reduction order, and floating-point accumulation compared to NVIDIA CUDA kernels, causing tiny logit variations (~1e-4) that can flip argmax selections at near-tie probability boundaries.

Quickstart

1. Installation

pip install -r requirements.txt

2. Interactive Gradio Web Studio

Launch the visual interface with interactive bounding box hover tooltips, reading-ordered Markdown preview, and JSON inspection:

python app.py

Then open http://127.0.0.1:7860 in your browser.

3. End-to-End Python Pipeline

Run the full two-stage document pipeline (Stage 1 Layout Detection + Stage 2 Text Transcription):

from pipeline import IndicOCRPipeline

# Initialize end-to-end pipeline (auto-loads Stage 1 and Stage 2 on Apple Silicon)
ocr = IndicOCRPipeline()

# Process full document page
result = ocr.process("path/to/document.png")

# Reading-ordered Markdown
print(result.markdown)

# Access individual detected blocks
for block in result.blocks:
    print(f"#{block.order} [{block.label}] {block.bbox_xyxy}: {block.text}")

4. Single Crop CLI Transcription

Quickly transcribe a specific cropped text line or region:

python transcribe.py --image path/to/crop.png

5. Direct mlx_vlm Usage

Load the recognizer directly using standard MLX VLM:

from mlx_vlm import generate, load
from PIL import Image

model, processor = load("hari31416/indic-ocr-mlx-bf16")
prompt = processor.apply_chat_template(
    [
        {
            "role": "user",
            "content": [
                {"type": "image"},
                {"type": "text", "text": "Transcribe the text in this image."},
            ],
        }
    ],
    add_generation_prompt=True,
    tokenize=False,
)

image = Image.open("crop.png").convert("RGB")
output = generate(model, processor, prompt=prompt, image=[image], max_tokens=256)
print(output.text.strip())

Repository Structure

├── README.md                      # Model card and parity benchmarks
├── app.py                         # Interactive Gradio web application
├── pipeline.py                    # Importable end-to-end Python pipeline
├── transcribe.py                  # Single-crop CLI transcription script
├── config.json                    # Recognizer model configuration
├── generation_config.json         # Generation hyperparameter defaults
├── model.safetensors              # BF16 recognizer weights (~1.6 GB)
├── model.safetensors.index.json   # Weight index mapping
├── processor_config.json          # Vision & image processor configuration
├── tokenizer.json                 # Sarvam-30B tokenizer
├── tokenizer_config.json
├── chat_template.jinja            # Multimodal chat template
├── requirements.txt               # Minimal dependencies
├── .gitattributes                 # Git LFS tracking configuration
└── layout/                        # Legacy experimental tensor export, not used at runtime
    ├── config.json
    └── model.safetensors          # PP-DocLayoutV3 tensors; requires an MLX model implementation

License and Citations

This model is distributed under the Indic Open Model License v1.0. See the Indic Open Model License and the Plain-Language License Deed for complete terms.

If using this export, please cite the original Bodhan AI project:

@misc{bodhan2026indicocr,
  author = {Bodhan AI},
  title = {IndicOCR: High-Performance Document OCR for Indic Languages},
  year = {2026},
  url = {https://huggingface.co/bodhan-ai/indic-ocr}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
bb091d3

0 моделей