Show HN: OCR pipeline for ML training (tables, diagrams, math, multilingual)
Show HN:用于 ML 训练的 OCR Pipeline(表格、图表、数学公式、多语言支持)
OCR系统:针对机器学习优化的图文识别(图表、流程图、表格、数学公式及多语言文本)
概述
这个 OCR 系统专门用于从复杂的教育材料(例如试卷)中提取结构化数据,并将其转换为针对机器学习 (ML) 训练优化的格式。它支持多语言文本、数学公式、表格、图表和流程图,使其成为创建高质量训练数据集的理想选择。
主要特性
- 针对 ML 训练优化:提取的元素(例如图表、表格和图片)都带有语义注释和上下文解释。 这包括为视觉内容自动生成自然语言描述(例如“该图显示了有丝分裂的四个阶段的过程”),以增强下游模型训练。
- 多语言支持:支持日语、韩语和英语,并且可以轻松定制以支持其他语言。
- 结构化输出:生成可直接用于 AI 的 JSON 或 Markdown 格式的输出,包括人类可读的数学表达式描述、表格摘要和图片标题。
- 高准确率:在真实的学术数据集(如 EJU 生物和东京大学数学)上实现了超过 90-95% 的准确率。
- 复杂布局支持:准确处理包含密集的科学内容、大量公式段落和丰富的视觉元素的考试风格的 PDF。
- 构建工具:使用 DocLayout-YOLO、Google Vision API、Gemini Pro Vision、MathPix OCR、OpenAI API、OpenCV 等构建。
示例输出
以下是该系统使用真实材料(2017 EJU 生物和 2014 东京大学数学)生成的实际输出示例,包括英文翻译的语义上下文和提取的数据。
英文翻译的输出
问题 1. 考虑一个长方体 OABC–DEFG,其底面是边长为 1 的正方形。点 P、Q、R 分别位于线段 AE、BF 和 CG 上,并且四个点 O、P、Q 和 R 位于同一平面上。令 S 为四边形 OPQR 的面积。另外,令 ∠AOP 为 α,∠COR 为 β。(2) 如果 α + β = 1 且 S = S,求 tan α + tan β 的值。 另外,如果 α ≤ β,求 tan α 的值。
[图像开始]
图像描述:此图像显示了长方体 OAB–CDEFGQ。 每个顶点都标有字母。 角度 α 标记在面 OAB 上。 平面 ORPQ 与棱镜相交并突出显示。 线 RC 位于面 ODCG 上,线 PB 位于面 ABFQ 上。
教育价值:此图像通过可视化 3D 几何和横截面来增强空间推理。 它帮助学习者理解平面几何、立体形状、空间可视化和角度等概念。
相关主题:立体几何、横截面、棱镜面、三角形、空间推理
考试相关性:此类问题出现在入学考试中,例如:
- 使用角度 α 计算 ORPQ 的面积
- 查找 OR、RP、PQ、QO 的长度
- 确定 ORPQ 与棱镜面之间的角度
- 在坐标空间中定位点 P、Q、R
- 计算棱镜部分的体积/面积
- 根据约束预测形状
- 绘制棱镜的形状
[图像结束]
英文翻译的输出
问题 39. 照片显示了洋葱根尖的有丝分裂细胞分裂过程(体细胞分裂)。 细胞 A–D 处于不同的分裂阶段。 将阶段(前期、中期、后期、末期)与每个细胞匹配,然后从选项 ①–⑧ 中选择正确的组合。
[图像开始]
图像描述:该图像显示了在显微镜下观察到的植物细胞分裂过程。 各种细胞处于不同的有丝分裂阶段,包括在中心对齐的染色体(中期)、分离到两极(后期)或形成子核(末期)。
A – 似乎处于后期 B – 可能是末期 C – 前期或前中期 D – 中期
教育价值:这有助于学生直观地理解有丝分裂的过程,从而巩固细胞分裂阶段及其特征的知识。 它与 DNA 复制、癌症生物学和遗传学等生物学概念相关。
相关主题:有丝分裂、细胞周期、前期、中期、后期、末期、DNA 复制
考试相关性:此图像用于以下问题中:
- 将 A、B、C、D 匹配到适当的有丝分裂阶段
- 描述每个阶段的特征
- 解释有丝分裂的意义
- 讨论有丝分裂中的错误如何导致遗传疾病
[图像结束]
[表格开始]
前期 | 中期 | 后期 ---|---|--- 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 与前期、中期和后期的特定映射。
教育价值:理解有丝分裂中基于时间的过渡和表格中的数据组织。 增强数据解释、模式识别和分析技能。
相关主题:数据分析、表格解释、生物数据分类
[表格结束]
使用工作流程
- 步骤 1 – 初始 OCR 提取 运行
ocr_stage1.py
从输入的 PDF 中提取原始元素(文本、表格、图像等)。 这一步执行布局检测并存储中间结果(例如,坐标、裁剪的图像、原始内容)。 - 步骤 2 – 语义解释和最终输出 运行
ocr_stage2.py
来处理中间数据并将其转换为结构化的、人类可读的输出。 这包括生成自然语言解释、摘要,并将内容组织成可直接用于 AI 的格式(JSON/Markdown)。
技术实现
- 表格处理优化:使用 DocLayout-YOLO 检测表格区域。
- 使用 Google Vision OCR 进行表格处理,而不是 MathPix,以便在日文文本中获得更高的准确性。
- 表格结构以结构化的 JSON 格式保存(保持行/列结构)。
- 保留 Y 坐标信息以确保上下文连续性。
- 原始布局信息与结构化数据一起保存,以用于 ML 训练。
- 图像和特殊区域处理:使用 Google Vision API 的图像分析功能(imageProperties、labelDetection、textDetection)处理图像区域。
- 使用 Google Cloud Vision API 生成图像描述。
- 使用 Google Cloud Vision API 的文档分析功能处理图形/图表,并提取数据点。
- 特殊区域处理结果以结构化的 JSON 格式存储,以用于 ML 训练。
- 添加原始坐标信息和区域类型元数据以保持上下文连续性。
目的和联系方式
这个 OCR 系统是一个开放项目,我希望看到其他人改进或在此基础上构建。 持续更新和社区驱动的增强是目标。
如果您对定制的 AI 工具感兴趣,或者想合作开展与 AI 相关的项目,请随时通过电子邮件与我联系:
电子邮件 : ses425500000@gmail.com
注:示例中的英文翻译经过手动重新格式化,以提高清晰度和一致性。 请仅将其视为参考,因为结构和布局可能与原始结构和布局略有不同。
关键词:OCR、考试 OCR、表格识别、图表 OCR、AI 教育工具、OpenAI、Gemini Pro Vision、多语言 OCR、DocLayout-YOLO、机器学习、教育 ML 数据集、研究 OCR、论文 OCR、文档 AI
关于
多模态 OCR pipeline,针对 ML 训练进行了优化(文本、图表、数学公式、表格、示意图)。
主题
machine-learning ocr openai multi-modal educational-data table-parsing ml-datasets exam-ocr doclayout paper-ocr