2 पॉइंट द्वारा GN⁺ 2024-10-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Google Research का InkSight हाथ से लिखी हुई तस्वीरों को pen stroke स्तर की digital ink में पुनर्स्थापित करता है; यह बिना विशेष उपकरणों के कागज़ी नोट्स को digital notes की तरह सेव और एडिट करने का तरीका है
  • साधारण OCR जहाँ text transcription तक सीमित रहता है, वहीं InkSight लिखावट बनाने वाली stroke trajectories को पुनर्स्थापित करता है, ताकि लिखावट की style बरकरार रखते हुए उसे देखा और आगे लिखा जा सके
  • मॉडल सिर्फ geometric features नहीं निकालता, बल्कि पढ़ना और लिखना साथ-साथ सीखता है; यह word recognition और stroke generation के लिए ViT encoder और mT5 encoder-decoder का उपयोग करता है
  • पूरे पेज के लिए OCR से शब्द-स्तर के bounding boxes ढूंढे जाते हैं, हर शब्द को अलग से derender किया जाता है, और फिर pixel letters को पुनर्स्थापित strokes से बदलने वाला flow इस्तेमाल होता है
  • evaluation में लगभग 1 billion parameters वाले Large-i के output को कई मामलों में इंसानों द्वारा बनाई गई digital ink जैसा आंका गया, और 87% को अच्छे tracing या केवल छोटी errors वाले tracing के रूप में चिह्नित किया गया

कागज़ की लिखावट को digital ink में बदलने की वजह

  • Digital notes durability, editability और indexability देते हैं, लेकिन कई लोग अब भी कागज़ और pen से notes लिखते हैं
  • physical handwriting को digital रूप में बदलने की प्रक्रिया derendering है, और इसका परिणाम strokes होता है, जिसमें pen या उंगली की movement को point sequences के रूप में सेव किया जाता है
  • इस representation को “online” handwriting representation या digital ink भी कहा जाता है
  • साधारण OCR handwriting को text document में transcribe करता है, लेकिन digital ink हाथ से लिखे document को strokes के collection के रूप में capture करती है
    • users हाथ से अधिक natural तरीके से edit कर सकते हैं
    • writing style और असली handwriting का feel बचा रह सकता है
    • notes को images, text, links और digital assistive features के साथ व्यवस्थित और integrate किया जा सकता है
  • पहले smartpen, विशेष paper और dedicated software stack वाले तरीके मौजूद थे, लेकिन extra hardware और cost adoption में barrier बनते हैं

InkSight क्या पुनर्स्थापित करता है

  • InkSight: Offline-to-Online Handwriting Conversion by Learning to Read and Write handwriting notes की तस्वीरों से लिखावट बनाने वाले strokes निकालता है
  • यह अलग उपकरणों के बिना केवल तस्वीर को input के रूप में इस्तेमाल करता है, और model व inference code GitHub repo में देखे जा सकते हैं
  • यह image gradients, contours और shapes जैसे typical geometric components पर निर्भर नहीं करता
  • मॉडल दो क्षमताएं साथ-साथ सीखता है
    • पढ़ना: image में मौजूद words को पहचानना
    • लिखना: handwriting जैसे दिखने वाले strokes output करना
  • यह combination lighting conditions, occlusion और diverse appearances जैसे कठिन inputs में भी अधिक robust तरीके से काम करने के लिए design किया गया है

