计算机视觉

GLM-OCR:文档识别与 Markdown、JSON 输出

zai-org/GLM-OCR

面向表格、公式和复杂版面的 OCR 项目,提供云端调用、自托管管线、命令行及 Python SDK。

★ 7.5K星级
⑂ 671Fork 数
48未解决的问题
Python语言
Apache-2.0许可证
Q84编辑评分

概览

GLM-OCR 将文档版面分析与文字识别结合,完整管线使用 PP-DocLayoutV3 分析区域,再进行识别。SDK 可以把图片和 PDF 等文档交给云端处理,也可以连接自托管模型服务。对于知识库建设,它位于索引之前:把原始页面变成可检查的文本与结构,再由业务系统分段、建立索引和保留页码关系。模型本身约 0.9B 参数,实际资源需求还受布局模型与服务配置影响。

主要功能

  • 面向正文、表格与公式识别。
  • 完整管线包含版面区域分析。
  • 云端模式可返回 Markdown 与 JSON 版面信息。
  • 提供 glmocr parse 命令行入口。
  • Python API 支持单图和多页输入。
  • 可选择云端、vLLM、SGLang 等部署路径。

要求、安装和快速入门

1. 云端入门执行 pip install glmocr。
2. 按官方配置示例设置 pipeline.maas.enabled 与 API 密钥,密钥保存在本地配置或部署密钥系统。
3. 自托管布局管线安装 pip install "glmocr[selfhosted]",再按文档配置模型服务地址。
4. 使用 glmocr parse image.png --output ./results/ 处理样本图片。
5. Python 中可调用 parse("image.png") 并使用 result.save(output_dir="./results")。
6. 检查输出目录中的识别文本和结构,再扩大到目录或多页文档。

用法

例如整理一批产品手册,可先挑选正文页、表格页和公式页各一张,检查阅读顺序、表格单元格和公式符号是否保留。通过后再批量处理,并将原图、页码与输出文件一起保存。Python 中传入图片列表会被当作同一文档的多页,而不是多个独立文档;多个文件的业务边界需要调用方自行组织。

实施要点
低清晰度、倾斜、复杂印章和密集表格会增加错误机会。对后续检索或统计有影响的数字和字段应抽样核对;模型识别结果需要再经过业务规则校验。

模型兼容性与使用场景

云端模式需要可用 API 凭据和网络,文件会发送到服务提供方;自托管需要对应推理环境。SDK 客户端无 GPU 不代表自托管服务端也无需计算资源。

许可证与风险说明

仓库代码采用 Apache-2.0;GLM-OCR 模型采用 MIT;完整管线中的 PP-DocLayoutV3 采用 Apache-2.0。

opencv

opencv/opencv

★ 90.7KC++

tesseract

tesseract-ocr/tesseract

★ 76.3KC++

yolov5

ultralytics/yolov5

★ 58KPython

faceswap

deepfakes/faceswap

★ 57.5KPython