3 पॉइंट द्वारा GN⁺ 2024-03-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • TextSnatcher Linux पर इमेज के भीतर मौजूद टेक्स्ट को तेज़ी से कॉपी करने के लिए एक OCR ऐप है, जो इमेज को ड्रैग करके टेक्स्ट पहचान सकता है और परिणाम को पेस्ट किया जा सकता है
  • इसकी मुख्य विशेषताएँ हैं बहुभाषी समर्थन, इमेज से टेक्स्ट कॉपी करना, किसी भी इमेज पर ड्रैग करके फिर पेस्ट करना, और तेज़ व आसान उपयोग
  • टेक्स्ट पहचान के लिए यह Tesseract OCR 4.x का उपयोग करता है, और साथ में Tesseract दस्तावेज़ व Tesseract प्रोजेक्ट के लिंक भी देता है
  • वितरण Flathub और elementary OS AppCenter के माध्यम से उपलब्ध है, और सीधे बिल्ड करने के लिए Meson और Ninja आधारित इंस्टॉलेशन प्रक्रिया का उपयोग किया जाता है
  • इसे चलाने के लिए scrot, tesseract-ocr, और Tesseract भाषा डेटा की आवश्यकता होती है, और परियोजना के बारे में बताया गया है कि यह अगले महीने अपडेट और सुधारों के साथ वापस आएगी

TextSnatcher क्या करता है

  • TextSnatcher Linux के लिए एक ऐप है जो इमेज से टेक्स्ट कॉपी करता है और कुछ ही सेकंड में OCR कार्य पूरा करता है
  • उपयोगकर्ता इमेज पर ड्रैग करके टेक्स्ट कॉपी कर सकते हैं और उसे पेस्ट कर सकते हैं
  • उपलब्ध सुविधाएँ:
    • बहुभाषी समर्थन

      • ड्रैग करके इमेज से टेक्स्ट कॉपी करना
      • किसी भी इमेज पर ड्रैग करने के बाद पेस्ट करना
      • तेज़ और आसान उपयोग

OCR इंजन और संबंधित प्रोजेक्ट

  • TextSnatcher टेक्स्ट पहचान के लिए Tesseract OCR 4.x का उपयोग करता है
  • संबंधित सामग्री के रूप में Tesseract दस्तावेज़ और Tesseract-Project उपलब्ध कराए गए हैं

इंस्टॉलेशन और वितरण मार्ग

  • ऐप को Flathub से डाउनलोड किया जा सकता है
  • elementary OS उपयोगकर्ता इसे AppCenter के माध्यम से प्राप्त कर सकते हैं

निर्भरताएँ और बिल्ड

  • चलाने के लिए आवश्यक रनटाइम निर्भरताएँ:
    • scrot
    • tesseract-ocr
    • Tesseract भाषा डेटा
      • Arch रिपॉज़िटरी और Debian रिपॉज़िटरी के लिंक उपलब्ध हैं
  • बिल्ड के लिए आवश्यक बिल्डटाइम निर्भरताएँ:
    • granite
    • gtk+-3.0
    • gobject-2.0
    • gdk-pixbuf-2.0
    • libhandy-1
    • libportal-0.5
  • सीधे बिल्ड और रन करने की प्रक्रिया में रिपॉज़िटरी को क्लोन करना, Meson बिल्ड डायरेक्टरी बनाना, Ninja से इंस्टॉल करना, और फिर com.github.rajsolai.textsnatcher चलाना शामिल है

विकास स्थिति और स्रोत

  • प्रोजेक्ट में यह बैज शामिल है कि इसे Vala में बनाया गया है
  • README में लिखा है कि फिलहाल Linux PC खरीदने के लिए धन जुटाया जा रहा है, और प्रोजेक्ट जल्द ही अगले महीने अपडेट और सुधारों के साथ वापस आएगा
  • प्रेरणा के रूप में Planner का README, Develop की एप्लिकेशन संरचना, और macOS ऐप TextSniper का उल्लेख किया गया है

