AI个人学习
和实操指南
讯飞绘镜

VOP:提取复杂图表与数学公式的OCR工具

综合介绍

Versatile OCR Program 是一个开源的光学字符识别(OCR)工具,专门为处理复杂的学术和教育文档设计。它能从PDF、图像等文件中提取文本、表格、数学公式、图表和示意图,并生成适合机器学习训练的结构化数据。支持多语言,包括英语、日语和韩语,输出格式为JSON或Markdown,方便开发者使用。

VOP:提取复杂图表与数学公式的OCR工具-1


VOP:提取复杂图表与数学公式的OCR工具-1

 

功能列表

  • 提取多语言文本,支持英语、日语、韩语等,可扩展其他语言。
  • 识别数学公式,生成LaTeX代码和自然语言描述。
  • 解析表格,保留行列结构,输出结构化数据。
  • 分析图表和示意图,生成语义标注和描述(如“此图展示细胞分裂四个阶段”)。
  • 处理复杂布局PDF,准确识别公式密集段落和视觉元素。
  • 输出JSON或Markdown格式,包含语义上下文,优化AI训练。
  • 使用DocLayout-YOLO、Google Vision API、MathPix等技术,提升识别精度。
  • 提供90–95%的高准确率,适用于真实学术数据集(如EJU生物、东大数学)。
  • 支持批量处理,处理多文件输入。

 

使用帮助

安装流程

要使用Versatile OCR Program,需克隆仓库并配置环境。以下是详细步骤:

  1. 克隆仓库
    在终端运行:

    git clone https://github.com/ses4255/Versatile-OCR-Program.git
    cd Versatile-OCR-Program
    
  2. 创建虚拟环境
    推荐使用Python 3.8或更高版本。创建并激活虚拟环境:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    
  3. 安装依赖
    安装项目所需库:

    pip install -r requirements.txt
    

    依赖包括opencv-pythongoogle-cloud-visionmathpixpillow等。确保网络连接稳定。

  4. 配置API密钥
    项目依赖外部API(如Google Vision、MathPix)进行高级OCR处理:

    • Google Vision API:在config/目录下创建google_credentials.json,填入服务账号密钥。获取密钥请访问Google Cloud Console
    • MathPix API:在config/目录下创建mathpix_config.json,填入app_idapp_key。注册MathPix账户可获取密钥。
    • 配置文件模板见项目README.md
  5. 验证安装
    运行测试脚本确保环境正确:

    python test_setup.py
    

    如无错误,安装完成。

操作流程

Versatile OCR Program分为两阶段运行:初始提取和语义处理。

1. 初始OCR提取

运行ocr_stage1.py提取原始元素(文本、表格、图表等):

python ocr_stage1.py --input sample.pdf --output temp/
  • --input指定输入文件(PDF或图像,如PNG、JPEG)。
  • --output指定中间结果目录,包含坐标、裁剪图像等。
  • 支持批量处理:用--input_dir指定文件夹。

2. 语义处理与最终输出

运行ocr_stage2.py将中间数据转为结构化输出:

python ocr_stage2.py --input temp/ --output final/ --format json
  • --input指定第一阶段的输出目录。
  • --format选择输出格式(jsonmarkdown)。
  • 输出包含文本、公式描述、表格数据和图表语义标注。

主要功能操作

1. 多语言文本提取

提取PDF或图像中的文本,支持多语言:

python ocr_stage1.py --input document.pdf --lang eng+jpn+kor --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --lang指定语言,格式为eng(英语)、jpn(日语)、kor(韩语),多语言用+连接。
  • 输出文件包含文本内容和语义上下文,保存为Markdown或JSON。

2. 数学公式识别

识别公式并生成LaTeX代码及描述。例如,公式x^2 + y = 5输出为“一个二次方程,包含变量x和y”。操作:

python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode math激活公式识别。
  • 输出包含LaTeX代码和自然语言描述。

3. 表格解析

提取表格,保留行列结构:

python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode table专注于表格处理。
  • 输出为JSON,包含行列数据和总结描述。

4. 图表与示意图分析

分析图表或示意图,生成语义标注。例如,折线图可能输出“显示2010至2020年气温变化的折线图”。操作:

python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --mode figure启用图表分析。
  • 输出包含图像描述、数据点提取和上下文。

使用技巧

  • 提高准确率:输入高分辨率文件(推荐300 DPI)。运行时添加--dpi 300优化图像解析。
  • 批量处理:用--input_dir data/处理文件夹内所有文件。
  • 自定义语言:编辑config/languages.json添加语言,需安装对应OCR模型(如Tesseract语言包)。
  • 调试日志:添加--verbose查看详细运行信息。
  • 压缩输出:用--compress减小JSON文件体积。

注意事项

  • 确保输入文件清晰,低质量文件可能降低识别精度。
  • 外部API需稳定网络,建议配置备用密钥。
  • 输出目录需有足够磁盘空间,大型PDF可能生成较大文件。
  • 根据GNU AGPL-3.0许可证,衍生项目必须公开源代码。
  • 项目计划一个月内发布AI流水线集成,敬请关注。

通过以上步骤,用户可快速上手,处理复杂文档并生成AI训练数据。

 

应用场景

  1. 学术研究数据提取
    研究人员可从考试试卷或论文中提取公式、表格和图表,生成带语义标注的数据集。例如,将东大数学试卷转为JSON,用于几何模型训练。
  2. 教育资源数字化
    学校可将纸质教材或试卷转为电子格式,提取多语言文本和图表,生成可搜索档案。适合国际课程的多语言处理。
  3. 机器学习数据集构建
    开发者可从学术文档提取结构化数据,生成高质量训练集。例如,提取生物试卷的细胞分裂图表,标注阶段描述,训练图像识别模型。
  4. 档案馆文档处理
    图书馆可将历史学术文档转为数字格式,保留公式和表格结构,提高检索效率。支持复杂布局的PDF处理。
  5. 考试分析工具
    教育机构可分析试卷内容,提取题目类型和图表,生成统计报告,优化教学设计。

 

QA

  1. 支持哪些输入格式?
    支持PDF和图像(PNG、JPEG)。推荐高分辨率PDF以确保准确率。
  2. 如何提高表格识别精度?
    使用清晰文件,启用--dpi 300。对于日语表格,Google Vision API优于MathPix,可在config/中调整。
  3. 是否必须使用付费API?
    Google Vision和MathPix API需付费账户,但DocLayout-YOLO等开源模块免费。建议配置API以获得最佳效果。
  4. 如何添加新语言?
    编辑config/languages.json,添加语言代码和OCR模型(如Tesseract语言包)。重启程序生效。
  5. 输出文件过大怎么办?
    --compress压缩JSON,或选择Markdown格式。也可限制输出模块,如仅提取文本(--mode text)。
  6. 如何参与项目改进?
    可通过GitHub提交Pull Request或联系作者(邮箱:ses425500000@gmail.com)。欢迎贡献代码或反馈问题。
未经允许不得转载:首席AI分享圈 » VOP:提取复杂图表与数学公式的OCR工具
zh_CN简体中文