पेज-स्तर processing के लिए system flow

  • मूल लक्ष्य handwriting की stroke-level trajectory capture करना है, ताकि user उसे अपनी पसंद के notes app में save कर सके
  • internally, off-the-shelf OCR model handwritten words को identify करता है, फिर model उन words को strokes में convert करता है
  • reproducibility, reusability और adoption में आसानी के लिए व्यापक रूप से इस्तेमाल होने वाले ViT encoder और mT5 encoder-decoder को combine किया गया है
  • arbitrary-size images, अलग-अलग resolutions और content की अलग-अलग मात्रा को handle करना पड़ता है, इसलिए scalability प्रमुख चुनौती है
  • बहुत high-resolution input और लंबी output sequences को सीधे train करने पर compute cost बढ़ जाती है, इसलिए page derendering को तीन चरणों में बांटा गया है
    • OCR से word-level bounding boxes निकाले जाते हैं
    • हर word को अलग से derender किया जाता है
    • offline pixel representation को derendered strokes से बदला जाता है
  • rendered ink की synthetic images और असली photos के बीच domain gap घटाने के लिए data augmentation का इस्तेमाल किया जाता है
    • ink angle, color और stroke width को randomize किया जाता है
    • Gaussian noise और complex background जोड़े जाते हैं

पढ़ना और लिखना साथ-साथ सीखने का तरीका

  • supervised learning के लिए images और ground-truth digital ink pairs को पर्याप्त मात्रा में collect करना महंगा और समय लेने वाला है, और इस काम के लिए पर्याप्त diverse dataset मौजूद नहीं माना जाता
  • InkSight बड़ी मात्रा में paired samples के बिना generalize करने के लिए multi-task learning setup का उपयोग करता है
  • training mix पांच task types से मिलकर बना है
    • image से digital ink generate करने वाला derendering task
    • image और OCR-recognized text को साथ input लेकर digital ink generate करने वाला derendering task
    • real image से text output करने वाला recognition task
    • synthetic image से text output करने वाला recognition task
    • text और ink साथ output करने वाला mixed recognition-derendering task
  • हर task task-specific input text का उपयोग करता है, जिससे training और inference के दौरान model task को अलग पहचान सके
  • reading training image में text elements को अधिक सटीकता से locate और extract करने में मदद करती है
  • writing training output vector representation को इंसानी handwriting के तरीके के करीब physical dynamics और stroke order follow करने में मदद करती है

Digital ink representation और tokenization

  • training में text images और उनसे match करती digital ink pairs का उपयोग होता है
  • digital ink real-time handwriting trajectories से sample की जाती है, और बाद में stroke sequences के रूप में represent होती है
  • हर stroke constant speed से sample किए गए points की sequence है
    • उदाहरण के तौर पर प्रति second 50 points sampling
  • corresponding images ink को specified resolution के bitmap में render करके generate की जाती हैं
  • यह प्रक्रिया model input-output pairs का आधार बनने वाला pixel-stroke correspondence बनाती है
  • ink tokenizer points को LLM के लिए suitable format में बदलता है
    • हर point x coordinate और y coordinate को अलग-अलग encode करने वाले दो tokens में बदलता है
    • ink token sequence stroke start दर्शाने वाले b से शुरू होती है
    • इसके बाद sampled points के coordinate tokens आते हैं

Evaluation data और comparison models

  • performance evaluation के लिए अलग evaluation dataset collect किया गया
  • evaluation data OCR data से शुरू होकर बनाया गया, और इसमें लोगों द्वारा दिए गए text images को खुद trace करके बनाए गए human-generated tracing pairs जोड़े गए
  • तीन model variants train किए गए
    • Small-p: लगभग 340 million parameters, public setup
    • Small-i: in-house setup
    • Large-i: लगभग 1 billion parameters
  • comparison baseline के रूप में General Virtual Sketching baseline का इस्तेमाल किया गया
  • automatic evaluation और human evaluation दोनों में system द्वारा बनाई गई vector representations input image से semantic और geometric रूप से मिलती-जुलती थीं, और human-made digital ink data से भी समान थीं

