Versatile-OCR-Program:能够从复杂的材料(如考试试卷)中提取结构化数据的OCR
Versatile-OCR-Program是什么?
Versatile-OCR-Program是一个专门针对机器学习训练优化的OCR系统,能够从复杂的教育材料(如考试试卷)中提取结构化数据并输出JSON或Markdown格式。支持日语、韩语、英语,可扩展到其他语言、数学公式、表格、图表和图表,还能以语义注释的方式进行标注,生成自然语言描述。
Versatile-OCR-Program主要特点
优化机器学习训练:提取的元素(如图表、表格和图形)会进行语义注释,包括自动生成视觉内容的自然语言描述,以增强下游模型训练。
多语言支持:支持日语、韩语和英语,并且可以轻松定制其他语言。
结构化输出:以JSON或Markdown格式生成ai就绪的输出,包括数学表达式的人类可读描述、表格摘要和图形标题。
高精度:在EJU生物学和东京大学数学等真实世界学术数据集上,准确率可达90% - 95%。
复杂布局支持:能够准确处理包含密集科学内容、公式密集段落和丰富视觉元素的考试风格PDF。
技术实现:使用了DocLayout-YOLO、Google Vision API、Gemini Pro Vision、MathPix OCR、OpenAI API、OpenCV等技术。
样例输出
提供了实际的样例输出,包括数学和生物学问题的输入图像和转换后的输出图像,以及英语翻译的语义上下文和提取的数据。
数学问题样例:展示了如何从一个包含几何图形和角度的图像中提取信息,并生成相关的描述和问题。
生物学问题样例:展示了如何从一个显示洋葱根尖细胞有丝分裂过程的图像中提取信息,并生成相关的描述和问题。
Versatile-OCR-Program使用流程
第1步:初始OCR提取:运行ocr_stage1.py脚本,从输入PDF中提取原始元素(文本、表格、图形等),执行布局检测并存储中间结果。
第2步:语义解释和最终输出:运行ocr_stage2.py脚本,处理中间数据并将其转换为结构化、人类可读的输出,包括生成自然语言解释、摘要,并将内容组织成AI就绪格式(JSON/Markdown)。
技术实现
表格处理优化:使用DocLayout-YOLO检测表格区域,使用Google Vision OCR进行表格处理(对于日语文本效果更好),并以结构化的JSON格式保留表格结构。
图像和特殊区域处理:使用Google Vision API的图像分析功能处理图像区域,使用Google Cloud Vision API生成图像描述,使用Google Cloud Vision API的文档分析功能处理图表/图表,并以结构化的JSON格式存储处理结果。
输入效果
输出效果
Versatile-OCR-Program应用
教育领域:用于提取和整理考试试卷、学术论文等教育材料中的数据,为教育研究和学习提供支持。
机器学习训练:生成高质量的训练数据集,用于训练机器学习模型,特别是在教育领域的应用。
多语言文档处理:适用于需要处理多种语言文档的场景,如国际学术交流、多语言教育材料的数字化等。
github项目:https://github.com/ses4255/Versatile-OCR-Program