Chandra OCR零基础入门:5分钟搞定PDF转Markdown
Chandra OCR是2025年开源的布局感知型OCR工具,专为真实业务场景设计——不是“能识别文字”,而是“懂文档结构”。它能把扫描合同、数学试卷、带复选框的表单、手写笔记等复杂PDF,一键变成可直接进知识库的Markdown,保留标题层级、段落缩进、表格行列、公式符号甚至图片坐标。更关键的是,它不挑硬件:一张RTX 3060(12GB显存)就能跑起来,开箱即用,不用调参、不需训练。
本文不讲模型原理,不堆参数指标,只聚焦一件事:你打开电脑,5分钟内把一份扫描PDF变成干净、结构完整、能复制粘贴、能放进Obsidian或Notion的Markdown文件。全程无报错提示、无环境踩坑、无术语轰炸,就像安装微信一样简单。
1. 为什么这次OCR体验不一样
过去用OCR,常遇到这些尴尬:
- 表格识别成乱码段落,复制后完全没法用
- 公式变成一堆乱七八糟的LaTeX符号,还得手动重写
- 手写签名和旁边打印字混在一起,分不清谁是谁
- PDF里明明有三栏排版,输出却是一整坨文字,阅读体验极差
Chandra 的突破点不在“认得更准”,而在“看得更懂”——它把整页PDF当作一个视觉场景来理解,像人眼扫视一样识别标题、正文、脚注、表格边界、公式区域、手写批注位置。所以输出不是“文字流”,而是带语义结构的文档树,最终落地为真正可用的Markdown。
官方在olmOCR基准测试中拿到83.1分(满分100),其中:
- 表格识别准确率88.0%(当前SOTA)
- 老扫描件中的数学公式识别80.3%
- 小字号密集文本(如合同细则)达92.3%
更重要的是:它输出的就是Markdown,不是中间格式,不是需要再转换的JSON,不是要套模板的HTML——你双击打开,就是标准.md文件,标题是#,列表是-,表格是|---|,公式是$...$,图片带,连相对路径都帮你配好。
2. 零配置安装:一行命令,立刻开干
Chandra 提供了三种使用方式:本地HuggingFace推理、远程vLLM服务、以及本文主推的——预装vLLM的Docker镜像。对新手最友好的,就是这个镜像:它已内置vLLM运行时、CUDA驱动、模型权重和Web界面,你不需要知道什么是vLLM,也不用担心CUDA版本冲突。
前置条件:你的机器已安装Docker(Windows/Mac用户推荐Docker Desktop,Linux用户确保docker daemon已启动)
2.1 一键拉取并启动镜像
打开终端(命令行),执行这一行:
docker run -p 7860:7860 --gpus all -v $(pwd)/chandra_output:/app/output ghcr.io/kakajiang/chandra:latest说明:
-p 7860:7860:把容器内Web服务映射到本机7860端口--gpus all:自动调用所有可用GPU(支持单卡/多卡,RTX 3060/4090均可)-v $(pwd)/chandra_output:/app/output:把当前目录下的chandra_output文件夹挂载为输出目录(自动创建)ghcr.io/kakajiang/chandra:latest:官方维护的稳定镜像(Apache 2.0许可,可商用)
执行后你会看到类似这样的日志滚动:
INFO | Starting vLLM engine... INFO | Loading model weights... INFO | Model loaded in 12.4s (VRAM used: 3.8 GB) INFO | Launching Streamlit app on http://0.0.0.0:7860成功标志:最后一行出现http://0.0.0.0:7860—— 这说明服务已就绪。
2.2 打开浏览器,开始第一次转换
在浏览器地址栏输入:http://localhost:7860
你会看到一个简洁的Web界面(无需登录、无账号、无联网验证):
- 左侧是上传区:支持拖拽PDF或图片(PNG/JPEG),也支持批量上传多个文件
- 中间是参数区:默认设置已针对中文文档优化,新手完全不用改任何选项
- 右侧是实时预览区:上传后自动开始处理,几秒内显示Markdown渲染效果
小技巧:首次使用建议上传一页带表格的PDF(比如课程大纲、产品说明书),亲眼看看表格是如何被原样还原为Markdown表格的——这是检验“布局感知”能力最直观的方式。
3. 第一次实战:把扫描PDF变成可编辑Markdown
我们以一份常见的《员工入职登记表》扫描件为例(含打印字段+手写填空+复选框+页眉页脚),演示完整流程。
3.1 上传与识别
- 点击界面左侧「Upload Files」区域,选择你的PDF文件(支持多页PDF)
- 等待右上角进度条走完(单页平均耗时1–3秒,取决于GPU性能)
- 右侧预览区立即显示结构化结果:
- 标题自动识别为
# 员工入职登记表 - “姓名”“身份证号”等字段识别为二级标题
## 姓名 - 手写填写内容出现在对应标题下方,未与打印文字混淆
- 复选框被标注为
[x]或[ ](支持自动识别勾选状态) - 表格区域完整保留为Markdown表格,行列对齐精准
- 标题自动识别为
3.2 下载与验证
点击右上角「Download Markdown」按钮,文件将保存为xxx.md(文件名与PDF同名)。
用任意文本编辑器打开该文件,你会看到:
# 员工入职登记表 ## 基本信息 | 字段 | 内容 | |------|------| | 姓名 | 张明 | | 性别 | 男 | | 出生日期 | 1995-03-12 | ## 教育背景 - [x] 本科 - [ ] 硕士 - [ ] 博士 ## 紧急联系人 **姓名**:李华 **关系**:配偶 **电话**:138****1234验证点:
- 所有标题层级正确(
#→##→-) - 表格语法标准,可直接粘贴进Typora/Obsidian渲染
- 复选框是纯文本
[x],非图片,可直接编辑 - 没有乱码、没有错位、没有缺失段落
这就是Chandra的“零思考成本”价值:你不需要判断哪段是标题、哪列是数据、哪个框被勾选了——它已经替你做好了语义切分。
4. 进阶但实用的3个操作技巧
虽然默认设置已覆盖90%场景,但以下三个技巧能帮你应对更复杂的文档需求,且全部在Web界面中点选即可完成,无需命令行。
4.1 精确控制处理范围:跳过封面/只处理指定页
很多PDF前几页是封面、目录、版权声明,不需要OCR。Chandra支持页面级控制:
- 在上传后,点击右上角「Page Range」输入框
- 输入格式:
2-10(处理第2到第10页)、1,3,5(只处理第1、3、5页)、5-(从第5页到末尾) - 修改后点击「Reprocess」,仅重新处理指定页,不重复计算已处理页
实用场景:处理100页的招标文件,只需OCR技术规格章节(第12–45页),跳过商务条款和附件。
4.2 输出增强:保留原始图像与坐标信息
默认输出只含Markdown,但Chandra还能输出更多结构化资产:
- 勾选「Include Image Assets」:自动提取PDF中所有嵌入图片,保存至
output/images/子目录,并在Markdown中插入正确路径 - 勾选「Export JSON Layout」:额外生成
xxx_layout.json,包含每个文本块的坐标(x,y,width,height)、字体大小、是否为标题等元数据,方便后续做RAG切片或可视化对齐
实用场景:构建法律文档知识库时,JSON坐标可用于高亮原文定位;教育场景中,可把学生手写作答区域单独裁剪分析。
4.3 中文专项优化:启用“竖排文本”与“繁体兼容”
Chandra对中文支持做了深度适配:
- 默认启用「Chinese Layout Mode」:自动识别竖排古籍、证书、对联类文档,输出为自适应Markdown(竖排转为段落+换行)
- 内置繁体字词典:可准确识别港台PDF中的“裡”“為”“綫”等字,无需额外切换语言
- 手写体增强:对中文签名、批注、草书连笔字,采用独立分支识别路径,准确率比通用OCR高23%(基于内部测试集)
实用场景:处理港澳台地区合同、古籍扫描件、教师手写评语PDF,无需预处理或人工校对。
5. CLI模式:当你要批量处理整个文件夹时
Web界面适合单次调试和小批量验证,但当你有几十份PDF要处理(比如月度财务凭证、季度项目报告),命令行更高效。Chandra CLI与镜像完全兼容,无需额外安装。
5.1 在容器内直接运行CLI
保持上一步的docker容器运行(不要Ctrl+C),新开一个终端窗口,执行:
# 进入正在运行的容器 docker exec -it $(docker ps -q --filter ancestor=ghcr.io/kakajiang/chandra:latest) bash # 批量处理当前目录下所有PDF,输出到/output/batch chandra /app/input /app/output/batch --method vllm注意:
/app/input是容器内固定输入路径,你需要先把PDF文件复制进去:docker cp ./my_pdfs/. $(docker ps -q --filter ancestor=ghcr.io/kakajiang/chandra:latest):/app/input/
5.2 输出结构一目了然
批量处理完成后,/app/output/batch/下会生成按文件组织的结构:
batch/ ├── invoice_2024Q3.pdf/ │ ├── invoice_2024Q3.md # 主Markdown文件 │ ├── invoice_2024Q3.html # 同步HTML(带CSS样式) │ ├── invoice_2024Q3_layout.json # 布局元数据 │ └── images/ # 提取的所有图片 ├── report_research.pdf/ │ ├── report_research.md │ └── ...每个.md文件都已按最佳实践格式化:标题层级清晰、表格对齐、公式包裹在$$中、图片路径相对正确——你可直接拖进Notion或Obsidian,开箱即用。
6. 常见问题速查:5分钟内解决95%问题
| 问题现象 | 原因 | 解决方案 |
|---|---|---|
| 上传后无反应,界面卡在“Processing…” | GPU显存不足(常见于RTX 3060以下显卡) | 在Web界面右上角「Advanced」中,将Max Batch Size从默认4改为1,或勾选「Use CPU Fallback」(速度慢3倍,但必成功) |
| 表格识别错行,内容挤在第一列 | PDF扫描质量差(模糊/倾斜/低对比度) | 上传前用手机扫描App(如CamScanner)先做“增强”处理,或勾选Web界面中的「Preprocess: Auto-enhance」 |
| 中文显示为方块□□□ | 字体缺失(仅影响HTML预览,不影响Markdown) | 忽略。Markdown文件本身是UTF-8纯文本,所有编辑器均正常显示;HTML预览问题不影响实际使用 |
| 手写部分完全没识别出来 | 手写区域太小或颜色太淡 | 在「Advanced」中开启「Handwriting Boost」模式(专为中文手写优化,增加0.8秒处理时间) |
| 输出Markdown中公式是乱码 | 公式区域被误判为普通文本 | 手动在Web预览区点击该公式→右键「Refine as Math」,系统会重新识别并插入$$...$$ |
终极提示:Chandra不是“完美OCR”,而是“足够好用的OCR”。它的设计哲学是:宁可少识别一行,也不错识一个字;宁可跳过一个模糊表格,也不输出错位行列。因此,首次结果不满意时,请优先尝试调整预处理选项,而非怀疑模型能力。
7. 总结:你刚刚掌握了什么
你不需要记住ViT架构、不用理解vLLM调度原理、不用配置CUDA版本——你只需要知道:
- 一行
docker run命令,就能在本地跑起工业级OCR服务 - 上传PDF → 看预览 → 下载
.md→ 粘贴进笔记软件,全程5分钟 - 表格、公式、手写、复选框,全部原样变成可编辑Markdown语法
- 批量处理、页面筛选、图像提取、坐标导出,全在点选之间完成
- 中文场景深度优化,繁体、竖排、手写,开箱即用不翻车
Chandra的价值,不在于它有多“AI”,而在于它有多“省心”。它把OCR从一项需要调参、校验、修复的技术活,还原成文档工作者的一个自然动作:看到PDF,就想把它变成Markdown。
现在,你的第一份扫描合同已经躺在chandra_output/文件夹里,是一个干净、结构清晰、可搜索、可引用、可协作的Markdown文件。接下来,轮到你自己的文档了。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。