Chandra OCR 实测
我最近花时间将Chandra OCR集成到一个本地运行的文档处理流程中该流程在 NVIDIA A10G GPU 上运行用于扫描复杂表格和公式的手写实验报告。我发现了一些与众不同的东西一个模型不仅输出文本还输出结构化的 HTML包含边界框、布局标签、带有正确colspan和rowspan的表格、行内数学公式和复选框状态。我建立了一个处理扫描实验报告的流程包括合并单元格、手写注释、带有复选框的财务表格以及充满 LaTeX 方程的研究论文。传统的 OCR 工具如 Tesseract、PaddleOCR甚至 Google Vision将文档视为文本的集合。它们读取单词但不理解页面。本文将介绍所有内容Chandra 是什么、它如何工作、如何在自己的 GPU 上安装和运行以及如何从其输出重构干净的 Word 文档。1、什么是 Chandra OCRChandra是由 Datalab 开发的开源 OCR 模型于 2025 年底发布。它基于Qwen3-VL视觉语言模型构建并专门针对文档理解进行了微调。与基于流水线的 OCR 系统不同——后者将页面分割成块然后独立识别每个块中的文本——Chandra 使用全页解码它将整个页面视为视觉上下文一次生成结构化输出。结果是在 olmOCR 基准测试中得分83.1%的模型超过了 GPT-4o69.9%、Gemini Flash 263.8%、Mistral OCR72.0%甚至 dots.ocr79.1%。它目前是开源 OCR 模型中最先进的。输出格式是HTML而不是纯文本或 markdown。这是一个深思熟虑的设计选择HTML 以单一、可解析的表示形式捕获结构表格、列表、标题、行内格式粗体、斜体、上标、数学表达式和布局元数据边界框。关键特性全页布局理解Chandra 一次处理整个页面在多栏布局、侧边栏和复杂的学术论文中保持阅读顺序。带有边界框的 HTML 输出ocr_layout提示返回带有data-bbox和data-label属性的 HTMLdiv元素为您提供页面上每个块的确切位置及其内容。表格重建表格使用colspan和rowspan属性重建处理财务文件、实验报告和发票中的合并单元格这些完全破坏了其他 OCR 工具。手写支持医生笔记、填写的表格、手写作业Chandra 以高精度处理草书和打印体手写。数学和方程行内和块级数学公式呈现为包裹在math标签中的 KaTeX 兼容 LaTeX可直接在 Web 应用程序或进一步处理流程中使用。表单和复选框复选框和单选按钮状态input标签上的checked属性被正确识别实现自动表单处理。支持 40 多种语言多语言文档包括德语、法语、阿拉伯语、中文等都原生支持。两种推理模式HuggingFace本地通过transformers直接加载模型用于开发和测试vLLM 服务器部署为与 OpenAI 兼容的 API 服务器以实现生产吞吐量2、Chandra 可以处理的内容使用ocr_layout提示时Chandra 会标记它检测到的每个块。以下是可用的标签及其代表的内容手写— 医生笔记、填写的表格、作业。Chandra 能够读取草书和混乱的打印体这些会困扰传统的 OCR。表格— 保留结构包括合并单元格colspan/rowspan。适用于财务文件、发票和数据表格。数学— 呈现为 LaTeX 的行内和块级方程。处理教科书、练习册和研究论文。表单— 重建复选框、单选按钮及其值的表单字段。复杂布局— 多栏文档、报纸、带有图形和标题的教科书。每个块都带有[x0, y0, x1, y1]格式的data-bbox属性坐标归一化到范围 [0, 1000]。这使您可以将文本映射回原始页面上的确切位置 — 对于高亮显示、匿名化覆盖层或文档比较很有用。3、分步本地安装指南先决条件Ubuntu 20.04 或类似的 LinuxPython 3.10至少 22GB VRAM 的 NVIDIA GPUA10G、A100、H100用于完整的bfloat16推理CUDA 12.x 驱动程序关于 GPU 内存注意仅 Chandra 模型权重就占用约 16.6GB。在 22GB 的 A10G 上KV 缓存的可用空间有限。以下启动参数专门针对此约束进行了调整。第 1 步创建虚拟环境mkdir ~/CHANDRA-OCR cd ~/CHANDRA-OCR python3 -m venv chandra-ocr source chandra-ocr/bin/activate第 2 步安装 Chandra OCRpip install chandra-ocr对于 PDF 处理支持pip install pdf2image sudo apt-get install -y poppler-utils pip install python-docx beautifulsoup4Flash Attention官方文档建议 HuggingFace 模式使用flash-attn但安装经常在 C 编译期间冻结。跳过它。vLLM 使用自己的优化注意力内核不需要它们。第 3 步安装 vLLMpip install vllm第 4 步启动 vLLM 服务器在 22GB A10G 上使用这些确切的参数。关键约束是--max-model-len 4096模型权重使用 16.6GB只留给 KV 缓存约 5GB。每页 4096 个令牌对于大多数文档来说足够了。如果有足够的 GPU可以增加。--enforce-eager禁用 CUDA 图捕获启动时节省约 2.7GB--max-num-seqs 4限制采样器预热内存--gpu-memory-utilization 0.90为编码器缓存留出空间PYTORCH_ALLOC_CONFexpandable_segments:True \ vllm serve datalab-to/chandra \ --served-model-name chandra \ --port 8009 \ --max-model-len 4096 \ --gpu-memory-utilization 0.90 \ --max-num-seqs 4 \ --enforce-eager \ --dtype bfloat16第一次运行时模型总共约 17.5GB将从 HuggingFace 下载。这需要 5-15 分钟具体取决于您的网络。服务器将准备就绪。第 5 步配置客户端在工作目录中创建一个local.env文件。Chandra 库在启动时从此文件读取VLLM_API_BASEhttp://localhost:8009/v1 VLLM_MODEL_NAMEchandra MAX_OUTPUT_TOKENS3000为什么 MAX_OUTPUT_TOKENS3000使用--max-model-len 4096和每页图像约 500 个输入令牌最大可用输出令牌约为 3500。设置 3000 提供了安全缓冲。第 6 步验证服务器curl http://localhost:8009/health curl http://localhost:8009/v1/models4、在 PDF 上运行 OCR以下是完整的流程脚本用于处理 PDF 并将输出保存为每个文档的单个 HTML 文件import time from pathlib import Path from pdf2image import convert_from_path from chandra.model import InferenceManager from chandra.model.schema import BatchInputItem from html_to_docx import html_string_to_docx PDF_PATH documents/lab_report.pdf OUTPUT_DIR ./output Path(OUTPUT_DIR).mkdir(exist_okTrue) manager InferenceManager(methodvllm) images convert_from_path(PDF_PATH, dpi150) print(fPages: {len(images)}) start time.time() all_pages [] for i, image in enumerate(images): print(fProcessing page {i1}/{len(images)}...) batch [BatchInputItem(imageimage, prompt_typeocr_layout)] result manager.generate(batch)[0] all_pages.append(result.markdown) # Save combined HTML input_stem Path(PDF_PATH).stem html_file Path(OUTPUT_DIR) / f{input_stem}.html html_file.write_text(\n\n.join(all_pages)) # Convert to DOCX docx_path Path(OUTPUT_DIR) / f{input_stem}.docx html_string_to_docx(\n\n.join(all_pages), str(docx_path)) print(fDone in {time.time() - start:.1f}s → {docx_path})点击这里查看完整代码。5、结束语Chandra OCR 代表了开源文档处理能力的一个有意义的转变。通过将 OCR 视为视觉语言任务并输出结构化 HTML 而不是原始文本它为开发人员提供了一个基础这是传统的基于流水线的工具根本无法比拟的 — 准确的表格、保留的布局、行内数学和复选框状态所有这些都在单个模型传递中完成。原文链接Chandra OCR 实测 - 汇智网

