5 पॉइंट द्वारा GN⁺ 2024-08-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • ऑप्टिकल कैरेक्टर रिकग्निशन (OCR) आउटपुट की गुणवत्ता को काफी बेहतर बनाने के लिए डिज़ाइन किया गया
  • नवीनतम natural language processing तकनीकों और large language model (LLM) का उपयोग करके raw OCR टेक्स्ट को बेहद सटीक, अच्छी तरह फ़ॉर्मैट किए गए और आसानी से पढ़े जा सकने वाले दस्तावेज़ में बदलता है

विशेषताएँ

  • PDF को इमेज में बदलना
  • Tesseract का उपयोग करके OCR
  • LLM (लोकल या API-आधारित) का उपयोग करके उन्नत त्रुटि-सुधार
  • कुशल प्रोसेसिंग के लिए smart text chunking
  • Markdown formatting विकल्प
  • हेडर और पेज नंबर suppress करना (वैकल्पिक)
  • अंतिम आउटपुट की गुणवत्ता का मूल्यांकन
  • लोकल LLM और cloud-आधारित API providers (OpenAI, Anthropic) का समर्थन
  • प्रदर्शन सुधार के लिए asynchronous processing
  • प्रोसेस ट्रैकिंग और debugging के लिए विस्तृत logging
  • लोकल LLM inference के लिए GPU acceleration

आवश्यकताएँ

  • Python 3.12+
  • Tesseract OCR engine
  • PDF2Image लाइब्रेरी
  • PyTesseract
  • OpenAI API (वैकल्पिक)
  • Anthropic API (वैकल्पिक)
  • लोकल LLM समर्थन (वैकल्पिक, compatible GGUF model आवश्यक)

उपयोग का तरीका

  1. प्रोजेक्ट डायरेक्टरी में PDF फ़ाइल रखें
  2. main() फ़ंक्शन के input_pdf_file_path वेरिएबल को PDF फ़ाइलनाम से अपडेट करें
  3. स्क्रिप्ट चलाएँ:
    python llm_aided_ocr.py  
    
  4. स्क्रिप्ट अंतिम post-processing टेक्स्ट सहित कई output files बनाएगी

यह कैसे काम करता है

LLM-Aided OCR प्रोजेक्ट raw OCR आउटपुट को उच्च-गुणवत्ता वाले, पढ़ने में आसान टेक्स्ट में बदलने के लिए multi-step process का उपयोग करता है:

  1. PDF conversion: pdf2image का उपयोग करके इनपुट PDF को इमेज में बदलना
  2. OCR: इमेज से टेक्स्ट निकालने के लिए Tesseract OCR लागू करना
  3. Text chunking: raw OCR आउटपुट को प्रबंधनीय chunks में विभाजित करना
  4. Error correction: हर chunk पर LLM-आधारित प्रोसेसिंग से OCR त्रुटियों को ठीक करना और पठनीयता बढ़ाना
  5. Markdown formatting (वैकल्पिक): सुधारे गए टेक्स्ट को साफ़ और सुसंगत Markdown में दोबारा फ़ॉर्मैट करना
  6. Quality assessment: LLM-आधारित मूल्यांकन के माध्यम से अंतिम आउटपुट की गुणवत्ता की मूल OCR टेक्स्ट से तुलना करना

GN⁺ का सार

  • LLM-Aided OCR प्रोजेक्ट एक ऐसा सिस्टम है जो नवीनतम natural language processing तकनीकों और large language model का उपयोग करके OCR आउटपुट की गुणवत्ता को काफी बेहतर बनाता है
  • यह PDF को इमेज में बदलता है, Tesseract से टेक्स्ट निकालता है, फिर LLM के जरिए त्रुटियाँ सुधारकर उसे Markdown फ़ॉर्मैट में पुनर्गठित करता है
  • यह लोकल और cloud-आधारित दोनों तरह के LLM का समर्थन करता है और asynchronous processing के जरिए प्रदर्शन को अनुकूलित करता है
  • यह प्रोजेक्ट OCR आउटपुट की सटीकता और पठनीयता बढ़ाने के लिए कई उन्नत सुविधाएँ देता है, और खासकर बड़े दस्तावेज़ों के लिए उपयोगी है
  • समान सुविधाएँ देने वाले प्रोजेक्ट्स में ABBYY FineReader, Adobe Acrobat OCR आदि शामिल हैं

