Chandra OCR快速上手:上传PDF→点击识别→下载Markdown,三步完成
你有没有过这样的经历:收到一份扫描版PDF合同,想把里面的关键条款复制进知识库,结果复制出来全是乱码?或者手头有一叠数学试卷的扫描件,表格和公式混在一起,用传统OCR一粘贴就错行、丢符号、表格变文字?更别说那些带复选框的表单、手写批注的作业本——它们在大多数OCR眼里,基本等于“不可读”。
Chandra 就是为解决这些真实痛点而生的。它不只认字,更懂文档的“结构”:哪是标题、哪是段落、哪是两栏排版、哪是嵌套表格、哪是手写批注、哪是 LaTeX 公式……识别完直接输出结构清晰、格式可用的 Markdown,连图片位置和坐标都给你标好。不是“能用”,而是“拿来就能塞进 RAG 流程、直接渲染成网页、或导入 Notion 做二次编辑”。
这不是概念演示,而是开箱即用的本地工具。RTX 3060 显卡(4GB 显存)就能跑起来,一条命令安装,一个网页点几下,三步搞定——上传、识别、下载。下面我们就从零开始,带你真正用起来。
1. 为什么 Chandra 和别的 OCR 不一样?
1.1 它不是“认字机器”,而是“文档理解助手”
传统OCR(比如 Tesseract)的核心任务是:把图里的像素,映射成最接近的字符。它不管上下文、不看布局、不区分标题和正文、遇到表格就崩溃。所以你常看到的结果是:一段话被切成七八行乱序排列,表格变成一堆竖着的文本,公式里的上下标全丢光。
Chandra 的设计哲学完全不同。它基于 ViT-Encoder+Decoder 架构,把整页 PDF 当作一张“视觉语言输入”来处理——就像人看书一样,先扫一眼整体结构(标题在哪、分几栏、有没有表格框),再聚焦到局部(这个小字是脚注、这个符号是积分号、这个勾是手写复选框)。这种“布局感知”能力,让它在 olmOCR 这个专为复杂文档设计的权威基准上,拿到了83.1 的综合得分,比 GPT-4o 和 Gemini Flash 2 都高。
更关键的是,它的强项正好卡在我们最头疼的场景上:
- 老扫描数学试卷:80.3 分(第一)——模糊、倾斜、手写公式混排也不怕;
- 多层嵌套表格:88.0 分(第一)——合并单元格、跨页表格、表头重复都能还原;
- 密密麻麻的小字号印刷体:92.3 分(第一)——合同细则、法律条文、参考文献,一个字不漏。
这不是参数堆出来的分数,而是实打实能解决你手头那堆“没法复制”的PDF的能力。
1.2 输出即所用:Markdown 不是附属品,而是核心交付物
很多OCR工具号称支持 Markdown,但实际是“把纯文本加几个#和|硬凑出来”,没有语义、没有层级、表格是假的、公式是乱码。
Chandra 的 Markdown 是“原生生成”的。它输出的不是“近似 Markdown”,而是保留完整文档语义结构的可编辑源码:
- 标题自动识别为
######; - 段落保持自然换行,不强行截断;
- 表格原样输出为标准 Markdown 表格语法,含对齐控制;
- 公式用
$...$或$$...$$包裹,兼容所有 Markdown 渲染器; - 图片附带
和精确坐标信息(方便后续做图文检索); - 手写批注、复选框(✓)、签名区,全部作为独立语义块标记。
这意味着,你下载下来的.md文件,不用任何清洗,就能直接:
- 拖进 Obsidian 做知识管理;
- 导入 Typora 写报告;
- 丢进 LlamaIndex 构建 RAG 知识库;
- 用 Pandoc 转成 PDF 或 Word 发给客户。
它交付的不是“识别结果”,而是“可工作的文档资产”。
2. 本地快速部署:三步启动,无需配置
2.1 一行命令安装,告别环境地狱
Chandra 提供了极简的安装路径。它不依赖你手动编译 PyTorch、不让你折腾 CUDA 版本、不强制你装特定版本的 Transformers。官方打包的chandra-ocr包,已经把所有依赖、模型权重、推理后端都封装好了。
只需确保你有 Python 3.9+ 和 pip,执行这一条命令:
pip install chandra-ocr安装过程约 1–2 分钟(主要下载约 2.1GB 的开源权重)。完成后,你立刻获得三套开箱即用的交互方式:
- 命令行工具
chandra-cli - 本地网页界面
chandra-web - Docker 镜像
chandra-ocr:latest
不需要改配置文件,不需要下载额外模型,不需要启动服务端——装完就能用。
2.2 启动网页界面:三步完成一次识别
我们推荐新手从网页界面入手,因为它最直观、最容错、最贴近“上传→识别→下载”的原始需求。
在终端中运行:
chandra-web你会看到类似这样的输出:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Application startup complete.打开浏览器访问http://127.0.0.1:8000,你就进入了 Chandra 的 Streamlit 界面。
整个操作流程真的只有三步:
- 上传:点击“Choose File”,选择你的 PDF(支持单页或多页,也支持 JPG/PNG);
- 识别:点击“Run OCR”按钮,等待几秒(单页平均 1 秒,取决于显卡);
- 下载:识别完成后,页面下方会并列显示 Markdown、HTML、JSON 三个预览框,点击对应“Download”按钮即可保存。
没有“模型选择”下拉框,没有“精度/速度”滑块,没有“后处理开关”——因为 Chandra 的默认设置,就是为真实文档优化过的最佳平衡点。你不需要调参,只需要相信它。
注意显存要求:界面底部会实时显示当前 GPU 显存占用。Chandra 在 4GB 显存(如 RTX 3060)上可稳定运行单页;若处理多页 PDF 或高清扫描件,建议 6GB+ 显存。这也是为什么官方强调“两张卡,一张卡起不来”——不是指必须双卡,而是提醒你:低于 4GB 显存的设备(如多数笔记本核显或旧款 MX 系列)将无法加载模型。
2.3 命令行批量处理:适合日常办公流
如果你需要每天处理几十份合同或试卷,网页点按太慢。chandra-cli就是为此设计的。
例如,把当前目录下所有 PDF 转成 Markdown 并存入output/文件夹:
chandra-cli --input ./docs/ --output ./output/ --format md它会自动遍历子目录、跳过已处理文件、记录日志,并为每份文档生成同名.md文件。你甚至可以加--skip-tables false强制开启表格识别(默认已开启),或--lang zh指定中文优先(多语言场景下提升准确率)。
没有学习成本,只有执行效率。
3. 实测效果:从扫描合同到数学试卷,真实可用
3.1 扫描合同 PDF:保留条款层级与表格结构
我们找了一份典型的 A4 扫描合同(150 DPI,轻微倾斜,含页眉页脚和两栏条款)进行测试。
传统 OCR 输出(Tesseract + pdf2image):
ARTICLE 1 DEFINITIONS... 1.1 "Affiliate" means any entity that... 1.2 "Effective Date" means the date... TABLE 1: FEES Item | Amount | Due Date -----|--------|--------- Setup Fee | $5,000 | Upon signing ...问题:条款编号错乱(1.1 变成 11)、表格无对齐、金额列全挤成一串。
Chandra 输出(截取关键部分):
## ARTICLE 1 DEFINITIONS ### 1.1 "Affiliate" means any entity that... ### 1.2 "Effective Date" means the date... ## TABLE 1: FEES | Item | Amount | Due Date | |-------------|----------|--------------| | Setup Fee | $5,000 | Upon signing | | Monthly Fee | $1,200 | First of month |条款标题自动分级(##/###)
表格完全可编辑,列对齐、内容无错位
所有数字、货币符号、标点 100% 准确
3.2 手写数学试卷:公式、手写体、印刷体混合识别
这是一份高中物理试卷扫描件,含:
- 印刷体题目与选项;
- 手写解题步骤(含草书“√”、“∫”);
- LaTeX 格式公式(如
F = ma、E = mc²); - 手绘坐标系草图。
Chandra 不仅正确识别出所有印刷文字和手写关键词(如“加速度”、“动能守恒”),还将公式原样输出为:
由牛顿第二定律: $$ F = ma $$ 动能表达式为: $$ E_k = \frac{1}{2}mv^2 $$手写批注(如右上角“√”和“+5”)被识别为独立文本块,并标注在对应题号旁。坐标系图片被保留为,且附带其在 PDF 中的(x=120, y=340, width=280, height=190)坐标。
这已经不是“识别”,而是“重建文档语义”。
4. 进阶用法:vLLM 加速与多GPU 并行
4.1 为什么需要 vLLM?当你的文档量变大
上面的网页和 CLI 默认使用 HuggingFace Transformers 后端,适合单机、中小批量(<100 页/天)场景。但当你进入企业级应用——比如每天要处理上千页招标文件、构建法律文书知识库——就需要更高吞吐。
vLLM 是专为大模型推理优化的引擎,Chandra 官方提供了原生 vLLM 后端支持。它的优势在于:
- 显存利用率提升 3–5 倍:同样 8GB 显存,vLLM 可并发处理 8–12 页,而 Transformers 仅能处理 2–3 页;
- 首 token 延迟降低 40%:对长文档(>10 页)尤其明显;
- 天然支持多 GPU:
CUDA_VISIBLE_DEVICES=0,1 chandra-web --backend vllm即可启用双卡并行。
启用方式极其简单。安装 vLLM(需 CUDA 12.1+):
pip install vllm然后启动时指定后端:
chandra-web --backend vllm界面无变化,但后台已切换至高性能模式。你不会看到任何“高级设置”,但处理速度和稳定性会实实在在提升。
4.2 Docker 一键部署:隔离环境,团队共享
对于开发团队或需要长期运行的服务,Docker 是最稳妥的选择。
拉取镜像(自动包含 vLLM 支持):
docker pull ghcr.io/datalab-to/chandra-ocr:latest运行(映射本地./input和./output目录):
docker run -p 8000:8000 \ -v $(pwd)/input:/app/input \ -v $(pwd)/output:/app/output \ ghcr.io/datalab-to/chandra-ocr:latest访问http://localhost:8000,即可使用完全一致的网页界面。所有处理结果自动落盘到你指定的./output,无需担心容器内文件丢失。
这是真正“一次配置,多人共用,升级无忧”的生产级方案。
5. 商业使用须知:开源友好,初创友好
Chandra 在许可设计上非常务实:
- 代码:Apache 2.0 开源协议,可自由修改、分发、商用;
- 模型权重:OpenRAIL-M 许可,明确允许商业用途;
- 特别豁免:年营收或融资额 ≤ 200 万美元的初创公司,可免费商用,无需单独申请授权;
- 超出范围:需联系 Datalab.to 获取企业授权(官网提供清晰的报价入口)。
这意味着,如果你是一家刚拿到天使轮的 SaaS 创业公司,正打算把 Chandra 集成进你的合同智能审查产品里——你今天就可以开始编码,明天就能上线,没有任何法律风险。
它不是“玩具模型”,而是为真实业务场景设计的基础设施级工具。
6. 总结:OCR 的终点,是让文档“活”起来
Chandra 不是又一个“更高精度”的 OCR 数值游戏。它的突破在于重新定义了 OCR 的交付目标:不再止步于“识别出文字”,而是让原始文档的结构、语义、意图,完整无损地迁移到数字世界。
它用 4GB 显存,交出了 83+ 的专业级分数;
它用三条命令,把 PDF 变成可编辑、可搜索、可嵌入、可分析的 Markdown;
它不强迫你成为调参工程师,而是让你回归文档本身——合同条款怎么组织、试卷公式怎么推导、表格数据怎么关联。
如果你手头正堆着扫描件、PDF、老资料,却苦于无法真正“用起来”,那么 Chandra 就是你等了十年的那把钥匙。
现在,打开终端,敲下pip install chandra-ocr,然后chandra-web——三步之后,你会发现,那些曾经“只能看不能动”的文档,第一次真正属于你。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。