精准提取复杂结构化数据!专为机器学习优化的强大 OCR 工具Versatile-OCR-Program

项目简介

该 OCR 系统专门设计用于从复杂的教育材料(如试卷)中提取结构化数据,以优化机器学习(ML)训练的格式。它支持多语言文本、数学公式、表格、图表和图表,非常适合创建高质量的训练数据集。


关键特性


– 优化用于机器学习训练:提取的元素,如图表、表格和图形,都附有语义注释和上下文解释。这包括为视觉内容自动生成自然语言描述(例如,“此图显示了有丝分裂的四个阶段”)以增强下游模型训练。

– 多语言支持:支持日语、韩语和英语,并可轻松定制以支持其他语言。

– 结构化输出:生成 AI 就绪的 JSON 或 Markdown 输出,包括数学表达式的可读描述、表格摘要和图形标题。

– 高精度:在真实世界学术数据集(如 EJU 生物学和 UTokyo 数学)上实现 90-95%以上的准确率。

– 复杂布局支持:准确处理具有密集科学内容、公式密集段落和丰富视觉元素的考试风格 PDF。

– 构建工具:DocLayout-YOLO、Google Vision API、Gemini Pro Vision、MathPix OCR、OpenAI API、OpenCV 等。


样本输出


以下是使用真实材料(2017 年 EJU 生物学和 2014 年东京大学数学)生成的该系统输出示例,包括英文翻译的语义上下文和提取的数据。

Math Input  数学输入

输出


翻译输出

问题 1. 考虑矩形棱柱 OABC–DEFG,其底面为边长为 1 的正方形。点 P、Q、R 分别位于 AE、BF 和 CG 段上,点 O、P、Q 和 R 位于同一平面上。设 S 为四边形 OPQR 的面积。设 ∠AOP 为 α,∠COR 为 β。如果 α + β = 1 且 S = S,求 tan α + tan β 的值。如果 α ≤ β,求 tan α 的值。

[Image Start]

图像描述:此图像展示了矩形棱柱 OAB-CDEFGQ。每个顶点都标有字母。角α标记在面 OAB 上。平面 ORPQ 与棱柱相交并被突出显示。线 RC 位于面 ODCG 上,线 PB 位于面 ABFQ 上。

教育价值:此图像通过可视化 3D 几何和横截面来增强空间推理。它有助于学习者理解平面几何、立体形状、空间可视化和角度等概念。

相关主题:立体几何、横截面、棱柱面、三角形、空间推理

考试相关性:此类问题出现在入学考试中:

  1. 计算 ORPQ 的面积,使用角度α
  2. 求 OR、RP、PQ、QO 的长度
  3. 确定 ORPQ 与棱柱面的夹角
  4. 在坐标系中定位点 P、Q、R
  5. 计算棱柱部分的体积/面积
  6. 根据约束预测形状
  7. 绘制棱柱的形状

[Image End] 

生物学输入

输出

翻译输出

问题 39。照片显示了洋葱根尖的有丝分裂细胞分裂过程(体细胞分裂)。细胞 A-D 处于不同的分裂阶段。将(前期、中期、后期、末期)与每个细胞对应,并从选项①-⑧中选择正确的组合。

[Image Start] 

图像描述:这张图像展示了在显微镜下观察到的植物细胞分裂过程。各种细胞处于不同的有丝分裂阶段,包括染色体在中心排列(中期)、向两极分离(后期)或形成子核(末期)。

A – 好像处于后期
B – 可能是末期
C – 前期或前中期
D – 中期

教育价值:这有助于学生直观地理解有丝分裂的过程,加强了对细胞分裂阶段及其特性的认识。它与生物学概念如 DNA 复制、癌症生物学和遗传学相联系。

相关主题:有丝分裂、细胞周期、前期、中期、后期、末期、DNA 复制

考试相关性:此图像用于以下问题:

  1. 将 A、B、C、D 与相应的有丝分裂阶段匹配
  2. 描述每个阶段的特点
  3. 解释有丝分裂的重要性
  4. 讨论有丝分裂中的错误如何导致遗传疾病

[Image End] 

[Table Start] 

前期
中期
後期
A
C
D
A
D
B
B
C
C
B
D
C
C
A
D
C
D
A
D
A
B
D
C
A


摘要:每个选项(①–⑧)对应 A、B、C、D 到有丝分裂前期、中期和后期的特定映射。

教育价值:理解有丝分裂中的时间转换和表格中的数据组织。增强数据解读、模式识别和分析技能。

相关主题:数据分析、表格解读、生物数据分类

[Table End]  [表格结束]


使用流程

  1. 步骤 1 – 初始 OCR 提取运行 ocr_stage1.py 从输入 PDF 中提取原始元素(文本、表格、图像等)。此步骤执行布局检测并存储中间结果(例如,坐标、裁剪图像、原始内容)。

  2. 步骤 2 – 语义解释与最终输出运行 ocr_stage2.py 处理中间数据并将其转换为结构化、可读的输出。这包括生成自然语言解释、摘要并将内容组织成 AI 准备的格式(JSON/Markdown)。


技术实现

– 表格处理优化使用 DocLayout-YOLO 检测表格区域

– Google Vision OCR 用于表格处理,而不是 MathPix,以提高日语文本的准确性

– 表格结构以结构化 JSON 格式保存(保持行/列结构)

– 维护 Y 坐标信息以确保上下文连续性

– 原始布局信息与结构化数据一起保存,以供机器学习训练使用

– 图像和特殊区域处理:使用 Google Vision API 的图像分析功能(imageProperties、labelDetection、textDetection)处理图像区域

– 使用 Google Cloud Vision API 生成图像描述

– – 使用 Google Cloud Vision API 的文档分析功能处理图表/图表,并提取数据点

– 特殊区域处理结果以结构化 JSON 格式存储,用于机器学习训练

– 原始坐标信息和区域类型元数据被添加以保持上下文连续性



项目链接

https://github.com/ses4255/Versatile-OCR-Program

扫码加入技术交流群,备注开发语言-城市-昵称

(文:GitHubStore)

发表评论