相关新闻

你的 IDE 正在成为配角

你的 IDE 正在成为配角

如果你最近在编码时感到有些……被取代了,恭喜你。你没有问题。是这个工作出了问题。 大约在 2025 年底,编码代理不再是周末尝鲜、周一默默卸载的新鲜事物。它们跨越了一个门槛——连贯性、耐力、“真正完成任务”——许多经验丰富的工程师注意到了同样…

2026/7/5 16:13:17 阅读更多 →
典型能量收集系统PMIC配置举例

典型能量收集系统PMIC配置举例

能量收集技术使设备能够利用其周围环境中的环境能量。这可以延长电池寿命,甚至完全省去电池。这对环境有益,因为它减少了废弃物和对原材料的需求;对用户也有利,因为他们减少了寻找和更换电池的时间。一个典型的能量收集系统包括&a…

2026/5/17 8:21:29 阅读更多 →
从技术到价值:2026AI搜索服务商选择新范式深度解析

从技术到价值:2026AI搜索服务商选择新范式深度解析

2026年,生成式AI用户规模突破5.15亿人,普及率达36.5%(易观分析2026年Q1),GEO(生成式引擎优化)已从企业数字化"加分项"蜕变为"必答题"。然而,面对市场中150家GEO…

2026/7/4 7:20:34 阅读更多 →