1 टिप्पणियां

 
GN⁺ 2024-03-17
Hacker News राय
  • Dibby053 जैसा ही script इस्तेमाल कर रहा हूँ; इसे Stack Overflow से लिया था, फिर KDE/GNOME, Wayland/X11 पर काम करने के लिए थोड़ा बदला, और अब यह मौजूदा स्थिति notification के रूप में दिखाता है
    X11/Wayland की पहचान अभी खुद test नहीं की है, लेकिन आप इस्तेमाल करके नतीजे बता सकते हैं

    • script को थोड़ा बदलकर cleanup ठीक से हो, ऐसा किया, और screenshot के बाद window उछलकर सामने न आए इसलिए spectacle को background mode में चलाया
    • error handling अच्छी है, लेकिन temporary file छोड़कर सीधे pipe से पास किया जा सकता है
      तरीका यह है कि grim, slurp, mogrify, tesseract, wl-copy को जोड़ते हैं, और fuzzel से OCR भाषा चुनते हैं
    • मैं भी वही script इस्तेमाल कर रहा था, फिर HN पर यह तरीका मिला
      dmenu से भाषा चुनता हूँ और maim -us | tesseract --dpi 145 -l eng+${lang} - - | xsel -bi जैसा process करता हूँ
      https://news.ycombinator.com/item?id=33704483#33705272
    • trap "cleanup '$SCR_IMG'" EXIT पर ShellCheck कभी-कभी false positive दे सकता है, लेकिन इस case में उसकी बात पूरी तरह गलत भी नहीं है
      trap को दिया गया command आम तौर पर evaluate होता है, इसलिए variable expansion होता है, और trap 'cleanup "$SCR_IMG"' EXIT ज्यादा सुरक्षित तरीके से काम करता है
      नए Bash में trap "cleanup ${SCR_IMG@Q}" EXIT भी एक विकल्प है
    • shortcut key पर bash -c 'flameshot gui -s -r | tesseract - - | gxmessage -title "Decoded Data" -fn "Consolas 12" -wrap -geometry 640x480 -file -' bind करके इस्तेमाल कर रहा हूँ
      Super+O दबाकर OCR के लिए area drag करें, तो captured text तुरंत popup dialog में दिखता है
  • कहीं से बहुत पहले copy किया गया एक script यह काम काफ़ी अच्छी तरह कर देता है
    यह scrot से area capture करता है, mogrify से black-and-white और upscaling preprocessing करता है, फिर tesseract से text निकालकर xsel से clipboard में डालता है और notification भी दिखाता है

    • साझा करने के लिहाज से जोड़ूँ तो, scrot की जगह मैं maim पसंद करता हूँ
      --nodrag option की वजह से trackpad से area select करते समय एक बार click करके cursor ले जाएँ और फिर दोबारा click करें, तो ज्यादा आराम रहता है
      maim -s --nodrag --quality=10 $IMG.png में 10, scrot के 100 के बराबर है
    • कुछ समय तक इसी तरह इस्तेमाल किया, लेकिन Tesseract अक्सर उम्मीद से कमतर निकला
      upscaling preprocessing से भी बड़ा फर्क महसूस नहीं हुआ, और कौन-सी preprocessing इसे बेहतर बनाएगी यह साफ नहीं है
      जानना चाहता हूँ कि TextSnatcher इससे बेहतर कुछ करता है या नहीं, लेकिन GitHub page पारदर्शी नहीं है
    • PowerShell में भी मेरे पास ऐसा ही script था, लेकिन पिछली नौकरी के छोटे-मोटे scripts के साथ समय में खो गया
      Unix और Windows के बीच जीने वाले साथियों से माफ़ी
    • trap "rm $IMG*" EXIT के लिए https://www.shellcheck.net/wiki/SC2064 देखना बेहतर होगा
      mktemp -d इस्तेमाल करके directory को recursively delete करना बेहतर है
    • मेरे लिए यह तरीका बिल्कुल सही है
      button वाली window दबाने की तुलना में script को shortcut key से bind करना कहीं बेहतर है
  • Windows इस्तेमाल करने वाले साथी आम लोगों के लिए कहूँ तो, आधिकारिक Microsoft PowerToys add-on में भी यह feature है
    default screenshot tool में भी यह आ गया है, लेकिन व्यक्तिगत रूप से PowerToys का single keyboard shortcut इस्तेमाल में बेहतर लगता है
    https://github.com/microsoft/PowerToys

    • built-in Snipping Tool OCR अलग language OCR pack install किए बिना भी English, Russian, Chinese, Japanese जैसी कई भाषाओं में काम करता है
    • default Snipping Tool भी यह feature देता है
      WIN+SHIFT+S दबाएँ; अगर “Text actions” icon नहीं है, तो Windows Store से latest version पर update करें
  • बहुत पहले से सोचता रहा हूँ कि Tesseract सच में इस क्षेत्र का latest best solution है या नहीं
    अनुभव से यह काफ़ी अधूरा लगता है, और 2019 के आसपास ही computer vision की प्रगति देखकर लगा था कि text recognition तो मूलतः solved problem होना चाहिए
    इसे इंसानों से बेहतर करना चाहिए, लेकिन low-resolution receipt scans तक को, खासकर English न हो तो, सही से convert नहीं कर पाया
    हो सकता है मैं ही सही तरीके से इस्तेमाल नहीं कर रहा हूँ

    • मैं Tesseract को semi-regularly इस्तेमाल करता हूँ, और receipt scans या photos में भी recognition problems rare थीं
      जानना चाहूँगा कि आप इसे किस specific तरीके से इस्तेमाल कर रहे हैं
  • Tesseract का ज़िक्र अब धीरे-धीरे ज्यादा बार दिखने लगा है
    10–15 साल पहले scanned scientific papers पर इसे इस्तेमाल किया था, तब नतीजे निराशाजनक थे, और manual post-processing सीधे type करने से बहुत कम नहीं थी
    इसलिए मेरे लिए Tesseract “कोशिश करने लायक नहीं” का synonym बन गया था, लेकिन समय के साथ यह बेहतर हुआ हो सकता है, तो दोबारा आज़माया जा सकता है

    • अब अगर सिर्फ scanned documents का OCR करना हो या image preparation process पर काफी control हो, तो यह ठीक है
      अजीब fonts या खराब image quality सहित general-purpose recognition में EasyOCR ने कहीं बेहतर results दिए
    • इस project में कम से कम कई साल पुराना Tesseract 4.1.1 शामिल है
    • https://github.com/ocrmypdf/OCRmyPDF आज़माना अच्छा रहेगा
      यह अंदर से Tesseract इस्तेमाल करता है और सच में शानदार है
    • अब यह काफी बेहतर हो गया है
      15 साल पहले किसी तरह कम खराब results पाने के लिए काफी preprocessing करनी पड़ती थी, लेकिन अब बिना preprocessing के भी अच्छे results मिल रहे हैं
    • 3–4 साल पहले पहली बार इस्तेमाल किया था, तब ठीक लगा था
  • खुद इस्तेमाल करके देखा, और यह काफ़ी अच्छी तरह काम करता है
    चूंकि यह Flatpak ऐप है, पूरी तरह काम करने के लिए desktop portal चाहिए, लेकिन मौजूदा xdg-desktop-portal-wlr कॉन्फ़िगरेशन में बिना किसी अलग सेटिंग के ठीक चला
    जिन X11 या Wayland environments में Screenshot API को support करने वाली xdg-desktop-portal setting हो, वहां शायद बिना दिक्कत काम करेगा
    नतीजे थोड़े inconsistent हैं, लेकिन बुरे नहीं; साफ़ पढ़े जाने वाले text में बस spacing की समस्या या कभी-कभार errors होते हैं, इसलिए error dialog जैसी जगहों से text copy करने में उपयोगी हो सकता है
    हालांकि Linux में अक्सर error dialog का text शुरू से ही selectable होता है, और Windows का standard MessageBox Ctrl+C पर response देता है

  • इसी तरह के ऐप के तौर पर Frog इस्तेमाल कर रहा हूं और बहुत सफलतापूर्वक काम में ले रहा हूं
    https://getfrog.app

    • न AppImage है, न .deb, और न brew
  • macOS में एक utility है जो Preview में document खोलकर text select करने की कोशिश करने से आगे की सुविधा देती है
    https://github.com/schappim/macOCR
    लेखक मुझे पसंद है

    • संदर्भ के लिए, Preview से गुज़रे बिना Cmd-Shift-3 से screenshot लेने के बाद thumbnail पर click करके Quick Look में text के साथ interact किया जा सकता है
      उसके बाद ऊपर दाईं ओर trash से image हटाई जा सकती है, और Cmd-A भी काम करता है
      इस comment में आज़माया गया example यहां है: https://imgur.com/a/q0NvcS6
  • iOS पर Action Button से जोड़े गए Shortcut के जरिए इसी तरह का समाधान बनाकर इस्तेमाल करता हूं
    कुछ apps में text copy करना आसान नहीं होता या वह विदेशी भाषा में होता है; ऐसे में screenshot लेकर text extract करता है, फिर source language को auto-detect करके English में translate करता है, और original व translation को Quick View में दिखाता है ताकि उन्हें select/copy किया जा सके
    implementation example यहां test कर सकते हैं: https://www.icloud.com/shortcuts/f420d24e4960415da1a43f230abfce39
    संदर्भ के लिए, नए iOS में Photos app में photo खोलकर हाथ से photo के अंदर का text select करके copy भी किया जा सकता है

    • बेहतरीन Shortcut है
      image में share button दबाकर share sheet से इस्तेमाल किया और यह काम कर गया, लेकिन अगर आप पहले से image pass कर रहे हैं तो screenshot वाला step redundant है
  • “Linux Desktop के लिए” कहा गया है, लेकिन यह Flatpak है और सभी Linux distributions Flatpak को default रूप से provide नहीं करते
    Fedora virtual machine में एक बार चलाकर देखने वाला हूं, और ऐसे tools बहुत देखे हैं, जिनमें ज़्यादातर Tesseract का उपयोग करते हैं
    rough या ज़्यादा noisy images, या अक्षरों के मुड़े/झुके होने पर ये काफ़ी fail होते हैं, और CAPTCHA solve नहीं कर पाते
    https://tesseract-ocr.github.io/tessdoc/Home.html

    • कौन-सा distro है जहां Flatpak काम नहीं करता?
    • यह तो बस Vala code का एक ढेर है
      सही कहें तो इसका मतलब यह है कि author ने आपके distro के लिए package नहीं बनाया, और किसी और ने भी packaging करने के लिए समय और motivation नहीं निकाला
      जिस maintainer को आप ढूंढ रहे हैं, वह आप खुद हो सकते हैं
    • यह कोई खास कमी नहीं है
      अगर सिर्फ .deb होता, तो कहा जा सकता था कि Ubuntu/Debian के अलावा कहीं नहीं चलेगा, और वह कहीं बड़ी कमी होती