添加微信号:AIGC_Tech,公众号小助手会拉你进群!点击下方名片关注AIGC Studio公众号!
点击下方名片关注AIGC Studio公众号!获取最新AI前沿应用/AIGC实践教程!
HunyuanOCR是一款基于腾讯混元原生多模态架构的端到端OCR专家模型。仅以1B轻量化参数,便已斩获多项业界SOTA成绩。该模型精通复杂多语种文档解析,同时在文字检测识别、开放字段信息抽取、视频字幕识别、拍照翻译等全场景实用技能中表现出色。目前推理代码和模型权重已开源。
文字检测识别
旨在对文字图像中出现的所有文字,按照行级别粒度进行文本内容和对应的坐标信息输出。模型对文档、艺术字、街景、手写、广告、票据、截屏、游戏、视频等场景上表现卓越。
复杂文档解析
对多语种文档扫描件或拍摄图像进行电子化,具体地,是将图片中出现的文本内容按照阅读顺序进行组织、公式采用Latex格式、复杂表格采用HTML格式表达。
开放字段信息提取
对常见卡证和票据的感兴趣字段(如姓名/地址/单位等),采用标准的json格式解析。
Prompt: 提取图片中的:['单价', '上车时间', '发票号码', '省前缀', '总金额', '发票代码', '下车时间', '里程数']的字段内容,并且按照JSON格式返回。
Response:
{
"单价": "3.00",
"上车时间": "09:01",
"发票号码": "42609332",
"省前缀": "陕",
"总金额": "¥77.10元",
"发票代码": "161002018100",
"下车时间": "09:51",
"里程数": "26.1km"
}
视频字幕提取
能够对视频的字幕实现自动化抽取,包括双语字幕。
图片翻译功能
对拍照或者字典文档的多语种图片能够进行端到端翻译成中文或英文的文本格式输出,目前主要支持14种高频应用小语种(具体包括:德语、西班牙语、土耳其语、意大利语、俄语、法语、葡萄牙语、阿拉伯语、泰语、越南语、印尼语、马来语、日语、韩语)翻译成中/英文,以及中英互译功能(参加ICDAR2025文档端到端翻译比赛赢得了小模型赛道冠军成绩)。
核心特点
轻量化架构:基于混元原生多模态架构与训练策略,打造仅1B参数的OCR专项模型,大幅降低部署成本。
全场景功能:单一模型覆盖文字检测和识别、复杂文档解析、卡证票据字段抽取、字幕提取等OCR经典任务,更支持端到端拍照翻译与文档问答。
极致易用:深度贯彻大模型"端到端"理念,单一指令、单次推理直达SOTA结果,较业界级联方案更高效便捷。
多语种支持:支持超过100种语言,在单语种和混合语言场景下均表现出色。
相关链接
论文:https://arxiv.org/pdf/2511.19575 代码:https://github.com/Tencent-Hunyuan/HunyuanOCR/tree/main 模型:https://huggingface.co/tencent/HunyuanOCR 试用:https://huggingface.co/spaces/tencent/HunyuanOCR
方法概述
混源OCR架构:一个集成原生分辨率视觉编码器、自适应多层感知器连接器和轻量级语言模型的端到端框架,可用于多种OCR任务,包括:识别、解析、信息提取、视觉问答和文本图像翻译。
推荐的OCR任务提示词
评测指标
自建评测集上的文字检测识别指标
总结: HunyuanOCR OCR在各种场景下均取得了最佳的整体性能(70.92%),显著优于传统的OCR方法和常见的VLM。
OmniDocBench 以及自建多语种评测集上的文档解析指标 (使用编辑距离评测)
总结: HunyuanOCR 在多语种文档解析方面均表现出优异的性能,在大多数类别中实现了最低的编辑距离。
信息抽取 (自建评测集) 和 OCRbench的指标
总结: HunyuanOCR 在卡证票据信息抽取和视频字幕提取任务上,性能均显著优于常见的VLM模型,同时在OCRBench上也达到了同样量级模型的SOTA效果。
自建评测集上的拍照翻译指标
总结: HunyuanOCR仅使用1B参数量,在拍照翻译任务上取得了与Qwen3-VL-235B相当的效果。
环境依赖与安装
系统要求
操作系统:Linux Python版本:3.12+(推荐) CUDA版本:12.9 PyTorch版本:2.7.1 GPU:支持CUDA的NVIDIA显卡 GPU显存:20GB (for vLLM) 磁盘空间:6GB
使用教程
基于Transformers快速使用
安装步骤
pip install git+https://github.com/huggingface/transformers@82a06db03535c49aa987719ed0746a76093b1ec4
模型推理 HunyuanOCR 提供直观的模型推理接口。以下是使用指引:
from transformers import AutoProcessor
from transformers import HunYuanVLForConditionalGeneration
from PIL import Image
import torch
model_name_or_path = "tencent/HunyuanOCR"
processor = AutoProcessor.from_pretrained(model_name_or_path, use_fast=False)
img_path = "path/to/your/image.jpg"
image_inputs = Image.open(img_path)
messages1 = [
{"role": "system", "content": ""},
{
"role": "user",
"content": [
{"type": "image", "image": img_path},
{"type": "text", "text": (
"检测并识别图片中的文字,将文本坐标格式化输出。"
)},
],
}
]
messages = [messages1]
texts = [
processor.apply_chat_template(msg, tokenize=False, add_generation_prompt=True)
for msg in messages
]
inputs = processor(
text=texts,
images=image_inputs,
padding=True,
return_tensors="pt",
)
model = HunYuanVLForConditionalGeneration.from_pretrained(
model_name_or_path,
attn_implementation="eager",
dtype=torch.bfloat16,
device_map="auto"
)
with torch.no_grad():
device = next(model.parameters()).device
inputs = inputs.to(device)
generated_ids = model.generate(**inputs, max_new_tokens=16384, do_sample=False)
if "input_ids" in inputs:
input_ids = inputs.input_ids
else:
print("inputs: # fallback", inputs)
input_ids = inputs.inputs
generated_ids_trimmed = [
out_ids[len(in_ids):] for in_ids, out_ids in zip(input_ids, generated_ids)
]
output_texts = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_texts)感谢你看到这里,添加小助手 AIGC_Tech 加入官方 AIGC读者交流群,下方扫码加入 AIGC Studio 星球,获取前沿AI应用、AIGC实践教程、大厂面试经验、AI学习路线以及IT类入门到精通学习资料等,欢迎一起交流学习💗~
没有评论:
发表评论