跳到主要内容

📄 做到了!泰语文档 AI,两款模型免费开源

发布于 2026 年 11 月 12 日

做到了!泰语文档 AI,两款免费模型:普通 OCR 把表格读成一长行,OpenThai 2.0 OCR 保持表格结构

OCR Markdown 0.63BOCR Text 4 MB允许商用泰语 + 英语v1.0.0

是否遇到过这种情况? 扫描了一叠政府文件,想要其中的文字,OCR 却把表格读成一长行,分不清哪个数字属于哪一行,最后只好一格一格重新录入。

今天,iApp Technology 的 OpenThai 团队发布两款泰语 OCR 模型,任何人都可以免费下载使用,也允许商用。

OpenThai 2.0 OCR MarkdownOpenThai 2.0 OCR Text
功能页面 → Markdown,表格为 HTML(支持合并单元格),每个区块带边框与类别页面 → 按阅读顺序的文本,每行带边框与置信度
规模0.63B 参数1.02M 参数,ONNX 文件共 4.2 MB
运行环境单张 NVIDIA GPU,使用 vLLM 部署仅需 CPU,无需 GPU
速度H100 上每页 1.6 秒每页 0.39 秒;8 核约每分钟 950 页
基础模型NVIDIA Nemotron 3.5 ParsePaddlePaddle PP-OCRv6-tiny
许可证OpenMDW-1.1Apache-2.0
适用场景含表格的文档、预算文件、泰国皇家公报、为 RAG 准备文档大批量纯文本、无 GPU 的机器、不能离开本地的机密文件

1) OpenThai 2.0 OCR Markdown:表格仍是表格​

把泰语文档页面读成 Markdown,表格输出为带 rowspan 与 colspan 的 HTML。它是在 NVIDIA Nemotron 3.5 Parse(0.63B)基础上的全量微调,因此保留 Parse 的版面框、区块类别与阅读顺序,凡能运行 Parse 的地方都能运行它。

  • 65 页真实泰国政府与大学含表格文档(th-docs-tables v1)得分 95.2,Typhoon OCR V2 2B 为 91.6(+3.6,95% 区间 [+1.2, +6.2])。
  • 在训练完成后才发布的 339 页泰国皇家公报上(2026 年 11 月 4–9 日),字符准确率 98.7%;Typhoon OCR V2 2B 为 94.6。
  • 12 个泰语印刷文本数据集平均 90.3,在我们测试的 15 个引擎中最高;Typhoon OCR V2 2B 为 89.6,差异不显著。
  • 单张 NVIDIA H100 上 每页 1.6 秒(12 页表格页面的中位数,逐页发送)。
  • 所有测试页面及 6,137 页开发集页面均未出现重复循环。

OpenThai2.0-OCR-Markdown:模型权重与含完整结果的模型卡huggingface.co/iapp/OpenThai2.0-OCR-Markdown

不想自己维护 GPU?OpenThai 2.0 OCR Markdown API,每页 0.15 IC,可在线试用iapp.co.th/docs/ocr/document-markdown

OpenThai2.0-OCR-Markdown 与 Typhoon OCR V2、Nemotron 3.5 Parse 对比

模型规模th-docs-tables v1(65 页)ThaiOCRBench 表格(193 张)泰语印刷文本(12 个数据集)新皇家公报(339 页)平均每页秒数
OpenThai2.0-OCR-Markdown0.63B95.268.990.398.788.31.6
Nemotron 3.5 Parse(基础模型)0.63B91.368.389.091.585.01.8
Typhoon OCR V2 2B2B91.667.689.694.685.815.8
Typhoon OCR V2 0.8B0.8B89.064.785.8——18.7

粗体为各列最佳。平均为四个准确率列的均值。ThaiOCRBench 表格(+1.3)与印刷文本(+0.76)上与 Typhoon OCR V2 2B 的差异不显著。Typhoon 以 --enforce-eager 运行(在我们的 vLLM 版本上必需),若能使用 CUDA graphs 会更快。新皇家公报属于模型熟悉的文档类型(训练数据含此前月份的公报),但这些页面均未参与训练。

使用方法​

与基础模型一样用 vLLM 部署,再用 NVIDIA 的 DocumentParser 解析页面(边框与类别提示,单次处理):

vllm serve iapp/OpenThai2.0-OCR-Markdown --served-model-name nemotron-parse --trust-remote-code
from nemotron_parse.inference import DocumentParser, GenerationError

with DocumentParser(base_url="http://localhost:8000/v1", model="nemotron-parse") as parser:
doc = parser.parse("page.png", mode="single")
print(doc["markdown"]) # Markdown;表格为带 rowspan/colspan 的 HTML

请使用我们测试过的 box 模式。完整安装步骤见模型卡。

2) OpenThai 2.0 OCR Text:4 MB,无需 GPU​

在普通 CPU 上运行的泰语与英语印刷文本 OCR:PP-OCRv6-tiny 行检测器(1.8 MB)加上 iApp 训练的泰语行识别器(2.4 MB),使用 OpenVINO 或 ONNX Runtime 运行。

  • 密集 A4 页面每页 0.39 秒,8 核 Xeon 约每分钟 950 页,每个 worker 约占 450 MB 内存。
  • 可离线运行,机密文件无需离开本机。
  • 预算文件 99.5,皇家公报 96.3(Gemini 2.5 Flash 为 81.0 与 92.6;Google Cloud Vision 为 75.0 与 87.8)。
  • 自动摆正页面、纠正倾斜、按顺序读取多栏页面、识别深色底浅色字,通过鲁棒性测试的全部 22 种条件。
  • iApp 的 OpenThai 2.0 OCR Text API 基于此模型构建。

