|
|
--- |
|
|
license: other |
|
|
license_name: youtu-parsing |
|
|
license_link: https://huggingface.co/tencent/Youtu-Parsing/blob/main/LICENSE.txt |
|
|
pipeline_tag: image-text-to-text |
|
|
base_model: |
|
|
- tencent/Youtu-LLM-2B |
|
|
library_name: transformers |
|
|
base_model_relation: finetune |
|
|
--- |
|
|
<div align="center"> |
|
|
|
|
|
# <img src="assets/youtu-parsing-logo.png" alt="Youtu-Parsing Logo" height="100px"> |
|
|
|
|
|
[📃 License](https://huggingface.co/tencent/Youtu-Parsing/blob/main/LICENSE.txt) • [👨💻 Code](https://github.com/TencentCloudADP/youtu-parsing) • [🖥️ Demo](https://huggingface.co/spaces/Tencent/Youtu-Parsing) • [📑 Technical Report](https://arxiv.org/abs/2601.20430) • [📊 Benchmarks](#benchmarks) • [🚀 Getting Started](#quickstart) |
|
|
|
|
|
</div> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/static_v40.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
|
|
|
## 🎯 Introduction |
|
|
|
|
|
**Youtu-Parsing** is a specialized document parsing model built upon the open-source Youtu-LLM 2B foundation. By extending the capabilities of the base model with a prompt-guided framework and NaViT-style dynamic visual encoder, Youtu-Parsing offers enhanced parsing capabilities for diverse document elements including text, tables, formulas, and charts. The model incorporates an efficient parallel decoding mechanism that significantly accelerates inference, making it practical for real-world document analysis applications. We share Youtu-Parsing with the community to facilitate research and development in document understanding. |
|
|
|
|
|
|
|
|
## ✨ Key Features |
|
|
### 📄 **Document Structure Preservation** |
|
|
- **Text Localization**: Accurately detects and localizes text regions with pixel-level precision, ensuring no content is missed or misplaced across diverse document layouts. |
|
|
- **Reading Order Restoration**: Intelligently reconstructs the logical reading sequence of document content, maintaining proper flow across columns, sections, and pages for coherent understanding. |
|
|
|
|
|
### 📊 **Advanced Content Recognition** |
|
|
- **Text Recognition**: Provides precise text recognition across diverse scenarios. |
|
|
- **Formula Recognition**: Automatically converts mathematical expressions to LaTeX format. |
|
|
- **Table Recognition**: Automatically detects tables and converts them to HTML format. |
|
|
- **Chart Recognition**: Converts charts to markdown tables, mind maps and flow charts to mermaid format. |
|
|
|
|
|
### ⚡ **High-Performance Inference** |
|
|
- **Token Parallelism**: Enables simultaneous inference of multiple tokens for accelerated processing, achieving 5-11x speedup. |
|
|
- **Query Parallelism**: Combines multiple queries together to maximize Token Parallelism benefits, providing an additional 2x speedup on top of Token Parallelism acceleration. |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/parallel_decoder.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
<a id="benchmarks"></a> |
|
|
|
|
|
## 📊 Performance |
|
|
### 1. OminiDocBench v1.5 |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/OminiDocBench_v1.5.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
### 2. olmOCR |
|
|
<div align="center"> |
|
|
<img src="./assets/olmOCR.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
|
|
|
<a id="quickstart"></a> |
|
|
|
|
|
## 🚀 Quick Start |
|
|
### Install packages |
|
|
```bash |
|
|
conda create -n youtu_parsing python=3.10 |
|
|
conda activate youtu_parsing |
|
|
pip install git+https://github.com/TencentCloudADP/youtu-parsing.git#subdirectory=youtu_hf_parser |
|
|
|
|
|
# install the flash-attn2 |
|
|
# For CUDA 12.x + PyTorch 2.6 + Python 3.10 + Linux x86_64: |
|
|
pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp310-cp310-linux_x86_64.whl |
|
|
|
|
|
# Alternative: Install from PyPI |
|
|
pip install flash-attn==2.7.0 |
|
|
``` |
|
|
|
|
|
### Usage with transformers |
|
|
```python |
|
|
from youtu_hf_parser import YoutuOCRParserHF |
|
|
|
|
|
# Initialize the parser |
|
|
parser = YoutuOCRParserHF( |
|
|
model_path=model_path, |
|
|
enable_angle_correct=True, # Set to False to disable angle correction |
|
|
angle_correct_model_path=angle_correct_model_path |
|
|
) |
|
|
|
|
|
# Parse an image |
|
|
parser.parse_file(input_path=image_path, output_dir=output_dir) |
|
|
``` |
|
|
|
|
|
## 🎨 Visualization |
|
|
### Text Recognition |
|
|
<div align="center"> |
|
|
<img src="./assets/handwriting.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/art.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/printed.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
### Formula Recognition |
|
|
<div align="center"> |
|
|
<img src="./assets/formula.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
### Table Recognition |
|
|
<div align="center"> |
|
|
<img src="./assets/wired.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/wireless.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
### Chart Recognition |
|
|
<div align="center"> |
|
|
<img src="./assets/chart.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
<div align="center"> |
|
|
<img src="./assets/chart2.png" width="800"/> |
|
|
</div> |
|
|
|
|
|
|
|
|
## 🤝 Acknowledgements |
|
|
We would like to thank [Youtu-LLM](https://github.com/TencentCloudADP/youtu-tip/tree/master/youtu-llm), [OmniDocBench](https://github.com/opendatalab/OmniDocBench), [olmOCR](https://github.com/allenai/olmocr), [dots.ocr](https://github.com/rednote-hilab/dots.ocr), [MinerU](https://github.com/opendatalab/MinerU), [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR), [PSENet](https://github.com/whai362/PSENet) for providing model weights, benchmarks and valuable code. We also appreciate everyone's contribution to this open-source project! |
|
|
|
|
|
|
|
|
|
|
|
## 📚 Citation |
|
|
|
|
|
If you find our work useful in your research, please consider citing the following paper: |
|
|
``` |
|
|
@article{youtu-parsing, |
|
|
title={Youtu-Parsing: Perception, Structuring and Recognition via High-Parallelism Decoding}, |
|
|
author={Tencent Youtu Lab}, |
|
|
year={2026}, |
|
|
eprint={2601.20430}, |
|
|
archivePrefix={arXiv}, |
|
|
primaryClass={cs.CV}, |
|
|
url={https://arxiv.org/abs/2601.20430}, |
|
|
} |
|
|
|
|
|
@article{youtu-vl, |
|
|
title={Youtu-VL: Unleashing Visual Potential via Unified Vision-Language Supervision}, |
|
|
author={Tencent Youtu Lab}, |
|
|
year={2026}, |
|
|
eprint={2601.19798}, |
|
|
archivePrefix={arXiv}, |
|
|
primaryClass={cs.CV}, |
|
|
url={https://arxiv.org/abs/2601.19798}, |
|
|
} |
|
|
|
|
|
@article{youtu-llm, |
|
|
title={Youtu-LLM: Unlocking the Native Agentic Potential for Lightweight Large Language Models}, |
|
|
author={Tencent Youtu Lab}, |
|
|
year={2025}, |
|
|
eprint={2512.24618}, |
|
|
archivePrefix={arXiv}, |
|
|
primaryClass={cs.CL}, |
|
|
url={https://arxiv.org/abs/2512.24618}, |
|
|
} |
|
|
``` |
|
|
|