HuggingFace镜像/nemotron-ocr-v2
模型介绍文件和版本分析
下载使用量0

Nemotron OCR v2

模型概述

描述

Nemotron OCR v2 是一款先进的多语言文本识别模型,专为复杂真实场景图像的端到端光学字符识别(OCR)任务设计。它集成了三个核心神经网络模块:用于文本区域定位的检测器、用于识别检测区域文本的识别器,以及用于布局和结构分析的关系模型。

该模型针对多种 OCR 任务进行了优化,包括多行文、多区块文本以及自然场景文本识别,并通过其关系模型组件支持高级阅读顺序分析。Nemotron OCR v2 支持多种语言,旨在实现生产级部署和商业应用,重点关注文档和自然场景图像上的处理速度与识别精度。

Nemotron OCR v2 是 NVIDIA NeMo Retriever 系列的一部分,该系列提供了先进的、可商用的模型和微服务,针对最低延迟和最高吞吐量进行了优化。它具备生产就绪的信息检索 pipeline,并提供企业级支持。构成此解决方案核心的模型均使用经过负责任选择且可审计的数据源进行训练。凭借多个预训练模型作为起点,开发人员可以轻松针对特定领域用例进行定制,例如信息技术、人力资源帮助助手以及研发助手等场景。

本模型已准备好投入商业使用。

许可/使用条款

本模型的使用受 NVIDIA Open Model License Agreement 约束,后处理脚本的使用则受 Apache 2.0 许可协议管辖。

发布日期:

Hugging Face(本仓库):nvidia/nemotron-ocr-v2
Build.Nvidia.com 2026年4月15日,链接:https://build.nvidia.com/nvidia/nemotron-ocr-v2
NGC 2026年4月15日,链接:https://catalog.ngc.nvidia.com/orgs/nvidia/teams/nemo-microservices/containers/nemoretriever-ocr-v2

部署地区

全球

应用场景

Nemotron OCR v2 旨在高精度、高速地从多语言图像中提取文本信息,非常适合为多模态检索系统、检索增强生成(RAG)管道以及需要无缝集成视觉与语言理解的智能体应用提供支持。其强大的多语言性能和高效性使其成为下一代人工智能系统的理想选择,这些系统需要在多样化的现实世界内容中兼具精度和可扩展性。

模型架构

架构类型:具有文档级关系建模的混合检测-识别架构

Nemotron OCR v2 提供两个版本:

  • v2_english — 针对英语 OCR 优化,支持单词级区域处理。
  • v2_multilingual — 支持英语、中文(简体和繁体)、日语、韩语和俄语,对多语言文档采用行级区域处理。

两个版本共享相同的三组件架构:

  • 文本检测器:采用 RegNetX-8GF 卷积骨干网络,用于高精度定位图像中的文本区域。
  • 文本识别器:使用基于预归一化 Transformer 的序列识别器,对检测到的区域进行文本转录,支持可变的单词和行长度。
  • 关系模型:应用多层全局关系模块,预测检测到的文本元素之间的逻辑分组、阅读顺序和布局关系。

所有组件均采用端到端方式联合训练,为多样化的文档和场景图像提供稳健、可扩展且可投入生产的 OCR 解决方案。

网络架构:RegNetX-8GF

识别器对比

两个版本共享相同的检测器和关系架构,但识别器容量不同:

规格v2_englishv2_multilingual
Transformer 层数36
隐藏维度(d_model)256512
FFN 宽度(dim_feedforward)10242048
注意力头数88
最大序列长度32128
字符集大小85514,244

参数数量

v2_english(来自 v2_english/):

组件参数数量
检测器45,445,259
识别器6,130,657
关系模型2,255,419
总计53,831,335

v2_multilingual(来自 v2_multilingual/):

组件参数数量
检测器45,445,259
识别器36,119,598
关系模型2,288,187
总计83,853,044

输入

