Image-Text-to-Text
Transformers
Safetensors
PaddleOCR
English
Chinese
multilingual
paddleocr_vl
ERNIE4.5
PaddlePaddle
ocr
conversational
Instructions to use merve/PaddleOCR-VL-hf with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use merve/PaddleOCR-VL-hf with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="merve/PaddleOCR-VL-hf") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("merve/PaddleOCR-VL-hf") model = AutoModelForMultimodalLM.from_pretrained("merve/PaddleOCR-VL-hf", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - PaddleOCR
How to use merve/PaddleOCR-VL-hf with PaddleOCR:
# Please refer to the document for information on how to use the model. # https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/module_usage/module_overview.html
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use merve/PaddleOCR-VL-hf with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "merve/PaddleOCR-VL-hf" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "merve/PaddleOCR-VL-hf", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/merve/PaddleOCR-VL-hf
- SGLang
How to use merve/PaddleOCR-VL-hf with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "merve/PaddleOCR-VL-hf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "merve/PaddleOCR-VL-hf", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "merve/PaddleOCR-VL-hf" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "merve/PaddleOCR-VL-hf", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use merve/PaddleOCR-VL-hf with Docker Model Runner:
docker model run hf.co/merve/PaddleOCR-VL-hf
Update README.md
Browse files
README.md
CHANGED
|
@@ -1,199 +1,294 @@
|
|
| 1 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
library_name: transformers
|
| 3 |
-
tags: []
|
| 4 |
---
|
| 5 |
|
| 6 |
-
|
| 7 |
|
| 8 |
-
<!-- Provide a quick summary of what the model is/does. -->
|
| 9 |
|
|
|
|
| 10 |
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
|
| 14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
|
|
|
|
| 17 |
|
| 18 |
-
|
| 19 |
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
- **Model type:** [More Information Needed]
|
| 24 |
-
- **Language(s) (NLP):** [More Information Needed]
|
| 25 |
-
- **License:** [More Information Needed]
|
| 26 |
-
- **Finetuned from model [optional]:** [More Information Needed]
|
| 27 |
|
| 28 |
-
##
|
| 29 |
|
| 30 |
-
|
|
|
|
| 31 |
|
| 32 |
-
|
| 33 |
-
- **Paper [optional]:** [More Information Needed]
|
| 34 |
-
- **Demo [optional]:** [More Information Needed]
|
| 35 |
|
| 36 |
-
|
| 37 |
|
| 38 |
-
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
|
| 39 |
|
| 40 |
-
|
| 41 |
|
| 42 |
-
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
|
| 43 |
|
| 44 |
-
|
| 45 |
|
| 46 |
-
### Downstream Use [optional]
|
| 47 |
|
| 48 |
-
|
| 49 |
|
| 50 |
-
|
| 51 |
|
| 52 |
-
|
|
|
|
|
|
|
| 53 |
|
| 54 |
-
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
|
| 55 |
|
| 56 |
-
|
| 57 |
|
| 58 |
-
|
|
|
|
|
|
|
|
|
|
| 59 |
|
| 60 |
-
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
|
| 61 |
|
| 62 |
-
|
| 63 |
|
| 64 |
-
##
|
| 65 |
|
| 66 |
-
|
|
|
|
| 67 |
|
| 68 |
-
|
| 69 |
|
| 70 |
-
|
|
|
|
|
|
|
| 71 |
|
| 72 |
-
|
| 73 |
|
| 74 |
-
|
|
|
|
|
|
|
|
|
|
| 75 |
|
| 76 |
-
|
|
|
|
|
|
|
|
|
|
| 77 |
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
-
|
|
|
|
|
|
|
| 81 |
|
| 82 |
-
|
| 83 |
|
| 84 |
-
#
|
| 85 |
|
| 86 |
-
|
|
|
|
|
|
|
| 87 |
|
| 88 |
-
|
|
|
|
|
|
|
| 89 |
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
| 91 |
|
|
|
|
| 92 |
|
| 93 |
-
###
|
| 94 |
|
| 95 |
-
- **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
|
| 96 |
|
| 97 |
-
####
|
| 98 |
|
| 99 |
-
|
| 100 |
|
| 101 |
-
|
|
|
|
|
|
|
| 102 |
|
| 103 |
-
## Evaluation
|
| 104 |
|
| 105 |
-
<!-- This section describes the evaluation protocols and provides the results. -->
|
| 106 |
|
| 107 |
-
###
|
| 108 |
|
| 109 |
-
####
|
| 110 |
|
| 111 |
-
<!-- This should link to a Dataset Card if possible. -->
|
| 112 |
|
| 113 |
-
|
|
|
|
|
|
|
| 114 |
|
| 115 |
-
#### Factors
|
| 116 |
|
| 117 |
-
|
|
|
|
| 118 |
|
| 119 |
-
[More Information Needed]
|
| 120 |
|
| 121 |
-
###
|
| 122 |
|
| 123 |
-
|
| 124 |
|
| 125 |
-
|
| 126 |
|
| 127 |
-
|
| 128 |
|
| 129 |
-
|
|
|
|
|
|
|
| 130 |
|
| 131 |
-
#### Summary
|
| 132 |
|
|
|
|
| 133 |
|
|
|
|
| 134 |
|
| 135 |
-
|
|
|
|
|
|
|
| 136 |
|
| 137 |
-
<!-- Relevant interpretability work for the model goes here -->
|
| 138 |
|
| 139 |
-
[More Information Needed]
|
| 140 |
|
| 141 |
-
##
|
| 142 |
|
| 143 |
-
|
| 144 |
|
| 145 |
-
|
| 146 |
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
- **Compute Region:** [More Information Needed]
|
| 151 |
-
- **Carbon Emitted:** [More Information Needed]
|
| 152 |
|
| 153 |
-
##
|
| 154 |
|
| 155 |
-
|
| 156 |
|
| 157 |
-
|
| 158 |
|
| 159 |
-
|
|
|
|
|
|
|
| 160 |
|
| 161 |
-
[More Information Needed]
|
| 162 |
|
| 163 |
-
####
|
| 164 |
|
| 165 |
-
|
| 166 |
|
| 167 |
-
|
| 168 |
|
| 169 |
-
|
|
|
|
|
|
|
| 170 |
|
| 171 |
-
## Citation [optional]
|
| 172 |
|
| 173 |
-
<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
|
| 174 |
|
| 175 |
-
**BibTeX:**
|
| 176 |
|
| 177 |
-
[More Information Needed]
|
| 178 |
|
| 179 |
-
**APA:**
|
| 180 |
|
| 181 |
-
[More Information Needed]
|
| 182 |
|
| 183 |
-
##
|
| 184 |
|
| 185 |
-
<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
|
| 186 |
|
| 187 |
-
|
| 188 |
|
| 189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 190 |
|
| 191 |
-
[More Information Needed]
|
| 192 |
|
| 193 |
-
##
|
| 194 |
|
| 195 |
-
|
|
|
|
|
|
|
|
|
|
| 196 |
|
| 197 |
-
## Model Card Contact
|
| 198 |
|
| 199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
pipeline_tag: image-text-to-text
|
| 4 |
+
tags:
|
| 5 |
+
- ERNIE4.5
|
| 6 |
+
- PaddleOCR
|
| 7 |
+
- PaddlePaddle
|
| 8 |
+
- ocr
|
| 9 |
+
base_model: baidu/ERNIE-4.5-0.3B-Paddle
|
| 10 |
+
language:
|
| 11 |
+
- en
|
| 12 |
+
- zh
|
| 13 |
+
- multilingual
|
| 14 |
library_name: transformers
|
|
|
|
| 15 |
---
|
| 16 |
|
| 17 |
+
<div align="center">
|
| 18 |
|
|
|
|
| 19 |
|
| 20 |
+
<h1 align="center">
|
| 21 |
|
| 22 |
+
PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model
|
| 23 |
|
| 24 |
+
</h1>
|
| 25 |
|
| 26 |
+
[](https://github.com/PaddlePaddle/PaddleOCR)
|
| 27 |
+
[](https://huggingface.co/PaddlePaddle/PaddleOCR-VL)
|
| 28 |
+
[](https://modelscope.cn/models/PaddlePaddle/PaddleOCR-VL)
|
| 29 |
+
[](https://huggingface.co/spaces/PaddlePaddle/PaddleOCR-VL_Online_Demo)
|
| 30 |
+
[](https://modelscope.cn/studios/PaddlePaddle/PaddleOCR-VL_Online_Demo/summary)
|
| 31 |
+
[](https://discord.gg/JPmZXDsEEK)
|
| 32 |
+
[](https://x.com/PaddlePaddle)
|
| 33 |
+
[](./LICENSE)
|
| 34 |
|
| 35 |
+
**🔥 Official Website**: [Baidu AI Studio](https://aistudio.baidu.com/paddleocr) |
|
| 36 |
+
**📝 arXiv**: [Technical Report](https://arxiv.org/pdf/2510.14528)
|
| 37 |
|
| 38 |
+
</div>
|
| 39 |
|
| 40 |
+
<div align="center">
|
| 41 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/allmetric.png" width="800"/>
|
| 42 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
+
## Introduction
|
| 45 |
|
| 46 |
+
**PaddleOCR-VL** is a SOTA and resource-efficient model tailored for document parsing. Its core component is PaddleOCR-VL-0.9B, a compact yet powerful vision-language model (VLM) that integrates a NaViT-style dynamic resolution visual encoder with the ERNIE-4.5-0.3B language model to enable accurate element recognition. This innovative model efficiently supports 109 languages and excels in recognizing complex elements (e.g., text, tables, formulas, and charts), while maintaining minimal resource consumption. Through comprehensive evaluations on widely used public benchmarks and in-house benchmarks, PaddleOCR-VL achieves SOTA performance in both page-level document parsing and element-level recognition. It significantly outperforms existing solutions, exhibits strong competitiveness against top-tier VLMs, and delivers fast inference speeds. These strengths make it highly suitable for practical deployment in real-world scenarios.
|
| 47 |
+
**This is the official transformers weights for PaddleOCR-VL.**
|
| 48 |
|
| 49 |
+
### **Core Features**
|
|
|
|
|
|
|
| 50 |
|
| 51 |
+
1. **Compact yet Powerful VLM Architecture:** We present a novel vision-language model that is specifically designed for resource-efficient inference, achieving outstanding performance in element recognition. By integrating a NaViT-style dynamic high-resolution visual encoder with the lightweight ERNIE-4.5-0.3B language model, we significantly enhance the model’s recognition capabilities and decoding efficiency. This integration maintains high accuracy while reducing computational demands, making it well-suited for efficient and practical document processing applications.
|
| 52 |
|
|
|
|
| 53 |
|
| 54 |
+
2. **SOTA Performance on Document Parsing:** PaddleOCR-VL achieves state-of-the-art performance in both page-level document parsing and element-level recognition. It significantly outperforms existing pipeline-based solutions and exhibiting strong competitiveness against leading vision-language models (VLMs) in document parsing. Moreover, it excels in recognizing complex document elements, such as text, tables, formulas, and charts, making it suitable for a wide range of challenging content types, including handwritten text and historical documents. This makes it highly versatile and suitable for a wide range of document types and scenarios.
|
| 55 |
|
|
|
|
| 56 |
|
| 57 |
+
3. **Multilingual Support:** PaddleOCR-VL Supports 109 languages, covering major global languages, including but not limited to Chinese, English, Japanese, Latin, and Korean, as well as languages with different scripts and structures, such as Russian (Cyrillic script), Arabic, Hindi (Devanagari script), and Thai. This broad language coverage substantially enhances the applicability of our system to multilingual and globalized document processing scenarios.
|
| 58 |
|
|
|
|
| 59 |
|
| 60 |
+
### **Model Architecture**
|
| 61 |
|
| 62 |
+
<!-- PaddleOCR-VL decomposes the complex task of document parsing into a two stages. The first stage, PP-DocLayoutV2, is responsible for layout analysis, where it localizes semantic regions and predicts their reading order. Subsequently, the second stage, PaddleOCR-VL-0.9B, leverages these layout predictions to perform fine-grained recognition of diverse content, including text, tables, formulas, and charts. Finally, a lightweight post-processing module aggregates the outputs from both stages and formats the final document into structured Markdown and JSON. -->
|
| 63 |
|
| 64 |
+
<div align="center">
|
| 65 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/paddleocrvl.png" width="800"/>
|
| 66 |
+
</div>
|
| 67 |
|
|
|
|
| 68 |
|
| 69 |
+
## News
|
| 70 |
|
| 71 |
+
* ```2025.11.07``` 🚀 Enabled `flash-attn` in the `transformers` library to achieve faster inference with PaddleOCR-VL-0.9B.
|
| 72 |
+
* ```2025.11.04``` 🌟 PaddleOCR-VL-0.9B is now officially supported on `vLLM` .
|
| 73 |
+
* ```2025.10.29``` 🤗 Supports calling the core module PaddleOCR-VL-0.9B of PaddleOCR-VL via the `transformers` library.
|
| 74 |
+
* ```2025.10.16``` 🚀 We release [PaddleOCR-VL](https://github.com/PaddlePaddle/PaddleOCR), — a multilingual documents parsing via a 0.9B Ultra-Compact Vision-Language Model with SOTA performance.
|
| 75 |
|
|
|
|
| 76 |
|
| 77 |
+
## Usage
|
| 78 |
|
| 79 |
+
## Usage
|
| 80 |
|
| 81 |
+
> [!NOTE]
|
| 82 |
+
> This model should be used with [PPDocLayoutV3](https://huggingface.co/PaddlePaddle/PP-DocLayoutV3_safetensors). Find an end-to-end example inference [in this notebook](https://huggingface.co/PaddlePaddle/PaddleOCR-VL-hf/blob/main/inference.ipynb).
|
| 83 |
|
| 84 |
+
Make sure to have transformers above v5.
|
| 85 |
|
| 86 |
+
```shell
|
| 87 |
+
python -m pip install "transformers>=5.0.0"
|
| 88 |
+
```
|
| 89 |
|
| 90 |
+
You can load the model as follows. Since you need to have the detected regions, please refer to notebook for complete inference.
|
| 91 |
|
| 92 |
+
```python
|
| 93 |
+
import torch
|
| 94 |
+
from transformers import AutoProcessor, AutoModelForImageTextToText
|
| 95 |
+
model_id = "PaddlePaddle/PaddleOCR-VL-hf"
|
| 96 |
|
| 97 |
+
processor = AutoProcessor.from_pretrained(ocr_model_id)
|
| 98 |
+
model = AutoModelForImageTextToText.from_pretrained(
|
| 99 |
+
model_id, torch_dtype=torch.bfloat16
|
| 100 |
+
).to(device)
|
| 101 |
|
| 102 |
+
def ocr_region(crop, prompt):
|
| 103 |
+
"""Run PaddleOCR-VL on a single cropped region."""
|
| 104 |
+
messages = [
|
| 105 |
+
{
|
| 106 |
+
"role": "user",
|
| 107 |
+
"content": [
|
| 108 |
+
{"type": "image", "image": crop},
|
| 109 |
+
{"type": "text", "text": prompt},
|
| 110 |
+
],
|
| 111 |
+
}
|
| 112 |
+
]
|
| 113 |
+
inputs = processor.apply_chat_template(
|
| 114 |
+
messages,
|
| 115 |
+
add_generation_prompt=True,
|
| 116 |
+
tokenize=True,
|
| 117 |
+
return_dict=True,
|
| 118 |
+
return_tensors="pt",
|
| 119 |
+
).to(ocr_model.device)
|
| 120 |
|
| 121 |
+
generated_ids = model.generate(**inputs, max_new_tokens=1024)
|
| 122 |
+
trimmed = generated_ids[0][inputs["input_ids"].shape[-1] :]
|
| 123 |
+
return processor.decode(trimmed, skip_special_tokens=True)
|
| 124 |
|
| 125 |
+
parsed_regions = []
|
| 126 |
|
| 127 |
+
# assuming you have detected regions from PPDocLayoutv3 in detections
|
| 128 |
|
| 129 |
+
for det in detections:
|
| 130 |
+
label = det["label"]
|
| 131 |
+
prompt = LABEL_TO_PROMPT.get(label)
|
| 132 |
|
| 133 |
+
x1, y1, x2, y2 = det["box"]
|
| 134 |
+
crop = image.crop((x1, y1, x2, y2))
|
| 135 |
+
text = recognise_region(crop, prompt)
|
| 136 |
|
| 137 |
+
parsed_regions.append({**det, "prompt": prompt, "text": text})
|
| 138 |
+
print(f"[{det['order']}] {label} prompt={prompt}")
|
| 139 |
+
print(text)
|
| 140 |
+
```
|
| 141 |
|
| 142 |
+
## Performance
|
| 143 |
|
| 144 |
+
### Page-Level Document Parsing
|
| 145 |
|
|
|
|
| 146 |
|
| 147 |
+
#### 1. OmniDocBench v1.5
|
| 148 |
|
| 149 |
+
##### PaddleOCR-VL achieves SOTA performance for overall, text, formula, tables and reading order on OmniDocBench v1.5
|
| 150 |
|
| 151 |
+
<div align="center">
|
| 152 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/omni15.png" width="800"/>
|
| 153 |
+
</div>
|
| 154 |
|
|
|
|
| 155 |
|
|
|
|
| 156 |
|
| 157 |
+
#### 2. OmniDocBench v1.0
|
| 158 |
|
| 159 |
+
##### PaddleOCR-VL achieves SOTA performance for almost all metrics of overall, text, formula, tables and reading order on OmniDocBench v1.0
|
| 160 |
|
|
|
|
| 161 |
|
| 162 |
+
<div align="center">
|
| 163 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/omni10.png" width="800"/>
|
| 164 |
+
</div>
|
| 165 |
|
|
|
|
| 166 |
|
| 167 |
+
> **Notes:**
|
| 168 |
+
> - The metrics are from [MinerU](https://github.com/opendatalab/MinerU), [OmniDocBench](https://github.com/opendatalab/OmniDocBench), and our own internal evaluations.
|
| 169 |
|
|
|
|
| 170 |
|
| 171 |
+
### Element-level Recognition
|
| 172 |
|
| 173 |
+
#### 1. Text
|
| 174 |
|
| 175 |
+
**Comparison of OmniDocBench-OCR-block Performance**
|
| 176 |
|
| 177 |
+
PaddleOCR-VL’s robust and versatile capability in handling diverse document types, establishing it as the leading method in the OmniDocBench-OCR-block performance evaluation.
|
| 178 |
|
| 179 |
+
<div align="center">
|
| 180 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/omnibenchocr.png" width="800"/>
|
| 181 |
+
</div>
|
| 182 |
|
|
|
|
| 183 |
|
| 184 |
+
**Comparison of In-house-OCR Performance**
|
| 185 |
|
| 186 |
+
In-house-OCR provides a evaluation of performance across multiple languages and text types. Our model demonstrates outstanding accuracy with the lowest edit distances in all evaluated scripts.
|
| 187 |
|
| 188 |
+
<div align="center">
|
| 189 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/inhouseocr.png" width="800"/>
|
| 190 |
+
</div>
|
| 191 |
|
|
|
|
| 192 |
|
|
|
|
| 193 |
|
| 194 |
+
#### 2. Table
|
| 195 |
|
| 196 |
+
**Comparison of In-house-Table Performance**
|
| 197 |
|
| 198 |
+
Our self-built evaluation set contains diverse types of table images, such as Chinese, English, mixed Chinese-English, and tables with various characteristics like full, partial, or no borders, book/manual formats, lists, academic papers, merged cells, as well as low-quality, watermarked, etc. PaddleOCR-VL achieves remarkable performance across all categories.
|
| 199 |
|
| 200 |
+
<div align="center">
|
| 201 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/inhousetable.png" width="600"/>
|
| 202 |
+
</div>
|
|
|
|
|
|
|
| 203 |
|
| 204 |
+
#### 3. Formula
|
| 205 |
|
| 206 |
+
**Comparison of In-house-Formula Performance**
|
| 207 |
|
| 208 |
+
In-house-Formula evaluation set contains simple prints, complex prints, camera scans, and handwritten formulas. PaddleOCR-VL demonstrates the best performance in every category.
|
| 209 |
|
| 210 |
+
<div align="center">
|
| 211 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/inhouse-formula.png" width="500"/>
|
| 212 |
+
</div>
|
| 213 |
|
|
|
|
| 214 |
|
| 215 |
+
#### 4. Chart
|
| 216 |
|
| 217 |
+
**Comparison of In-house-Chart Performance**
|
| 218 |
|
| 219 |
+
The evaluation set is broadly categorized into 11 chart categories, including bar-line hybrid, pie, 100% stacked bar, area, bar, bubble, histogram, line, scatterplot, stacked area, and stacked bar. PaddleOCR-VL not only outperforms expert OCR VLMs but also surpasses some 72B-level multimodal language models.
|
| 220 |
|
| 221 |
+
<div align="center">
|
| 222 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/inhousechart.png" width="400"/>
|
| 223 |
+
</div>
|
| 224 |
|
|
|
|
| 225 |
|
|
|
|
| 226 |
|
|
|
|
| 227 |
|
|
|
|
| 228 |
|
|
|
|
| 229 |
|
|
|
|
| 230 |
|
| 231 |
+
## Visualization
|
| 232 |
|
|
|
|
| 233 |
|
| 234 |
+
### Comprehensive Document Parsing
|
| 235 |
|
| 236 |
+
<div align="center">
|
| 237 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/overview1.jpg" width="600"/>
|
| 238 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/overview2.jpg" width="600"/>
|
| 239 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/overview3.jpg" width="600"/>
|
| 240 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/overview4.jpg" width="600"/>
|
| 241 |
+
</div>
|
| 242 |
|
|
|
|
| 243 |
|
| 244 |
+
### Text
|
| 245 |
|
| 246 |
+
<div align="center">
|
| 247 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/text_english_arabic.jpg" width="300" style="display: inline-block;"/>
|
| 248 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/text_handwriting_02.jpg" width="300" style="display: inline-block;"/>
|
| 249 |
+
</div>
|
| 250 |
|
|
|
|
| 251 |
|
| 252 |
+
### Table
|
| 253 |
+
|
| 254 |
+
<div align="center">
|
| 255 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/table_01.jpg" width="300" style="display: inline-block;"/>
|
| 256 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/table_02.jpg" width="300" style="display: inline-block;"/>
|
| 257 |
+
</div>
|
| 258 |
+
|
| 259 |
+
|
| 260 |
+
### Formula
|
| 261 |
+
|
| 262 |
+
<div align="center">
|
| 263 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/formula_EN.jpg" width="300" style="display: inline-block;"/>
|
| 264 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/formula_ZH.jpg" width="300" style="display: inline-block;"/>
|
| 265 |
+
</div>
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
### Chart
|
| 269 |
+
|
| 270 |
+
<div align="center">
|
| 271 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/chart_01.jpg" width="300" style="display: inline-block;"/>
|
| 272 |
+
<img src="https://huggingface.co/datasets/PaddlePaddle/PaddleOCR-VL_demo/resolve/main/imgs/chart_02.jpg" width="300" style="display: inline-block;"/>
|
| 273 |
+
</div>
|
| 274 |
+
|
| 275 |
+
|
| 276 |
+
## Acknowledgments
|
| 277 |
+
|
| 278 |
+
We would like to thank [ERNIE](https://github.com/PaddlePaddle/ERNIE), [Keye](https://github.com/Kwai-Keye/Keye), [MinerU](https://github.com/opendatalab/MinerU), [OmniDocBench](https://github.com/opendatalab/OmniDocBench) for providing valuable code, model weights and benchmarks. We also appreciate everyone's contribution to this open-source project!
|
| 279 |
+
|
| 280 |
+
## Citation
|
| 281 |
+
|
| 282 |
+
If you find PaddleOCR-VL helpful, feel free to give us a star and citation.
|
| 283 |
+
|
| 284 |
+
```bibtex
|
| 285 |
+
@misc{cui2025paddleocrvlboostingmultilingualdocument,
|
| 286 |
+
title={PaddleOCR-VL: Boosting Multilingual Document Parsing via a 0.9B Ultra-Compact Vision-Language Model},
|
| 287 |
+
author={Cheng Cui and Ting Sun and Suyin Liang and Tingquan Gao and Zelun Zhang and Jiaxuan Liu and Xueqing Wang and Changda Zhou and Hongen Liu and Manhui Lin and Yue Zhang and Yubo Zhang and Handong Zheng and Jing Zhang and Jun Zhang and Yi Liu and Dianhai Yu and Yanjun Ma},
|
| 288 |
+
year={2025},
|
| 289 |
+
eprint={2510.14528},
|
| 290 |
+
archivePrefix={arXiv},
|
| 291 |
+
primaryClass={cs.CV},
|
| 292 |
+
url={https://arxiv.org/abs/2510.14528},
|
| 293 |
+
}
|
| 294 |
+
```
|