3 पॉइंट द्वारा GN⁺ 2024-11-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह एक वेब टूल है जो दस्तावेज़ इमेज को टेक्स्ट में बदलने के बाद दोबारा व्यवस्थित करने वाले काम को structured Markdown conversion के जरिए कम करता है
  • फिलहाल वेब इनपुट image upload पर केंद्रित है, और बताया गया है कि PDF support जल्द उपलब्ध होगा
  • सेवा npm package llama-ocr और Together AI के आधार पर चलती है
  • JavaScript में ocr फ़ंक्शन को filePath और TOGETHER_API_KEY देकर Markdown परिणाम प्राप्त किया जा सकता है
  • यह वेब upload और code call दोनों को support करता है, इसलिए दस्तावेज़ इमेज conversion को manual काम या development workflow के अनुसार आज़माया जा सकता है

इमेज दस्तावेज़ों को Markdown में बदलना

  • LlamaOCR.com अपलोड किए गए दस्तावेज़ को Markdown में बदलने वाला एक टूल है
  • वेब पेज पर “Upload an image to turn it into structured markdown” लिखा है, और यह image upload के जरिए structured Markdown बनाता है
  • PDF support को “soon” के रूप में दिखाया गया है, इसलिए अभी उपलब्ध दायरा इमेज-केंद्रित है

कोड में उपयोग करने का तरीका

  • npm package llama-ocr का उपयोग करके JavaScript code में OCR चलाया जा सकता है
import { ocr } from 'llama-ocr';

const markdown = await ocr({
  filePath: './trader-receipt.jpg',
  apiKey: process.env.TOGETHER_API_KEY
});
  • उदाहरण में filePath में image file path दिया जाता है, और apiKey में TOGETHER_API_KEY environment variable पास किया जाता है
  • यह सेवा llama-ocr और Together AI पर आधारित है