属性值
输入类型与格式图像(RGB,PNG/JPEG,float32/uint8),聚合级别(单词、句子或段落)
输入参数(二维)3 x H x W(单张图像)或 B x 3 x H x W(批量)
输入范围[0, 1](float32)或 [0, 255](uint8,自动转换)
其他属性支持单张图像和批量图像处理。自动多尺度调整大小以获得最佳精度。

输出

属性值
输出类型结构化 OCR 结果:检测到的文本区域列表(边界框)、识别文本和置信度分数
输出格式边界框:浮点数元组,识别文本:字符串,置信度分数:浮点数
输出参数边界框:一维(1D)边界框坐标列表,识别文本:一维(1D)字符串列表,置信度分数:一维(1D)浮点数列表
其他属性模型输出示例请参见样例输出

样例输出

ocr_boxes = [[[15.552736282348633, 43.141815185546875],
  [150.00149536132812, 43.141815185546875],
  [150.00149536132812, 56.845645904541016],
  [15.552736282348633, 56.845645904541016]],
 [[298.3145751953125, 44.43315124511719],
  [356.93585205078125, 44.43315124511719],
  [356.93585205078125, 57.34814453125],
  [298.3145751953125, 57.34814453125]],
 [[15.44686508178711, 13.67985725402832],
  [233.15859985351562, 13.67985725402832],
  [233.15859985351562, 27.376562118530273],
  [15.44686508178711, 27.376562118530273]],
 [[298.51727294921875, 14.268900871276855],
  [356.9850769042969, 14.268900871276855],
  [356.9850769042969, 27.790447235107422],
  [298.51727294921875, 27.790447235107422]]]

ocr_txts = ['The previous notice was dated',
 '22 April 2016',
 'The previous notice was given to the company on',
 '22 April 2016']

ocr_confs = [0.97730815, 0.98834222, 0.96804602, 0.98499225]

我们的 AI 模型经过专门设计和/或优化,可在 NVIDIA GPU 加速系统上运行。通过利用 NVIDIA 的硬件(例如 GPU 核心)和软件框架(例如 CUDA 库),与仅使用 CPU 的解决方案相比,该模型实现了更快的训练和推理时间。

用法

前提条件

  • 操作系统:带有 NVIDIA GPU 的 Linux amd64
  • CUDA 工具包,且 nvcc 已添加到 PATH 中。工具包版本必须与您安装的 PyTorch 版本兼容(主版本号相同)。例如,如果您安装的 torch 带有 CUDA 12.8 绑定,则需要 CUDA 工具包 12.x。可通过 nvcc --version 和 nvidia-smi 命令进行验证。
  • Python:3.12(该软件包要求 >=3.12,<3.13)
  • 构建工具(用于在安装时编译 C++ CUDA 扩展):
    • 支持 C++17 的 GCC/G++
    • CUDA 工具包头文件
    • OpenMP

安装