OpenThai2.0-OCR-Text:ONNX 模型、运行时与 15 个引擎的对比huggingface.co/iapp/OpenThai2.0-OCR-Text

OpenThai 2.0 OCR Text API:纯文本每页 0.049 IC;Word、Excel 与可搜索 PDF 每页 0.15 ICiapp.co.th/docs/ocr/document

OpenThai2.0-OCR-Text 与其他 14 个 OCR 引擎对比

所有引擎读取相同页面、以相同方式评分:字符准确率 100 × (1 − CER),越高越好。

引擎12 个印刷数据集平均法院判决皇家公报预算文件古籍ThaiOCRBench手写
OpenThai2.0-OCR-Text(本模型,CPU)87.897.096.399.577.182.010.3
OpenThai2.0-OCR-Markdown(GPU)90.396.298.098.279.790.678.9
Typhoon OCR V2 2B89.696.294.697.377.287.376.7
NVIDIA Nemotron 3.5 Parse89.096.992.298.976.992.057.3
Typhoon OCR 1.5 2B87.592.492.597.278.671.494.5
Gemini 2.5 Flash87.194.792.681.077.988.886.7
dots.mocr86.496.393.199.576.378.839.4
OneOCR(Microsoft,Windows)85.095.196.699.878.681.891.0
Google Cloud Vision83.693.987.875.073.685.660.8
PaddleOCR 3 PP-OCRv5 (th)81.190.482.993.155.575.841.6
Qwen3.5-9B80.134.588.291.868.582.054.1
Tesseract 5 (tha+eng)75.471.782.371.352.275.026.4
PaddleOCR-VL 1.672.480.879.770.357.668.213.4
DeepSeek-OCR-269.092.884.791.455.277.53.9

粗体为各列最佳。平均涵盖 12 个印刷数据集(预算文件、皇家公报、SEA-DocBench、维基文库古籍、行政法院判决、ThaiOCRBench、th-docs-tables 以及 3 个 OCR104 数据集),不含手写。含 Nemotron 3.5 Parse 纯文本提示及各引擎速度的完整表格见模型卡。法院判决属于训练域内:训练数据包含法院扫描件(与测试文件不同)。

使用方法​

hf download iapp/OpenThai2.0-OCR-Text --local-dir OpenThai2.0-OCR-Text
pip install openvino opencv-python-headless pyclipper numpy
cd OpenThai2.0-OCR-Text
from runtime.line_engine import LineOCR

ocr = LineOCR(".", threads=1)
r = ocr.read("page.png") # 路径、bytes、ndarray 或 PIL 图像
print(r["text"]) # 按阅读顺序的文本
r["lines"] # [{"text", "confidence", "row", "box"}]

如需高吞吐量,请每个 CPU 核运行一个 worker 进程,并设置 threads=1。

🤔 为什么免费开源​

泰国政府机构、医院和企业中还有数以百万计的文档页面不能上传到境外云端。我们希望每个机构都能在自己的机器上读取它们。而任何想用自家文档搭建 AI 聊天机器人的人,第一步都是把文档读对。

⚠️ 坦白说:尚不擅长的地方​

  • 整页手写 不是目标。OCR Markdown 仅能识别行级手写;OCR Text 只识别印刷文本。
  • 单个词语的照片和极短的裁切图 效果不如整页:OCR Markdown 在 OCR104 文档照片上为 96.4,Typhoon OCR V2 2B 为 99.8。
  • 与泰国政府文件风格不同的表格 与基础模型水平相近(ThaiOCRBench 表格 68.9,基础模型 68.3),部分表格仍会缺行或行合并错误。
  • 泰文数字 偶尔会被输出为阿拉伯数字(339 页公报约 22,000 个泰文数字中有 112 个)。
  • 针式打印字体(银行存折):在生成的开发集上为 89%,尚无真实测试集。
  • 竖排文字(如旋转的表头)可能识别错误。
  • OCR Text: 装饰性很强的字体可能识别错误,印章会被输出为文本,bf16 速度需要支持 AMX 的 CPU(Sapphire Rapids 或更新)。

团队正在继续改进。也感谢 Typhoon 团队与我们一同提升泰语 OCR 的水平。

👨‍👩‍👧 OpenThai 2.0 家族​

模型功能规模状态
OpenThai 2.0泰语对话与推理 LLM,可读图27B已发布
OpenThai 2.0 Legal面向 RAG 的泰国法律模型30B-A3B已发布
OpenThai-SystemOne泰英决策模型(不生成文本)0.8B已发布
OpenThai 2.0 OCR Markdown页面 → Markdown,表格仍是表格0.63B已发布
OpenThai 2.0 OCR TextCPU 上的印刷文本 OCR4 MB已发布

🤝 参与贡献​

📄 许可证与致谢​

  • OpenThai 2.0 OCR Markdown: OpenMDW-1.1,允许不受限制地使用,包括商用。它是 NVIDIA Nemotron 3.5 Parse(同为 OpenMDW-1.1)的衍生模型;分词器为 MIT 许可。Built on NVIDIA Nemotron。
  • OpenThai 2.0 OCR Text: Apache-2.0。检测器及识别器的起点为 PaddlePaddle 的 PP-OCRv6-tiny(Apache-2.0)。

由 iApp Technology / OpenThai 团队开发。

🙏 感谢 Siam AI​

Siam AI Corporation

两款模型均在 Siam AI Corporation 提供的 NVIDIA H100 GPU 上训练。衷心感谢他们一直以来对开放泰语 AI 的支持,也感谢 NVIDIA 提供 Nemotron 3.5 Parse。