1 टिप्पणियां

 
GN⁺ 2024-11-17
Hacker News की राय
  • मैं llama-ocr बनाने वाला व्यक्ति हूं। शेयर करने और अच्छे रिस्पॉन्स के लिए धन्यवाद। मुझे एक सरल OCR API चाहिए था, इसलिए इसे इस हफ्ते की शुरुआत में बनाया, और यह Together.ai पर होस्ट किए गए Llama 3.2 Vision से इमेज को structured Markdown में parse करता है
    यह npm package के रूप में भी उपलब्ध है। PDF parsing, JSON response जैसी features भी जोड़ने की योजना है, और अगर कोई सवाल हों तो जवाब देने की कोशिश करूंगा

    • मैंने इसमें एक invoice डाली जिसमें 3 एक जैसे items थे, तो इसने हमेशा की तरह 3 bullet points के रूप में output देने के बजाय, original paper में मौजूद न होने वाला quantity column वाली table बना दी
      सोच रहा हूं कि इस स्तर का बड़ा transformation expected या desirable behavior है या नहीं। Output कभी bulleted list होता है और कभी table, इसलिए बाद की automated processing थोड़ी और कठिन हो जाती है
    • poster PDF से scientific content निकालने में दिक्कत हुई थी, और उदाहरण के लिए Nougat अक्सर layout बदलने पर टूट जाता था
      जानना चाहूंगा कि क्या आपने ऐसे use case पर भी विचार किया है
    • “Need an example image? Try ours.” अच्छा idea है। काश और services भी ऐसी feature दें
    • accuracy कितनी है, यह जानना चाहूंगा
      existing OCR systems की तुलना में यह किस तरह की गलतियां करता है, जानना चाहता हूं
    • क्या local LLM इस्तेमाल करने का option भी संभव होगा, यह जानना चाहूंगा
  • यह बस image को Llama 3.2 Vision को भेजकर text पढ़ने को कहता है
    दूसरे LLM outputs की तरह यह hallucination के प्रति संवेदनशील है। क्योंकि यह pixels से अक्षरों के shape नहीं पढ़ता, बल्कि training में देखी images और captions के आधार पर picture का वर्णन करते हुए text का अनुमान लगाता है। खासकर अगर पढ़ना मुश्किल हो, तो यह शब्द पूरी तरह गढ़ सकता है

    • दूसरे OCR systems में भी ऐसा ही था, बस इस context में ऐसी errors को hallucination नहीं कहा जाता था
  • अच्छा लग रहा है। हाल में मैं काफी OCR कर रहा हूं, इसलिए इस क्षेत्र में नया tool आना अच्छा है। PDF→Markdown क्षेत्र में अभी शायद Facebook का Nougat[1] सबसे मजबूत है, और मैं इसे DSPy से जोड़कर देखना चाहता हूं कि philosophy books के लिए कौन बेहतर है
    इस repo ने जिस startup के Zerox[2] project को link किया है, वह भी अच्छा दिखता है, और कम से कम promotion के मामले में Nougat से कहीं ज्यादा polished है। अगर कोई असली expert इधर से गुजरे तो correction या advice सुनना चाहूंगा
    मेरे दो सवाल हैं। 1) Together.ai क्या है और क्या यह model open source है, यह जानना चाहूंगा। Website hosting service जैसी दिखती है और “Custom Models” page[3] proprietary model training के बजाय custom fine-tuning जैसा लगता है। HuggingFace profile दिखती है, लेकिन यह सच में उनकी है या नहीं, स्पष्ट नहीं है https://huggingface.co/TogetherAI
    2) GitHub पर “hosted demo” लिखा है, लेकिन लगता है कि hosted हिस्सा सिर्फ एक छोटा और साफ WebGUI है। क्या इसका मतलब है कि यह functionality अभी भी और आगे भी सिर्फ API calls के जरिए ही इस्तेमाल की जा सकेगी?
    P.S.: desktop browser में header link टूटा हुआ है और onClick trigger नहीं होता
    [1] https://facebookresearch.github.io/nougat/
    [2] https://github.com/getomni-ai/zerox
    [3] https://www.together.ai/products#custom-models

    • project author Together.ai DevRel हैं। फिर भी developer tools को promote करने के तरीके के रूप में यह शानदार है
    • लगता है together.ai demo को कम से कम आंशिक रूप से sponsor कर रहा होगा
    • privacy और cost की वजह से उम्मीद थी कि इसे self-host किया जा सकेगा
    • together.ai multimodal Llama 3.2 सहित 100 से ज्यादा open source models को OpenAI-compatible API के रूप में उपलब्ध कराता है
  • एक अजीब बात हुई। उदाहरण के तौर पर मैंने एक webcomic upload किया जिसमें सभी dialogues uppercase में थे, लेकिन output में हर panel पर sentence case और title case असंगत रूप से mix हो गए
    मैंने वह समस्या भी test की जिसके लिए सच में OCR इस्तेमाल करना चाहता हूं। मेरे पास कुछ पुराने slides हैं जिन्हें digitize करना है और ज्यादातर पर labels लगे हैं। एक upload किया तो इसने बताया कि यह slide या film frame photo जैसा दिखता है, पुराना होकर पीला पड़ गया है, बीच में dark rectangular cutout है, और text “Once Upon a Time”, number “1069” है
    बेवजह repetitive slide description भी एक समस्या है, लेकिन actual text cursive भी नहीं था और “Once Uniquitous.” था, और number 106g था। वह ‘9’ नहीं बल्कि ‘g’ बहुत साफ था
    दिलचस्प बात यह है कि यह model bias का case हो सकता है। इसने slide को इतना antique समझ लिया कि पूरी तरह cliché title hallucinate कर दिया, और black rectangle असल में सामने से light डालने का नतीजा था ताकि transparent हिस्सा न दिखे, लेकिन यह उसे समझ नहीं पाया
    इसके अलावा लगता है कि API में undocumented file size या resolution limits भी हैं

  • हाल ही में charity auction के लिए paper bid sheets process करने में llama3.2-vision इस्तेमाल किया, और काफी खराब handwriting भी इसने काफी accurately पढ़ी। अगले साल के event में भी इस्तेमाल करना चाहूंगा
    हालांकि इससे consistently CSV output करवाना काफी परेशान करने वाला है। ChatGPT और Gemini उस हिस्से में बेहतर लगते हैं, लेकिन मैंने automation तक try नहीं किया
    scale करीब 100 pages bid sheets का है, इसलिए कुछ manual cleanup ठीक है। यह volunteers का time खर्च कराने से निश्चित रूप से बेहतर है
    https://github.com/philips/paper-bidsheets

    • इस काम के लिए Handwriting OCR(https://www.handwritingocr.com) से इसकी तुलना कैसी बैठती है, यह सुनना चाहूंगा
      यह free नहीं है, लेकिन handwritten documents की accuracy top tier है। मैं founder हूं इसलिए bias है, लेकिन current accuracy level सच में उम्मीद जगाता है। 100-page project के लिए सिर्फ 12 dollars लगेंगे और समय बच सकता है
    • OCR वाला हिस्सा llama3.2-vision को देकर, CSV conversion ChatGPT को सौंपने का तरीका कैसा रहेगा
  • हाल में OCR काफी किया, मुख्य तौर पर family photos में मौजूद text को digitalize करने का काम था। सामान्य OCR models बेहद खराब थे और LLM ने कहीं बेहतर काम किया। जिन models को test किया उनमें Gemini Flash बहुत आगे था, लेकिन फिर भी failures और hallucinations इतने ज्यादा थे कि हाथ से type करना ज्यादा तेज था
    लगभग काम हो जाएगा जैसा लगता है, लेकिन नहीं होता—यही चिढ़ाता है। यह tool और भी खराब दिखता है। कभी-कभी सिर्फ text का जवाब देता है, और कभी “The image is a scanned document with handwritten text...” जैसी पूरी description दे देता है। उम्मीद थी कि Gemini Flash को मात देने लायक कोई fine-tuning वगैरह होगी, जिससे काफी समय बच सकता था, पर अफसोस

    • जानना चाहूंगा कि क्या आपने image को downscale करके देखा। कम resolution वाली images में बेहतर results आने लगे थे। मैंने phone camera से बने scans इस्तेमाल किए थे
      convert -density 76 input.pdf output-%d.png
      https://github.com/philips/paper-bidsheets
    • सामान्य models के हिसाब से open source OCR की हालत काफी खराब है। दुर्भाग्य से Microsoft, Google जैसे closed options कहीं बेहतर हैं। जानना चाहूंगा कि क्या आपने उन्हें भी आजमाया
      Flash दिलचस्प है; यह भी जानना चाहूंगा कि आपने कौन-कौन से LLMs test किए
    • हाल में gpt-4o से images के corpus पर OCR चलाया और काफी अच्छे results मिले। सबसे अहम सीख यह थी कि fancy LLM इस्तेमाल करने पर भी साधारण data preparation अब भी जरूरी है
      image को crop करके सिर्फ text वाला हिस्सा छोड़ा, borders हटाए और contrast बढ़ाया—इससे बहुत मदद मिली। यह 2015 में लिखा मेरा लेख है, लेकिन GPT पर भी अब भी खूब लागू होता है: https://www.danvk.org/2015/01/07/finding-blocks-of-text-in-a...
      GPT को एक बार में पूरी page देने के बजाय कुछ paragraphs या उससे कम देना बेहतर रहा। text जितना छोटा होगा, hallucination की संभावना उतनी घटती है
    • अफसोस, मैं भी अभी बिल्कुल यही काम करने की कोशिश कर रहा हूं। family photos को digitalize कर रहा हूं, और कुछ के पीछे German में text है
      हाल में चर्चा में आया OCR खराब था, और उम्मीद थी कि यह बेहतर होगा। individual images को chat में paste करने पर ChatGPT 4o अच्छा था, लेकिन API अभी try नहीं किया। 6500 photos process करने पर cost कितनी आएगी, पता नहीं; उनमें से कई blank भी हैं, लेकिन उन्हें आसानी से filter करने का तरीका भी नहीं है
    • जानना चाहूंगा कि क्या आपने Claude try किया
      text positions return करने में यह अभी अच्छा नहीं है, लेकिन मेरे tests में OCR performance जबरदस्त थी
  • संदेह है कि क्या यह “Show HN” post होना चाहिए। यह बस frontend जैसा दिखता है, और नाम के Llama से सीधे जुड़ता कोई हिस्सा भी नहीं दिखता। हो सकता है together.ai ने cloud space दिया हो

  • genetic algorithm से 500 circles arrange करके एक sentence बनाया, और वास्तविक physical circles से खींचे गए sentence को डाला
    https://www.instagram.com/marekgibney/p/BiFNyYBhvGr/
    दिलचस्प बात है कि यह circles को अच्छी तरह पहचानता है, लेकिन sentence नहीं देख पाता। जवाब कुछ ऐसा था कि “image में Markdown में व्यक्त किया जा सकने वाला कोई text या elements नहीं हैं; यह सिर्फ circles की visual composition है, Markdown में translate करने लायक जानकारी नहीं है”

    • इस बात से idea लिया कि आंखें सिकोड़कर देखने पर यह पढ़ा जा सकता है, और image पर Gaussian blur लगाया; तब response मिला कि धुंधला text “STOP THINKING IN CIRCLES.” पढ़ा जाता है
      response deterministic नहीं था, इसलिए original image को भी कई बार try किया, लेकिन एक बार भी success नहीं मिली। वहीं लगाए गए सभी low-pass filter effects ने high success rate के साथ काम किया
      https://imgur.com/q7Zd7fa
    • मैं भी इसे नहीं पढ़ पा रहा
      दूर से देखने पर पढ़ना आसान है
    • सोचता हूं कि क्या LLM को कभी ऐसे original material पर train किया गया होगा
      genetic algorithm इस्तेमाल करने का तरीका काफी cool है। code या कम से कम reward function देखना चाहूंगा
    • answer देखने से पहले मैं भी “stop” के अलावा कुछ नहीं पढ़ पाया
    • समझ नहीं आता इसमें दिलचस्प क्या है। image कुछ भी जैसी नहीं दिखती, और letters देखने के लिए angle बदलकर देखना पड़ता है, तब जाकर मुश्किल से दिखते हैं
  • मजेदार था। लंबे document के 3 screenshots डाले, तो इसने अपेक्षाकृत अच्छा process किया, लेकिन proofreading करते समय दिखा कि AI ने original में न होने वाले paragraphs बना दिए थे
    शायद screenshot की nature के कारण कुछ sentences या paragraphs बीच में कट गए थे, और इससे LLM की fill-in-the-blanks tendency trigger हो गई। यह अधूरे paragraph को जस का तस नहीं छोड़ पाया, और original document में बिल्कुल न मौजूद एक छोटा conclusion paragraph तक जोड़ दिया

    • ऐसी technology, जिसमें कुछ भी गढ़ देने की संभावना जरा भी हो, real world में इस्तेमाल के लिए consider की जाती है—यह समझ नहीं आता
  • 1997 के Asus P3B-F motherboard schematic का पुराना scan डाला
    title block से बस कुछ text निकाला, जैसे project name और date; और font साफ होने के बावजूद 8/B और 1/I सब मिला दिए
    असल में useful जानकारी “Tables / Table 1: [Insert table 1 here] / Other Elements / [Insert other elements here]” जैसी बन गई