1 टिप्पणियां

 
GN⁺ 2024-08-10
Hacker News की राय
  • नए schnell मॉडल के रिलीज़ से SOTA vision model बनाने के लिए डेटासेट हासिल करने की संभावना है

    • फिलहाल ज़्यादातर vision models पुराने CLIP/BLIP captions पर आधारित हैं
    • LLAVA या phi-llava जैसे models भी अब तक pre-trained vision components की वजह से सीमित हैं
    • Tessy और LLM की pipeline प्रभावी है, और इससे multilingual models के लिए digitized काम को पढ़ने और अनुवाद करने की संभावना खुलती है
    • LLAVA-PHI3 Hebrew को लगातार transcribe कर सकता है, लेकिन hallucination की समस्या है
    • अगर नया SOTA vision model आता है, तो quality में बड़ा सुधार होने की उम्मीद है
  • वैज्ञानिक papers के लिए meta का nougat model सबसे उपयुक्त है

    • invoices और records के लिए donut model बेहतर है
    • दोनों models कुछ मामलों में fail हो सकते हैं, और समस्याएँ सुलझाने के लिए LLM का इस्तेमाल करना पड़ता है
    • OCR प्रक्रिया में details खो जाती हैं, इसलिए tables और charts को सटीक तरीके से संभालना मुश्किल है
    • Google Gemini images के लिए fine-tuning capability देता है, लेकिन इसे आज़माया नहीं गया है
    • कुछ few-shot prompts LLM की hallucination रोकने और उसे मांगे गए format में रखने में मदद करते हैं
  • पहले किए गए प्रयासों में, यह 90% मामलों में अच्छी तरह काम करता था

    • lease agreement जैसे documents में numbers और names (लोगों या जगहों के नाम/पते) के साथ दिक्कत होती है
    • LLM खुद से सही किराया या किसी खास व्यक्ति का नाम नहीं जान सकता
  • अगर PDF pages को PNG में बदलकर gpt4 से image transcribe करने को कहा जाए, तो यह बहुत सटीक होता है

    • यह Tesseract या पारंपरिक OCR से ज़्यादा सटीक है
  • 10 साल पहले Tesseract का इस्तेमाल करके Chinese OCR करने की कोशिश की गई थी

    • English text को पहचानने के बाद साफ़ करना आसान होता है
    • Chinese में अगर एक character भी गलत पहचाना जाए, तो error पकड़ना मुश्किल होता है
    • image magic का इस्तेमाल करके image को बदलते थे, फिर उसे Tesseract को भेजते थे, और पहचाने गए वाक्यों की सांख्यिकीय आवृत्ति के आधार पर विजेता चुनते थे
    • accuracy में काफ़ी सुधार हुआ
  • PaddlePaddle का इस्तेमाल करके बेहतर नतीजे मिले

    • PPOCRv3 का इस्तेमाल करके किताब को word level पर काटने वाला Python implementation लिखा गया
    • PPOCRv4 में pixel size limit नहीं है, इसलिए यह "सीधे इस्तेमाल किया जा सकता है"
    • PPOCRv3 detection model बेहतर काम करता था
  • पूछा गया कि क्या दूसरे OCR packages भी आज़माए गए हैं

    • Tesseract के "77" को "7" पढ़ने की समस्या का सामना हुआ
  • prompt को adjust करना ज़रूरी है ताकि model और स्पष्ट रूप से समझ सके

    • LLM और documents के बारे में बहुत सोचा गया है
    • लगता है कि OCR जल्द ही पूरी तरह सुलझी हुई समस्या बन जाएगी
    • जटिल documents की ambiguity और details को AI model को प्रभावी ढंग से समझाना एक चुनौती है
  • rubrics और student submissions को parse करने जैसा मिलता-जुलता काम किया जा रहा है

    • GPT-4V के साथ integration में रुचि है
    • ईमेल से संपर्क करने की इच्छा है
  • OCR errors ठीक करने के लिए "fix this text" prompt इस्तेमाल करने वाले approach के बारे में पूछा गया

    • chat model की जगह completion model इस्तेमाल करके token-दर-token input देना और अगले token की probability लेना सुझाया गया
    • माना गया कि इस तरीके से hallucination काफ़ी कम हो सकती है