PP-OCRv6: From 1.5M to 34.5M Parameters, Surpassing Billion-Scale VLMs on OCR Tasks

repo HuggingFace X License Safetensors Model ONNX Model

🔥 Official Website 📝 Technical Report

PP-OCRv6 Overview

PP-OCRv6 is a lightweight OCR system that combines architectural innovation with data-centric optimization. It redesigns the backbone, detection neck, and recognition neck around a unified MetaFormer-style building block with structural reparameterization. Three model tiers (medium, small, tiny) share the same block primitives, covering deployment scenarios from server to edge.

Key Features

  1. Unified and Scalable Model Family: A three-tier OCR model family spanning 1.5M to 34.5M parameters. PP-OCRv6_medium achieves 86.2% detection Hmean and 83.2% recognition accuracy, outperforming PP-OCRv5_server by +4.6% and +5.1% respectively.

  2. Lightweight Architectural Innovations: (i) LCNetV4, a MetaFormer-style lightweight backbone with structural reparameterization; (ii) RepLKFPN, a detection neck with dilated reparameterizable depthwise convolutions; (iii) EncoderWithLightSVTR, a recognition neck with local-global attention and additive skip connections.

  3. Multi-Language and Scenario Support: Supports 50 languages and diverse industrial scenes (digital displays, dot-matrix characters, tire prints, etc.), surpassing Qwen3-VL-235B, GPT-5.5, and Gemini-3.1-Pro with orders of magnitude fewer parameters.

PP-OCRv6_medium_rec

Introduction

PP-OCRv6 text recognition architecture overview

PP-OCRv6_medium_rec is the largest recognition model in the PP-OCRv6 series. It uses LCNetV4 as the backbone and EncoderWithLightSVTR as the recognition neck, with a CTC+NRTR multi-head decoder. The model supports 50 languages and contains 19M parameters. The key accuracy metrics are as follows:

Model W-Avg Handwritten CN Handwritten EN Printed CN Printed EN TC Ancient JP Confusable Special General Pinyin Artistic Industrial Screen Card
GPT-5.5 64.2 19.2 56.9 75.7 82.2 57.5 63.7 58.6 49.1 48.3 67.7 50.4 53.0 62.4 67.7 71.1
Qwen3-VL-235B 74.9 49.7 73.2 82.3 86.2 76.4 33.6 66.2 56.1 49.0 82.5 76.5 69.6 74.7 73.8 78.7
Kimi-K2.6 62.9 31.0 58.4 76.8 80.9 62.7 16.5 54.1 43.5 38.0 68.0 45.2 59.9 57.1 58.4 68.4
MiniMax-M3 54.1 15.5 60.3 63.5 81.5 53.2 2.2 43.7 42.2 42.8 53.8 50.3 44.3 44.1 56.6 67.0
Gemini-3.1-Pro 71.4 46.4 73.0 80.0 90.5 69.5 18.0 67.2 54.4 50.3 74.6 75.9 63.1 69.1 73.2 75.9
PP-OCRv5_server 78.1 58.0 59.6 90.1 85.1 74.7 60.4 73.7 59.4 56.8 86.5 74.4 64.0 70.2 68.1 87.6
PP-OCRv5_mobile 73.7 41.7 50.9 86.0 86.0 72.0 57.8 75.8 55.7 54.8 80.7 72.5 54.0 59.3 57.6 81.7
PP-OCRv6_medium 83.2 62.1 67.8 91.5 94.1 78.6 72.4 90.5 64.9 61.7 87.5 78.1 71.2 77.4 82.5 88.1
PP-OCRv6_small 81.3 57.6 61.1 90.5 93.3 77.0 71.1 88.2 64.1 60.2 85.7 75.9 68.4 76.4 79.7 86.9
PP-OCRv6_tiny 73.5 40.1 39.3 86.7 88.4 65.0 68.4 89.8 52.3 57.1 78.0 65.4 54.7 62.1 71.2 80.5

Quick Start

Installation

  1. PaddleOCR
# Install the basic version
pip install paddleocr

# Install the full version (includes all features)
pip install "paddleocr[all]"

Model Usage

You can quickly experience the functionality with a single command:

paddleocr text_recognition \
    --model_name PP-OCRv6_medium_rec \
    -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/2PZfbirjfxA88695lRmgk.jpeg

You can also integrate the model inference of the text recognition module into your project. Before running the following code, please download the sample image to your local machine.

from paddleocr import TextRecognition
model = TextRecognition(model_name="PP-OCRv6_medium_rec")
output = model.predict(input="2PZfbirjfxA88695lRmgk.jpeg", batch_size=1)
for res in output:
    res.print()
    res.save_to_json(save_path="./output/res.json")

After running, the obtained result is as follows:

{'res': {'input_path': '2PZfbirjfxA88695lRmgk.jpeg', 'page_index': None, 'rec_text': 'day as a reminder of the', 'rec_score': 0.9857}}

The visualized image is as follows:

image/jpeg

For details about usage command and descriptions of parameters, please refer to the Document.

Pipeline Usage

The general OCR pipeline is used to solve text recognition tasks by extracting text information from images. The pipeline consists of several modules:

  • Document Image Orientation Classification Module (Optional)
  • Text Image Unwarping Module (Optional)
  • Text Line Orientation Classification Module (Optional)
  • Text Detection Module
  • Text Recognition Module

Run a single command to quickly experience the OCR pipeline:

paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png \
    --text_detection_model_name PP-OCRv6_medium_det \
    --text_recognition_model_name PP-OCRv6_medium_rec \
    --use_doc_orientation_classify False \
    --use_doc_unwarping False \
    --use_textline_orientation True \
    --save_path ./output \
    --device gpu:0

If save_path is specified, the visualization results will be saved under save_path. The visualization output is shown below:

image/jpeg

For project integration:

from paddleocr import PaddleOCR

ocr = PaddleOCR(
    text_detection_model_name="PP-OCRv6_medium_det",
    text_recognition_model_name="PP-OCRv6_medium_rec",
    use_doc_orientation_classify=False,
    use_doc_unwarping=False,
    use_textline_orientation=True,
)
result = ocr.predict("./3ul2Rq4Sk5Cn-l69D695U.png")
for res in result:
    res.print()
    res.save_to_img("output")
    res.save_to_json("output")

For details about usage command and descriptions of parameters, please refer to the Document.

Links

PaddleOCR Repo

PaddleOCR Documentation

Citation

@misc{zhang2026ppocrv6,
  title={PP-OCRv6: From 1.5M to 34.5M Parameters, Surpassing Billion-Scale VLMs on OCR Tasks},
  author={Yubo Zhang and Xueqing Wang and Manhui Lin and Yue Zhang and Penglongyi Deng and Ting Sun and Tingquan Gao and Zelun Zhang and Jiaxuan Liu and Changda Zhou and Hongen Liu and Suyin Liang and Cheng Cui and Yi Liu and Dianhai Yu and Yanjun Ma},
  year={2026},
  eprint={2606.13108},
  archivePrefix={arXiv},
  primaryClass={cs.CV},
  url={https://arxiv.org/abs/2606.13108},
}
Downloads last month
2,923
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including PaddlePaddle/PP-OCRv6_medium_rec

Paper for PaddlePaddle/PP-OCRv6_medium_rec