Qualitative evaluation में दिखे अंतर

  • public evaluation datasets IAM, IMGUR5K, और out-of-domain sketch dataset पर models और GVS की तुलना की गई
  • InkSight models आम तौर पर text content को सही reflect करते हैं और meaning से unrelated background को ignore करते हैं
  • occlusion वाले inputs भी handle कर सकते हैं, जिससे learned reading prior knowledge का फायदा दिखता है
  • GVS कई duplicate strokes generate करता है और background व foreground में फर्क करने में कठिनाई दिखाता है
  • Large-i अधिक details बनाए रखता है और अधिक diverse image styles को support कर सकता है
  • out-of-domain sketches में models simple sketches को आम तौर पर derender करते हैं, लेकिन unnecessary या misaligned strokes जैसे artifacts अब भी दिखाई देते हैं

Human evaluation और सीमाएं

  • इस क्षेत्र में quantitative evaluation के लिए अभी established metrics या benchmarks नहीं हैं
  • human evaluation में HierText dataset के human tracing data को control group के रूप में और उन्हीं samples पर model outputs को experimental group के रूप में इस्तेमाल किया गया
  • evaluators ने original image और rendered digital ink sample को साथ देखा और दो सवालों के जवाब दिए
    • output input image का reasonable tracing है या नहीं, इसका मूल्यांकन
    • क्या यह digital ink इंसान द्वारा बनाई हुई लग सकती है, इसका मूल्यांकन
  • evaluation में digital ink से परिचित लेकिन research में शामिल नहीं रहे 16 लोग शामिल हुए
    • हर sample को 3 evaluators ने evaluate किया
    • results majority vote से aggregate किए गए
  • Large-i से generate की गई derendered ink का बड़ा हिस्सा human-made के समान स्तर पर आंका गया
  • Large-i output का 87% अच्छे tracing या केवल छोटी errors वाले tracing के रूप में चिह्नित किया गया
  • example comparison में सभी models ने ऊपर वाली row के sample में double quotation marks को गलत handle किया, और नीचे वाली row के sample में एक मामला था जहाँ human tracing केवल main words पर focused रहा और बाकी अधिकांश elements छूट गए
  • human tracing भी original image के साथ पूरी तरह aligned नहीं था, जिससे पता चलता है कि HierText handwriting हिस्से को trace करने का task अपने आप में complex और कठिन है

निष्कर्ष

  • InkSight handwriting photos को digital ink में convert करने वाला अपनी तरह का पहला approach है
  • training setup paired training data के बिना भी काम करने के लिए design किया गया है
  • यह diverse inputs पर robust तरीके से काम करता है, पूरे handwritten notes पर लागू किया जा सकता है, और out-of-domain sketches पर भी कुछ हद तक generalize करता है
  • यह approach complex modeling के बिना standard components से बनाया जा सकता है

