
HunyuanOCR
轻量 OCR 大模型,一张图直接出结构化文字
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-19 · 当前星标 ★ 2073
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Linux 环境 + Python 3.12(README 用 uv venv --python 3.12 创建环境)
- NVIDIA GPU,快速开始为单卡(-tp 1、GPU=0)
- 依赖 vllm>=0.25.1 与 flash-attn==2.8.3(需源码编译安装)
- 需提前准备 HunyuanOCR 模型权重目录(示例 MODEL_PATH=./HunyuanOCR)
安装与启动步骤
-
1获取代码仓库
把 HunyuanOCR 仓库克隆到本地并进入目录,后续所有相对路径(如 inference/vLLM)都以仓库根目录为基准。
git clone https://github.com/Tencent-Hunyuan/HunyuanOCR.git cd HunyuanOCR -
2创建 Python 环境
安装 uv 并用它创建 Python 3.12 虚拟环境,创建后必须激活,后续 uv pip 才会装到该环境。
pip install uv uv venv --python 3.12 && source .venv/bin/activate -
3安装推理依赖
依次安装 vLLM 与 flash-attn;flash-attn 需关闭构建隔离并从源码编译,安装耗时较长。
uv pip install "vllm>=0.25.1" uv pip install --no-build-isolation --no-cache-dir "flash-attn==2.8.3" -
4启动 vLLM 服务
用 serve.sh 拉起 OpenAI 兼容服务,模型名 tencent/HunyuanOCR,-tp 1 单卡,最大上下文 131072。
MODEL_PATH=./HunyuanOCR GPU=0 PORT=8000 bash inference/vLLM/serve.sh -
5检查服务就绪
请求 /v1/models 接口,能返回模型列表说明服务已启动成功,可以开始发送图片。
curl -sf http://127.0.0.1:8000/v1/models -
6单张图片推理
用客户端脚本请求刚才启动的服务,--task-type 锁定官方任务类型,例如 doc_parse 文档解析。
python inference/vLLM/infer_vllm_client.py \ --image /path/to/document.png --task-type doc_parse \ --model tencent/HunyuanOCR --port 8000 --max-tokens 32768 -
7批量目录推理
对图片目录批量推理,支持多端点并发与断点续跑,--concurrency 控制并发数,结果写入 out-dir。
python inference/vLLM/batch_infer.py \ --image-dir /path/to/images --out-dir /path/to/output \ --ports 8000 --task-type doc_parse --max-tokens 32768 --concurrency 16
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
MODEL_PATH | 是 | 本地模型权重目录,传给 serve.sh 决定加载哪个 checkpoint | ./HunyuanOCR |
GPU | 否 | 指定使用的 GPU 编号,单卡示例为 0 | 0 |
PORT | 否 | 服务监听端口,客户端与批量脚本需保持一致 | 8000 |
--task-type | 是 | 锁定官方任务类型,共 12 种,可用 --list-tasks 查看 | doc_parse |
--model | 否 | 请求时传给客户端的模型名,与服务端保持一致 | tencent/HunyuanOCR |
如何确认成功
执行 curl -sf http://127.0.0.1:8000/v1/models,能正常返回模型列表即表示服务启动成功、可接收请求。
常见问题
Q:快速开始需要几张显卡?
A:README 的单卡快速开始用 -tp 1、GPU=0 即可跑通;多 GPU 的部署方式需参考 docs/inference/inference.md。
Q:没有 GPU / 想在笔记本上跑怎么办?
A:可用 llama.cpp 做 PC 端部署,支持 CPU、消费级显卡和笔记本,但需先把 checkpoint 转换成 GGUF 格式。
Q:支持哪些任务类型?
A:共 12 种官方任务类型,通过 --task-type 指定,运行 --list-tasks 可以列出全部可选项。
Q:怎么让推理更快?
A:使用 DFlash 投机解码加速,改用 inference/DFlash 下的 serve_DFlash.sh 启动服务。
Q:不想用 vLLM,可以直接用 transformers 吗?
A:可以,README 提供了 inference/transformers 作为原生 transformers 推理方式。
注意事项
- 采样参数已内置:temperature=0.0、top_p=1.0、top_k=-1、repetition_penalty=1.08,并内置尾部重复早停与结果清理。
- README 未给出模型权重的具体下载步骤,需自行按 MODE_PATH 指向的目录准备好 HunyuanOCR 权重再启动服务。
- flash-attn==2.8.3 必须加 --no-build-isolation --no-cache-dir 安装,否则容易编译失败。
- 旧的 HunyuanOCR-1.0 在 v1.0 分支或 HunyuanOCR_v1.0/README_v1.0.md 中查看,与本教程的 1.5 命令不通用。
核心亮点
- 端到端统一检测、识别与版面理解,省去多模型串联的工程复杂度
- 轻量化设计,参数量小、推理更快,适合算力受限的批量文档处理
- 支持自然语言指令做定向抽取,票据、证件等结构化场景开箱可用
不足之处
- 当前星标约 2000,社区生态和第三方教程相对头部项目仍偏少
- 轻量模型在极端复杂版面或低质量图片上的精度可能不及重型方案
适用场景
- 发票、票据批量录入,自动抽取金额、日期等字段
- 证件、卡证识别,用于实名认证或信息登记流程
- 扫描文档、PDF 转结构化文本,做知识库或档案数字化
替代项目
PaddleOCR、MinerU、GOT-OCR2.0
同类项目推荐
GLAMR
开源
动态相机下,遮挡也能精准重建3D人体
[CVPR 2022 Oral] Official PyTorch Implementation of "GLAMR: Global Occlusion-Aware H···
yolov5
开源
用 PyTorch 快速训练和部署目标检测模型,开箱即用。
Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classific···
在ComfyUI里用一句话,自动分割图像中任何物体
Based on GroundingDino and SAM, use semantic strings to segment any element in an im···
supervisely
开源
用 Python 把 CV 标注和训练流程自动化跑起来
Supervisely SDK for Python - convenient way to automate, customize and extend Superv···
ExprGAN
开源
连续控制表情强度,精准编辑人脸表情
Facial Expression Editing with Controllable Expression Intensity
liteparse
开源
秒级解析 PDF 和扫描件,提取文本数据,开源免费。
A fast, helpful, and open-source document parser
检测加跟踪,视频里每个人物都有稳定编号
Multi-Object Tracking via DeepSORT
Conceptor
开源
读懂扩散模型的隐藏语言,精准操控图像生成
Official implementation of the paper The Hidden Language of Diffusion Models
annolid
开源
拖拽标注视频,自动追踪动物并分析行为
An annotation and instance segmentation-based multi-object tracking and behavior ana···