该软件包包含一个 C++ CUDA 扩展,将在安装过程中进行编译。由于该扩展必须针对与系统 CUDA 工具包相同的 PyTorch CUDA 版本进行构建,因此请先安装 PyTorch,然后使用 --no-build-isolation 选项安装此软件包,以便其使用您已有的 PyTorch。

  1. 克隆仓库
  • 确保已安装 git-lfs(https://git-lfs.com)
git lfs install
git clone https://huggingface.co/nvidia/nemotron-ocr-v2
  1. 安装
使用 pip
  • 创建并激活 Python 3.12 环境
  • 安装与您的 CUDA 工具包匹配的 PyTorch(请参见 https://pytorch.org/get-started/locally/):
# Example for CUDA 12.8:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
  • 安装软件包:
cd nemotron-ocr
pip install --no-build-isolation -v .
  • 验证 C++ 扩展是否加载:
python -c "from nemotron_ocr.inference.pipeline_v2 import NemotronOCRV2; print('OK')"
使用 Docker

无需在主机上安装任何额外软件(除了 Docker、docker compose 和 NVIDIA Container Toolkit),即可端到端运行示例:

  • 确保 Docker 能够识别您的 GPU:
docker run --rm --gpus all nvcr.io/nvidia/pytorch:25.09-py3 nvidia-smi
  • 从仓库根目录启动服务以运行示例(若存在示例图片 ocr-example-input-1.png):
docker compose run --rm nemotron-ocr \
  bash -lc "python example.py ocr-example-input-1.png --merge-level paragraph"

这将:

  • 从提供的 Dockerfile(基于 nvcr.io/nvidia/pytorch)构建镜像
  • 将代码库挂载到 /workspace
  • 运行 example.py(首次运行时会从 Hugging Face 下载 v2 multilingual,除非您传递 --model-dir)

输出文件会保存在主机上输入图像的同级目录,命名为 <name>-annotated.<ext>。

  1. 使用以下代码运行模型。

使用 nemotron_ocr.inference.pipeline_v2.NemotronOCRV2。不带参数时,会从 Hugging Face 下载检查点:默认为 v2 multilingual 模型包(nvidia/nemotron-ocr-v2 / v2_multilingual/)。使用 lang="en" 可指定 English v2 版本(nvidia/nemotron-ocr-v2 / v2_english/),或传递 model_dir 从本地磁盘加载(任何完整的检查点文件夹;此时 lang 参数会被忽略)。

from nemotron_ocr.inference.pipeline_v2 import NemotronOCRV2

# Default: Hugging Face v2 multilingual
ocr = NemotronOCRV2()

# English v2 (Hub, word-level)
ocr_en = NemotronOCRV2(lang="en")

# Multilingual v2 explicitly (same default as NemotronOCRV2())
# Uses the line-level variant.
ocr_multi = NemotronOCRV2(lang="multi")

# Local directory with detector.pth, recognizer.pth, relational.pth, charset.txt
ocr_local = NemotronOCRV2(model_dir="./v2_multilingual")

predictions = ocr("ocr-example-input-1.png")

for pred in predictions:
    print(
        f"  - Text: '{pred['text']}', "
        f"Confidence: {pred['confidence']:.2f}, "
        f"Bbox: [left={pred['left']:.4f}, upper={pred['upper']:.4f}, right={pred['right']:.4f}, lower={pred['lower']:.4f}]"
    )

推理模式

# Detector only — returns bounding boxes without text recognition.
# Loads only the detector (~37% less GPU memory, ~20% faster).
ocr_det = NemotronOCRV2(detector_only=True)
boxes = ocr_det("page.png")
# Each prediction has: confidence, left, right, upper, lower, quad

# Skip relational — returns per-word text without reading-order grouping.
# Skips the relational model (~35% less GPU memory, ~8% faster).
ocr_fast = NemotronOCRV2(skip_relational=True)
words = ocr_fast("page.png", merge_level="word")
# Each prediction has: text, confidence, left, right, upper, lower

# Profiling mode — enables per-phase CUDA-synced timing in the logs.
import logging
logging.basicConfig(level=logging.INFO)
ocr_profile = NemotronOCRV2(verbose_post=True)

构造函数规则

  • 您可以通过 lang 或 model_dir 选择模型权重。
  • lang(仅关键字参数,Hub 下载路径):
    • None、"multi" 或 "multilingual" -> v2 多语言(默认):nvidia/nemotron-ocr-v2 / v2_multilingual/
    • "en" 或 "english" -> v2 英语:nvidia/nemotron-ocr-v2 / v2_english/
    • "v1" 或 "legacy" -> v1 仅英语(向后兼容):如果未在本地缓存,则从 nvidia/nemotron-ocr-v1 获取
    • 两个 v2 变体(v2_multilingual/ 和 v2_english/)均包含在本仓库中。
  • model_dir(本地覆盖):如果指向完整的本地检查点目录(包含 detector.pth、recognizer.pth、relational.pth、charset.txt),则它将优先并覆盖 lang。
  • 如果提供了 model_dir 但目录不完整,则加载将回退到通过 lang 从 Hub 解析(当 lang 为 None 时,默认为 v2 多语言)。

软件集成

运行时引擎:

  • PyTorch

支持的硬件微架构兼容性:

  • NVIDIA Ampere(安培)
  • NVIDIA Blackwell( Blackwell)
  • NVIDIA Hopper(霍珀)
  • NVIDIA Lovelace( Lovelace)

首选/支持的操作系统:

  • Linux

模型版本

  • 本仓库: Nemotron OCR v2,包含两个变体:v2_english/ 和 v2_multilingual/。
  • Hugging Face Hub: nvidia/nemotron-ocr-v2。

训练和评估数据集:

训练数据集

数据模态

  • 图像

图像训练数据量

  • 约 1200 万张图像

该模型在大规模、精心策划的真实世界和合成 OCR 数据集混合体上进行训练,涵盖多种语言、文字和文档类型。

真实世界数据集(约 68 万张图像): 自然场景文本、多语言场景文本、任意形状文本、图表和信息图文本、带双语注释的表格图像以及手写文档页面。这些数据涵盖了多样的布局、语言和文档类型。

合成数据集(约 1100 万+张图像): 六种语言(英语、日语、韩语、俄语、简体中文和繁体中文)的渲染多语言文档页面,以及包含具有退化效果的古体字符的合成历史文档裁剪图像。

按数据集划分的数据收集方法: 混合(自动化、人工、合成)
按数据集划分的标注方法: 混合(自动化、人工、合成)
特性: 包括扫描文档、自然场景图像、图表、表格、信息图、手写文档以及多种语言和文字的合成渲染页面。

评估数据集

Nemotron OCR v2 在 OmniDocBench 上进行评估,这是一个全面的文档 OCR 基准测试集,涵盖英语、中文以及跨多种文档类别的混合语言内容。

数据集的数据收集方法:混合(自动化、人工、合成)
数据集的标注方法:混合(自动化、人工、合成)
特性:基准测试集包含具有挑战性的场景图像、布局多样的文档以及多语言数据。

评估结果

以下表格是 NVIDIA 基准测试(OmniDocBench、SynthDoG)的参考指标。复现这些结果需要未签入此 Hugging Face 仓库的数据集和脚本。

OmniDocBench

OmniDocBench 上的归一化编辑距离(NED)样本平均值(值越低越好)。结果遵循 OmniDocBench 方法(跳过空预测)。所有模型均在裁剪模式下评估。速度在单个 A100 GPU 上测量。

模型页/秒英文中文混合白色单一多重正常旋转90度旋转270度水平
PaddleOCR v5(服务器版)1.20.0270.0370.0410.0310.0350.0640.0310.1160.8970.027
OpenOCR(服务器版)1.50.0240.0330.0490.0270.0340.0610.0280.0420.7610.034
Nemotron OCR v2(多语言)21.80.0480.0720.1420.0610.0490.1170.0620.1090.3320.372
Nemotron OCR v2(英文)19.90.0380.8300.4370.3480.2820.5720.3530.2320.8270.893
EasyOCR0.40.0950.1170.3260.0950.1790.3220.1100.9870.9790.809
Nemotron OCR v121.40.0380.8760.4360.4720.4340.7150.4820.3580.8710.979

列说明:pages/s 是使用 v2 批处理管道时测得的吞吐量;EN = 英语,ZH = 简体中文,Mixed = 英中混合,White/Single/Multi = 背景类型,Normal/Rotate90/Rotate270/Horizontal = 文本方向。

SynthDoG 生成的基准数据

SynthDoG 生成的基准数据上的归一化编辑距离(NED)页面平均值(值越低越好):

语言PaddleOCR(基础版)PaddleOCR(专业版)OpenOCR(服务器版)Nemotron OCR v1Nemotron OCR v2(英文)Nemotron OCR v2(多语言)
英语0.1170.0960.1050.0780.0790.069
日语0.2010.2010.5860.7230.7650.046
韩语0.9430.1330.8370.9230.9240.047
俄语0.9590.1630.9500.5640.6320.043
中文(简体)0.0540.0540.0610.7840.8190.035
中文(繁体)0.0940.0940.1270.7000.7560.065

详细性能分析

该模型在复杂布局、嘈杂背景和具有挑战性的真实场景中展现出强大的多语言性能。阅读顺序和区块检测由关系模块提供支持,可支持图表转文本、表格转文本和信息图表转文本提取等下游应用。

推理
加速引擎: PyTorch
支持的硬件: H100 PCIe/SXM、A100 PCIe/SXM、L40S、L4、A10G、H200 NVL、B200、RTX PRO 6000 Blackwell Server Edition

伦理考量

NVIDIA 认为可信 AI 是一项共同责任,我们已制定相关政策和实践,以支持广泛 AI 应用的开发。当按照我们的服务条款下载或使用时,开发人员应与内部模型团队合作,确保该模型满足相关行业和用例的要求,并应对意外的产品误用问题。
将基础模型和微调模型集成到 AI 系统中,需要使用特定于用例的数据进行额外测试,以确保安全有效的部署。遵循 V 模型方法,在单元和系统层面进行迭代测试和验证,对于在部署前减轻风险、满足技术和功能要求以及确保符合安全和伦理标准至关重要。
请确保您对所有输入图像和视频内容拥有适当的权利和权限;如果图像或视频包含人物、个人健康信息或知识产权,生成的图像或视频不会模糊或保持所包含图像主体的比例。
有关此模型伦理考量的更多详细信息,请参见下文的可解释性、偏见、安全与安全以及隐私部分。
请在此链接报告安全漏洞或 NVIDIA AI 相关问题。

偏见

领域回应
来自模型设计和测试中受到不利影响的群体(受保护类别)的参与考量无
为减轻不良偏见所采取的措施无

可解释性

领域回应
预期任务/领域:光学字符识别(OCR),侧重于检索应用和文档。
模型类型:混合神经网络,包含卷积检测器、Transformer识别器和文档结构建模。
目标用户:开发人员和团队,他们正在构建AI驱动的搜索应用程序、检索增强生成(RAG)工作流、多模态智能体或文档智能应用程序。它非常适合那些处理大量扫描或拍摄文档(包括PDF、表单和报告)的用户。
输出:结构化的OCR结果,包括检测到的边界框、识别的文本和置信度分数。
描述模型如何工作:该模型首先检测图像中的文本区域,然后转录识别的文本,最后分析文档结构和阅读顺序。输出结构化、机器可读的结果,适用于下游搜索和分析。
列出已测试可确保其无论在哪些方面都能为受不利影响群体提供可比结果:不适用
技术限制与缓解措施:在不同语言和文字上的性能可能有所差异。
已验证符合规定的NVIDIA质量标准:是
性能指标:准确性(例如,字符错误率)、吞吐量和延迟。
潜在已知风险:该模型可能无法始终以完美的准确性提取或转录所有文本,特别是在图像质量不佳或字体高度风格化的情况下。
许可与使用条款:本模型的使用受《NVIDIA开放模型许可协议》管辖,后处理脚本的使用受Apache 2.0许可约束。

隐私

字段回应
是否可生成或逆向工程个人数据?否
创建此模型是否使用了个人数据?未知
数据集审查频率如何?数据集在添加时进行初步审查,后续审查根据需要或应变更请求进行。
用于训练的所有数据集是否都有来源证明?是
数据标注(注释、元数据)是否符合隐私法律?是
如果收到数据主体的数据更正或删除请求,数据是否符合要求?否,对于外部来源的数据无法实现。
适用的隐私政策https://www.nvidia.com/en-us/about-nvidia/privacy-policy/
是否获得了所使用的任何个人数据的同意?不适用
是否使用了用户与AI模型交互的数据(例如用户输入和提示)来训练模型?否

安全

字段回应
模型应用领域:用于多模态检索的文本识别和结构化OCR。输入可包括自然场景图像、扫描文档、图表、表格和信息图。
用例限制:遵守NVIDIA Open Model License Agreement,后处理脚本的使用受Apache 2.0许可。
模型和数据集限制:应用最小权限原则(PoLP),限制数据集生成和模型开发的访问权限。限制仅允许在训练期间访问数据集,并遵守所有数据集许可约束。
描述对生命的关键影响(如存在):不适用。