Versatile-OCR-Program:能夠從復雜的材料(如考試試卷)中提取結構化數(shù)據(jù)的OCR
Versatile-OCR-Program是什么?
Versatile-OCR-Program是一個專門針對機器學習訓練優(yōu)化的OCR系統(tǒng),能夠從復雜的教育材料(如考試試卷)中提取結構化數(shù)據(jù)并輸出JSON或Markdown格式。支持日語、韓語、英語,可擴展到其他語言、數(shù)學公式、表格、圖表和圖表,還能以語義注釋的方式進行標注,生成自然語言描述。
Versatile-OCR-Program主要特點
優(yōu)化機器學習訓練:提取的元素(如圖表、表格和圖形)會進行語義注釋,包括自動生成視覺內容的自然語言描述,以增強下游模型訓練。
多語言支持:支持日語、韓語和英語,并且可以輕松定制其他語言。
結構化輸出:以JSON或Markdown格式生成ai就緒的輸出,包括數(shù)學表達式的人類可讀描述、表格摘要和圖形標題。
高精度:在EJU生物學和東京大學數(shù)學等真實世界學術數(shù)據(jù)集上,準確率可達90% - 95%。
復雜布局支持:能夠準確處理包含密集科學內容、公式密集段落和豐富視覺元素的考試風格PDF。
技術實現(xiàn):使用了DocLayout-YOLO、Google Vision API、Gemini Pro Vision、MathPix OCR、OpenAI API、OpenCV等技術。
樣例輸出
提供了實際的樣例輸出,包括數(shù)學和生物學問題的輸入圖像和轉換后的輸出圖像,以及英語翻譯的語義上下文和提取的數(shù)據(jù)。
數(shù)學問題樣例:展示了如何從一個包含幾何圖形和角度的圖像中提取信息,并生成相關的描述和問題。
生物學問題樣例:展示了如何從一個顯示洋蔥根尖細胞有絲分裂過程的圖像中提取信息,并生成相關的描述和問題。
Versatile-OCR-Program使用流程
第1步:初始OCR提取:運行ocr_stage1.py腳本,從輸入PDF中提取原始元素(文本、表格、圖形等),執(zhí)行布局檢測并存儲中間結果。
第2步:語義解釋和最終輸出:運行ocr_stage2.py腳本,處理中間數(shù)據(jù)并將其轉換為結構化、人類可讀的輸出,包括生成自然語言解釋、摘要,并將內容組織成AI就緒格式(JSON/Markdown)。
技術實現(xiàn)
表格處理優(yōu)化:使用DocLayout-YOLO檢測表格區(qū)域,使用Google Vision OCR進行表格處理(對于日語文本效果更好),并以結構化的JSON格式保留表格結構。
圖像和特殊區(qū)域處理:使用Google Vision API的圖像分析功能處理圖像區(qū)域,使用Google Cloud Vision API生成圖像描述,使用Google Cloud Vision API的文檔分析功能處理圖表/圖表,并以結構化的JSON格式存儲處理結果。
輸入效果
輸出效果
Versatile-OCR-Program應用
教育領域:用于提取和整理考試試卷、學術論文等教育材料中的數(shù)據(jù),為教育研究和學習提供支持。
機器學習訓練:生成高質量的訓練數(shù)據(jù)集,用于訓練機器學習模型,特別是在教育領域的應用。
多語言文檔處理:適用于需要處理多種語言文檔的場景,如國際學術交流、多語言教育材料的數(shù)字化等。
github項目:https://github.com/ses4255/Versatile-OCR-Program