1 टिप्पणियां

 
GN⁺ 2024-10-29
Hacker News की राय
  • मैंने एक छोटा फ्रिज व्हाइटबोर्ड खरीदा, और इसे iPhone की उस सुविधा के साथ मिलाकर इस्तेमाल किया जो हाथ से लिखे टेक्स्ट की फोटो लेकर उसे टेक्स्ट के रूप में कॉपी कर देती है—काफी बढ़िया काम करता है
    यह हमेशा परफेक्ट नहीं होता, और मेरी हैंडराइटिंग भी परफेक्ट नहीं है, लेकिन भेजने से पहले एक-दो अक्षर ठीक कर देने के लिए काफी है
    पूरी इमेज भेजने की जरूरत नहीं पड़ती, इसलिए यह efficient है; टाइपिंग या स्वाइपिंग के बिना, स्क्रीन देखे बिना भी काम हो जाता है; साथी कभी भी लिस्ट देख सकता/सकती है; और इसे cloud पर अपलोड करने की जरूरत नहीं होती
    बिजली की जरूरत नहीं, मार्कर लंबे समय तक चलते हैं, और फ्रिज के अंदर कोई चीज खत्म हो जाए तो तुरंत मार्कर उठाकर फ्रिज पर लिख देना बहुत स्वाभाविक लगता है

    • काफी शानदार आइडिया है। इस पोस्ट की वजह से लगता है HN पाठकों के बीच फ्रिज व्हाइटबोर्ड की बिक्री थोड़ी बढ़ जाएगी
    • अगर आप मार्कर से बचना चाहते हैं तो LCD writing tablet भी एक तरीका है। यह Etch A Sketch जैसा दिखता है और कुछ-कुछ वैसे ही काम करता है, लेकिन stylus और LCD screen इस्तेमाल करता है, और 10 यूरो से कम में भी मिल सकता है
  • बहुत बढ़िया। इस तरह की तकनीक का एक दिलचस्प उपयोग है। मेरी हैंडराइटिंग काफी खराब है, और जल्दी लिखते समय तो और भी खराब हो जाती है
    पढ़ाते समय ब्लैकबोर्ड पर मेरी लिखावट अक्सर मेरी इच्छा से कहीं ज्यादा खराब होती है
    लगता है ऐसे सिस्टम को मेरी बहुत धीरे-धीरे, साफ-सुथरी लिखावट पर train करके, क्लास के दौरान व्हाइटबोर्ड पर जल्दी में लिखी खराब लिखावट को मेरी ही ज्यादा साफ लिखावट में बदला जा सकता है

    • अजीब लग सकता है, लेकिन क्या आपने fountain pen इस्तेमाल करके देखा है?
      बॉलपॉइंट से इसका feedback बिल्कुल अलग होता है, और कागज व ink की किस्म से भी फर्क पड़ता है। लिखना कम “predictable” और थोड़ा ज्यादा enjoyable हो जाता है
      medium nib वाले सस्ते 5–15 डॉलर के pen से शुरुआत कर सकते हैं; कुछ लोग आगे चलकर fountain pen collection में चले जाते हैं, लेकिन मैं कागज पर अपना ज्यादातर लेखन करीब 20 डॉलर वाले Pelikan Jazz से करता हूं
    • हैंडराइटिंग सुधारना मुश्किल नहीं है। व्हाइटबोर्ड पर पहले सिर्फ block letters लिखने से शुरुआत करें
      शुरुआत में गति धीमी होगी, लेकिन ज्यादा देर तक नहीं
      यूनिवर्सिटी में tutor के तौर पर काम करते समय मुझे मिले “game-changing” सुझावों में से यह एक था। दूसरा था कि किताब को हमेशा पीछे से आगे की ओर कॉपी करो—वह बहुत उपयोगी था, हालांकि आज के समय में थोड़ा पुराना तरीका है
    • lettering की किताब ढूंढकर हैंडराइटिंग सुधारी जा सकती है। धीरे-धीरे अभ्यास करने से तेज लिखते समय की लिखावट भी बेहतर हो जाती है
    • अगर आप equations पर्याप्त अच्छे से बना लेते हैं, तो उन्हें real time में LaTeX में बदलकर computational notebook में चलाया जा सकता है
      खासकर अगर equations समझाने वाली voice और LaTeX को साथ जोड़ा जाए, तो errors भी सुधारे जा सकते हैं
    • तो फिर बस laser projector, keyboard, और canvas text box ही इस्तेमाल कर लेना चाहिए, ऐसा लगता है
  • सिर्फ शीर्षक देखकर मैंने भोलेपन से सोचा था कि यह खोई हुई क्षमता वापस पाने और फिर से पढ़ने योग्य व सुंदर हैंडराइटिंग notes लिखने के तरीके पर लेख होगा
    कई सालों से बहुत ज्यादा typing और कम handwriting करने की वजह से मैं अभी यही समस्या झेल रहा हूं
    Google की असली research भी मेरे notes को digital रूप में कम अव्यवस्थित बनाकर मदद करती है। लेकिन मैं अपनी हैंडराइटिंग बेहतर बनाने के लिए तकनीकी innovation पर निर्भर नहीं रहना चाहता

    • अगर आप सच में सुधारना चाहते हैं, तो YouTube पर इसके लिए समर्पित एक पूरा क्षेत्र है। अपनी पसंद की writing style चुनें और practice, practice, practice करें
      कुछ लोग अलग-अलग heights मिलाने या perfect slant पाने में मदद करने वाली special ruled practice sheets मुफ्त में उपलब्ध कराते हैं या बेचते हैं
      जैसे पहली बार लिखना सीखते समय होता है, आपको समय निकालना होगा, ध्यान देना होगा और खुद करना होगा
    • अगर आप हैंडराइटिंग सुधारना चाहते हैं, तो एक अच्छा तरीका fountain pen इस्तेमाल करना है
      मेरी लिखावट ballpoint या gel pen की तुलना में fountain pen से लिखते समय कहीं बेहतर हो जाती है। शायद इसलिए कि fountain pen एक optimal position और angle को मजबूर करता है। यह ऐसी चीज नहीं है जो किसी भी angle पर कागज पर दबा देने से लिखने लगे, इसलिए यह ज्यादा strict है, और ज्यादा smooth feel व feedback भी देता है
      बहुत ज्यादा आगे जाने की जरूरत नहीं; आम तौर पर करीब 20 यूरो वाला Pilot Metro medium nib या वैसा ही कोई pen काफी है
    • मैं comic lettering पढ़ने की सलाह दूंगा। इसका मतलब यह नहीं कि यह लिखने का सबसे efficient तरीका है, लेकिन इससे strokes और consistency के नजरिए से सोचना सीखते हैं
      वहां से अपनी style आसानी से विकसित की जा सकती है
    • जब मुझे एहसास हुआ कि मेरी हैंडराइटिंग खराब है, तो मैंने अधिक धीरे लिखने और साफ लिखने पर सचेत रूप से ध्यान देकर सुधार किया
      fountain pen ने गति धीमी करने में मदद की, लेकिन मूल रूप से बात इतनी थी कि अच्छे अक्षर बनाने पर सचेत ध्यान देते हुए पर्याप्त धीरे लिखा जाए; और जब यह आसान हो गया तो speed भी बढ़ गई। फिर भी सुंदर अक्षर बनाने जितना ध्यान देने की आदत बनी रही
      practice sheets या drills जैसे deliberate practice से ज्यादा जरूरी है इतना धीरे लिखना कि muscle memory बनने और speed वापस आने तक आप अक्षरों को सही तरह बना सकें
    • Kate Gladstone की Handwriting Repair site की सलाह दूंगा
      https://handwritingrepair.info/
      या यह भी देखने लायक है
      https://sites.google.com/view/briem/free-books
      John Howard Benson की सुंदर The First Writing Book: Arrighi's Operina या Carolyn Knudsen की उत्कृष्ट An Italic Calligraphy Handbook भी अच्छी हैं। शीर्षक विनम्र हैं, लेकिन सामग्री कहीं बेहतर है, और इनके साथ chisel-tip marker या fountain pen इस्तेमाल किया जा सकता है
  • 10 साल पहले OCR के लिए Tesseract इस्तेमाल करके देखा था, और English को यह काफ़ी अच्छी तरह पहचान लेता था। अगर मेरी याद सही है, तो Tesseract भी Google ने develop किया था और open source था
    उस समय English के अलावा एक भाषा, यानी Greek, पर इस्तेमाल करके देखा था, लेकिन नतीजे बहुत खराब थे
    Transformer-आधारित अच्छा OCR research देखकर खुशी हुई

    • हाल ही में Tesseract ने मुझे काफ़ी प्रभावित किया। पिछले महीने मैंने इसे एक scan किए हुए PDF में अदृश्य OCR text जोड़ने के लिए इस्तेमाल किया, जिसे मैं अक्सर reference करता हूँ। scan quality काफ़ी अच्छी थी, लेकिन accuracy फिर भी प्रभावशाली थी
      Table of contents पर भी OCR किया, और terminal में page segmentation settings adjust करके तब तक experiment किया जब तक copy-paste करने लायक output नहीं मिला, फिर searchable table of contents जोड़ दी
      1: https://github.com/ocrmypdf/OCRmyPDF की मदद ली
      2: https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html, “ Using different Page Segmentation Modes”
    • Tesseract मूल रूप से HP ने बनाया था, और open source के रूप में release होने के बाद बाद में Google ने इसे develop किया। यह 1980s की technology पर आधारित है, इसलिए उम्मीद से काफ़ी कमतर है
      फिर भी मुफ्त होने का फायदा है
  • तस्वीरों में handwriting detect करने के क्षेत्र में अभी state of the art क्या है, यह जानने की उत्सुकता है
    strokes को trace करना भी अच्छा है, लेकिन मेरी दिलचस्पी अपने handwritten notes को Markdown में convert करने में ज्यादा है

    • पता नहीं यह state of the art है या नहीं, लेकिन iOS handwriting recognition और ChatGPT मेरे लिए हैरान करने वाली तरह से अच्छा काम करते हैं। बदसूरत handwriting पर भी काम करता है
      हालांकि accuracy करीब 90~95% है, इसलिए भरोसा करने से पहले output review करना चाहिए
  • बेहद दिलचस्प experiment है। मैं पिछले कुछ सालों से handwriting application बना रहा हूँ, और अगर photo लेकर उसे digital ink में बदलने वाला feature जोड़ सकूँ तो बहुत अच्छा होगा
    [0] https://scrivanolabs.github.io

  • क्या यह डॉक्टरों की घसीटी हुई लिखावट भी पढ़ सकता है? अगर हाँ, तो medical data entry के क्षेत्र में यह breakthrough जैसा होगा

    • अस्पतालों में treatment instructions गलत पढ़े जाने से होने वाली मौतों की संख्या चौंकाने वाली है
      डॉक्टर और treatment nurse के बीच interpretation की एक और layer जोड़ना बहुत सावधानी से करना चाहिए
      अफसोस है कि medical school में block lettering वैसी नहीं सिखाई जाती जैसी पहले draftsmen को सिखाई जाती थी
  • जब Apple Notes ने मेरी handwriting को मेरी ही handwriting style में correct किया, वह डराने वाला पल था

  • अब भी tablet पर pen input इस्तेमाल कर सकने वाला programming environment आने की उम्मीद है। अच्छा होगा अगर Bluetooth keyboard साथ लेकर चलना मजबूरी न हो
    दुर्भाग्य से, शायद ज्यादातर लोग इसके लिए पैसे नहीं देंगे, इसलिए लगता है कोई इसे business opportunity के तौर पर गंभीरता से नहीं ले रहा

    • मैं लिखने की तुलना में type करना निश्चित रूप से तेज़ करता हूँ। खासकर code में in-place editing या sentences को rearrange करना अक्सर ज़रूरी होता है, इसलिए और भी ज्यादा
      कागज और pen से काम करना भी मुझे पसंद है, लेकिन यह structured input से ज्यादा brainstorming, diagrams और to-do lists के लिए बेहतर है
    • यह सच में बेहद खराब user experience जैसा लगेगा, और मैं इसके लिए पैसे नहीं दूँगा। उल्टा कोई पैसे दे तो शायद इस्तेमाल करूँ
    • क्या touch से प्रति मिनट 120 words draw कर सकते हो?
  • “offline” handwriting, यानी कागज पर ink को “online” रूप—strokes के order और timing—में बदलने वाला model historical document handwriting recognition pipeline के लिए सच में उपयोगी हो सकता है
    लेकिन अंततः start-to-finish integrated approach की जरूरत होगी
    समझ नहीं आता कि historical document handwriting recognition सभी multi-task model evaluation benchmarks में इतना उपेक्षित क्यों है। लाखों unindexed handwritten historical documents हैं, और ये हमें हमारे निकट अतीत को कहीं बेहतर समझने में मदद कर सकते हैं
    आगे बढ़कर, वे models को भी निकट अतीत की कहीं बेहतर समझ दे सकते हैं