最新新闻

Dexter金融研究AI实战指南:如何用智能体系统化解决复杂投资问题

Dexter金融研究AI实战指南:如何用智能体系统化解决复杂投资问题

Dexter金融研究AI实战指南:如何用智能体系统化解决复杂投资问题 【免费下载链接】dexter An autonomous agent for deep financial research 项目地址: https://gitcode.com/GitHub_Trending/dexter19/dexter Dexter是一款专为深度金融研究设计的自主智能体系…

2026/7/5 16:12:56 阅读更多 →
5大技术优势:PyFluent如何用Python代码将CFD仿真效率提升10倍?

5大技术优势:PyFluent如何用Python代码将CFD仿真效率提升10倍?

5大技术优势:PyFluent如何用Python代码将CFD仿真效率提升10倍? 【免费下载链接】pyfluent Pythonic interface to Ansys Fluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent PyFluent作为Ansys Fluent的Python原生接口,正…

2026/7/5 16:12:56 阅读更多 →
实战指南:用FoundationPose实现6D物体姿态估计与跟踪的最佳实践

实战指南:用FoundationPose实现6D物体姿态估计与跟踪的最佳实践

实战指南:用FoundationPose实现6D物体姿态估计与跟踪的最佳实践 【免费下载链接】FoundationPose [CVPR 2024 Highlight] FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects 项目地址: https://gitcode.com/gh_mirrors/fo/FoundationPos…

2026/7/5 16:00:53 阅读更多 →
锂电硬件级过压保护方案设计与STM32实现

锂电硬件级过压保护方案设计与STM32实现

1. 项目背景与核心器件选型锂离子电池因其高能量密度和长循环寿命,已成为便携式电子设备和储能系统的首选电源方案。但过充电是导致锂离子电池热失控甚至起火爆炸的主要诱因之一,这让我在去年开发户外储能电源时深有体会。当时测试组反馈,在快…

2026/7/5 15:58:53 阅读更多 →
Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能

Gemma-4 E4B技术深度解析:如何用4.5B有效参数实现多模态智能 【免费下载链接】gemma-4-E4B 项目地址: https://ai.gitcode.com/hf_mirrors/google/gemma-4-E4B 当你面对一个需要同时处理文本、图像、音频和视频的AI项目时,是否曾为选择合适模型而…

2026/7/5 15:56:41 阅读更多 →
Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战

Vue3企业级数据可视化大屏架构设计:应对多分辨率适配与实时渲染挑战 【免费下载链接】IofTV-Screen-Vue3 一个基于 vue3、vite、Echart 框架的大数据可视化(大屏展示)模板 项目地址: https://gitcode.com/gh_mirrors/io/IofTV-Screen-Vue3 …

2026/7/5 15:56:41 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