PP-Structure / PP-OCR Models β€” MLX

This repository is an MLX conversion of the PaddlePaddle PP-Structure and PP-OCR model families. Every subdirectory holds a converted MLX weights file (model.mlx.safetensors) alongside the original source weights and configs, so the models can run natively and efficiently on Apple Silicon (M-series).

The models are converted from the official PaddlePaddle / Hugging Face transformers safetensors checkpoints. They cover the full document-intelligence pipeline: layout analysis, text detection & recognition, orientation & rectification, table recognition, and formula recognition.

See each subdirectory's own README.md for model-specific details, accuracy metrics, and the original PaddlePaddle usage examples.

Repository layout

Models are grouped by pipeline stage. Below, ↳ links each folder to its source model.

Document layout analysis

Folder Model Description
doclayoutv3/ PP-DocLayoutV3 RT-DETR-style detector (HGNetV2-L backbone) for 25 document layout regions (title, text, figure, table, formula, …).

Text detection (PP-OCRv5 / v6)

Folder Model Description
det/ PP-OCRv5_mobile_det Legacy mobile text-line detector (LCNetV3 backbone, scale 0.75).
det_v6_medium/ PP-OCRv6_medium_det Largest v6 detector β€” LCNetV4 backbone + RepLKFPN neck, 15.5M params.
det_v6_small/ PP-OCRv6_small_det Mid-tier v6 detector, 2.48M params.
det_v6_tiny/ PP-OCRv6_tiny_det Smallest v6 detector, 0.43M params.

Text recognition (PP-OCRv5 / v6)

Folder Model Description
rec/ PP-OCRv5_mobile_rec Legacy mobile recognizer (LCNetV3 backbone).
en_rec/ PP-OCRv5_mobile_rec (EN) English-dictionary variant of the mobile recognizer.
server_rec/ PP-OCRv5_server_rec Server-grade recognizer for ZH/EN/JA + handwriting, vertical text, pinyin, rare characters.
rec_v6_medium/ PP-OCRv6_medium_rec Largest v6 recognizer β€” LCNetV4 + EncoderWithLightSVTR, CTC+NRTR heads, 50 languages, 19M params.
rec_v6_small/ PP-OCRv6_small_rec Mid-tier v6 recognizer, 5.2M params, 50 languages.
rec_v6_tiny/ PP-OCRv6_tiny_rec Smallest v6 recognizer, 1.1M params, 49 languages.

Orientation & rectification

Folder Model Description
ori/ PP-LCNet_x1_0_doc_ori Document image orientation classifier (0Β°/90Β°/180Β°/270Β°), 99.06% avg accuracy.
uvdoc/ UVDoc Document image unwarping / geometric rectification (CER 0.179 on DocUNet benchmark).

Table recognition

Folder Model Description
table_cls/ PP-LCNet_x1_0_table_cls Wired vs. wireless table classifier, 94.2% Top-1.
table_structure/ SLANet Legacy table-structure recognition (LCNet backbone, scale 1).
table_wired/ SLANeXt_wired Wired-table structure recognition, 69.65% accuracy, 351M.
table_wireless/ SLANeXt_wireless Wireless-table structure recognition, 69.65% accuracy, 351M.
table_cell_wired/ RT-DETR-L_wired_table_cell_det Wired-table cell detector (RT-DETR-L), 82.7% Top-1, 124M.
table_cell_wireless/ RT-DETR-L_wireless_table_cell_det Wireless-table cell detector (RT-DETR-L), 82.7% Top-1, 124M.

Formula recognition

Folder Model Description
formula/ PP-FormulaNet_plus-L Encoder-decoder vision-language model that converts formula images to LaTeX (~182M params, 50k-token vocabulary).

Pipeline

These modules compose into the standard PP-Structure document pipeline:

                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   page image β†’ β”‚  doc ori   β”‚  (optional) orient the page
                β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
                β”‚  uvdoc     β”‚  (optional) dewarp the page
                β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
                β”‚ doclayoutv3β”‚  detect layout regions
                β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β–Ό         β–Ό          β–Ό
       text branch  table      formula
       β”Œβ”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”
       β”‚ det  β”‚   β”‚ cls   β”‚   β”‚formulaβ”‚
       β””β”€β”€β”¬β”€β”€β”€β”˜   β””β”€β”€β”€β”¬β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚       β”Œβ”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
          β–Ό       β–Ό          β–Ό
       β”Œβ”€β”€β”€β”€β”  cell det   structure
       β”‚rec β”‚ (wired/     (wired/
       β””β”€β”€β”€β”€β”˜ wireless)   wireless)

For the OCR sub-pipeline, PP-OCRv6 pairs det_v6_* with the matching rec_v6_* tier (e.g. det_v6_medium + rec_v6_medium), selectable across medium / small / tiny for server-to-edge trade-offs.

Loading the MLX weights

Each folder follows the same convention β€” the MLX weights live in model.mlx.safetensors and the architecture in config.json:

<model>/
β”œβ”€β”€ model.mlx.safetensors   # MLX-converted weights (load with mlx.nn / mlx-vlm)
β”œβ”€β”€ model.safetensors       # original source weights
β”œβ”€β”€ config.json             # architecture config
└── preprocessor_config.json (or processor_config.json)

Load with MLX (Python):

import mlx.core as mx
from mlx.utils import tree_unflatten

weights = mx.load("det_v6_medium/model.mlx.safetensors")
params = tree_unflatten(list(weights.items()))

These are weight conversions only. A matching MLX model implementation (e.g. via mlx-vlm or a custom MLX module) is required to run inference. Refer to each subdirectory's config.json for the exact architecture.

Model sources

Original checkpoints and documentation from the PaddleOCR project and the PaddlePaddle Hugging Face organization.

License

Apache 2.0. See the LICENSE of the upstream PaddleOCR project for details.

Downloads last month

-

Downloads are not tracked for this model. How to track
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support