3 puan yazan GN⁺ 2024-03-17 | 1 yorum | WhatsApp'ta paylaş
  • TextSnatcher, Linux'ta görüntülerin içindeki metni hızlıca kopyalamak için kullanılan bir OCR uygulamasıdır; görüntüyü sürükleyerek karakter tanıma yapar ve sonucu yapıştırmanıza olanak tanır
  • Temel özellikleri çoklu dil desteği, görüntüden metin kopyalama, herhangi bir görüntü üzerinde sürükleyip ardından yapıştırma ve hızlı, kolay kullanım sunmasıdır
  • Metin tanıma için Tesseract OCR 4.x kullanır; ayrıca Tesseract belgeleri ve Tesseract proje bağlantılarını birlikte sunar
  • Dağıtım Flathub ve elementary OS AppCenter üzerinden sağlanır; doğrudan derlemek isterseniz Meson ve Ninja tabanlı kurulum adımları kullanılır
  • Çalıştırmak için scrot, tesseract-ocr ve Tesseract dil verileri gerekir; proje ek olarak gelecek ay güncellemeler ve düzeltmelerle geri döneceğini bildirir

TextSnatcher ne yapar

  • TextSnatcher, görüntülerden metin kopyalayan ve birkaç saniye içinde OCR işlemi gerçekleştiren bir Linux uygulamasıdır
  • Kullanıcılar bir görüntü üzerinde sürükleme yaparak metni kopyalayıp yapıştırabilir
  • Sunulan özellikler:
    • Çoklu dil desteği

      • Sürükleyerek görüntüden metin kopyalama
      • Herhangi bir görüntü üzerinde sürükleyip ardından yapıştırma
      • Hızlı ve kolay kullanım

OCR motoru ve ilgili projeler

Kurulum ve dağıtım kanalları

  • Uygulama Flathub üzerinden edinilebilir
  • elementary OS kullanıcıları buna AppCenter üzerinden ulaşabilir

Bağımlılıklar ve derleme

  • Çalıştırma için gereken çalışma zamanı bağımlılıkları:
    • scrot
    • tesseract-ocr
    • Tesseract dil verileri
      • Arch deposu ve Debian deposu bağlantıları sunulur
  • Derleme için gereken derleme zamanı bağımlılıkları:
    • granite
    • gtk+-3.0
    • gobject-2.0
    • gdk-pixbuf-2.0
    • libhandy-1
    • libportal-0.5
  • Doğrudan derleme ve çalıştırma akışı; depoyu klonladıktan sonra bir Meson derleme dizini oluşturmak, Ninja ile kurmak ve ardından com.github.rajsolai.textsnatcher komutunu çalıştırmaktır

Geliştirme durumu ve kaynak

  • Projenin Vala ile yapıldığını belirten bir rozet bulunur
  • README'de, şu anda Linux PC satın alma fonu toplandığı ve projenin yakında gelecek ay güncellemeler ve düzeltmelerle geri döneceği yazıyor
  • İlham kaynakları olarak Planner'ın README'si, Develop'in uygulama yapısı ve macOS uygulaması TextSniper gösteriliyor

1 yorum

 
GN⁺ 2024-03-17
Hacker News yorumları
  • Dibby053'ünkine benzer bir betik kullanıyorum; Stack Overflow'dan aldıktan sonra KDE/GNOME ve Wayland/X11 üzerinde çalışacak şekilde biraz düzelttim, ayrıca mevcut durumu bildirimle göstermesini sağladım
    X11/Wayland tespitini henüz kendim test etmedim ama deneyip sonucu bildirirseniz iyi olur

    • Betiği biraz değiştirip temizlik işleminin düzgün yapılmasını sağladım ve ekran görüntüsünden sonra pencerenin öne fırlamaması için spectaclearka plan modunda çalıştırdım
    • Hata işleme iyi, ama geçici dosyaları atlayıp pipe ile aktarmak yeterli
      grim, slurp, mogrify, tesseract, wl-copy birbirine bağlanıyor ve OCR dili fuzzel ile seçiliyor
    • Ben de aynı betiği kullanıyordum, sonra HN'de bu yöntemi keşfettim
      Dili dmenu ile seçip maim -us | tesseract --dpi 145 -l eng+${lang} - - | xsel -bi gibi işliyor
      https://news.ycombinator.com/item?id=33704483#33705272
    • trap "cleanup '$SCR_IMG'" EXIT konusunda ShellCheck bazen yanlış pozitif verebilir, ama bu durumda işaret ettiği şey tamamen haksız değil
      trap'e verilen komut genel olarak değerlendirildiği için değişken genişletmesi gerçekleşir; trap 'cleanup "$SCR_IMG"' EXIT daha güvenli çalışır
      Güncel Bash kullanıyorsanız trap "cleanup ${SCR_IMG@Q}" EXIT de bir seçenek
    • Kısayola bash -c 'flameshot gui -s -r | tesseract - - | gxmessage -title "Decoded Data" -fn "Consolas 12" -wrap -geometry 640x480 -file -' bağlayarak kullanıyorum
      Super+O'ya basıp OCR yapılacak alanı sürükleyince, yakalanan metin hemen açılır bir iletişim kutusunda görünüyor
  • Eskiden bir yerlerden kopyaladığım bir betik bu işi epey iyi yapıyor
    scrot ile alanı yakalıyor, mogrify ile siyah-beyaza çevirme ve büyütme ön işlemesi yapıyor, ardından tesseract ile metni çıkarıp xsel ile panoya koyuyor ve bildirim de gösteriyor

    • Paylaşım için ekleyeyim: scrot yerine maim tercih ediyorum
      --nodrag seçeneği sayesinde trackpad ile alan seçerken bir kez tıklayıp imleci taşıdıktan sonra tekrar tıklamak yetiyor, daha rahat
      maim -s --nodrag --quality=10 $IMG.png içindeki 10, scrot'taki 100 değerine karşılık geliyor
    • Bunu bir süre bu şekilde kullandım ama Tesseract beklentimin altında oldukça sık kaldı
      Büyütme ön işlemesinin de büyük fark yarattığını hissetmedim; hangi ön işlemenin daha iyi sonuç vereceğini pek bilmiyorum
      TextSnatcher'ın buna göre bir iyileştirme yapıp yapmadığını merak ediyorum, ama GitHub sayfası net değil
    • PowerShell'de de benzer bir betiğim vardı, ama önceki iş yerimdeki ufak tefek betiklerle birlikte zaman içinde kayboldu
      Unix ile Windows arasında yaşayan meslektaşlarımdan özür dilerim
    • trap "rm $IMG*" EXIT için https://www.shellcheck.net/wiki/SC2064 sayfasına bakmak iyi olur
      mktemp -d kullanıp dizini özyinelemeli silmek daha iyi
    • Bana göre bu yöntem tam uygun
      Düğmeli bir pencereye tıklamak zorunda kalmaktansa betiği bir kısayola bağlamak çok daha iyi
  • Windows kullanan sıradan meslektaşlar için söyleyeyim, resmi Microsoft PowerToys eklentilerinde de bu özellik var
    Varsayılan ekran görüntüsü aracına da eklendi, ama kişisel olarak PowerToys'un tek klavye kısayolunu kullanması daha rahat
    https://github.com/microsoft/PowerToys

    • Yerleşik Ekran Alıntısı Aracı OCR özelliği, ayrı bir dil OCR paketi kurmadan İngilizce, Rusça, Çince, Japonca gibi birçok dilde çalışıyor
    • Varsayılan Ekran Alıntısı Aracı da bu özelliği sunuyor
      WIN+SHIFT+S'ye basmanız yeterli; “Text actions” simgesi yoksa Windows Store'dan en son sürüme güncelleyin
  • Uzun zamandır merak ediyorum: Tesseract gerçekten bu alandaki en güncel ve en iyi çözüm mü, emin değilim
    Bana epey yetersizmiş gibi geliyor; 2019 civarında bile bilgisayarlı görüdeki ilerlemeyi düşününce metin tanımanın fiilen çözülmüş bir problem olması gerektiğini düşünüyordum
    İnsandan daha iyi yapması gerekir gibi geliyor, ama düşük çözünürlüklü fiş taramalarını bile özellikle İngilizce değilse doğru dönüştüremiyordu
    Belki de ben doğru kullanamıyorumdur

    • Tesseract'ı yarı düzenli kullanıyorum; fiş taramalarında veya fotoğraflarda bile tanıma sorunları nadirdi
      Tam olarak nasıl kullandığını merak ediyorum
  • Tesseract'tan giderek daha sık söz edildiğini görüyorum
    10-15 yıl önce taranmış bilimsel makalelerde denediğimde sonuçlar hayal kırıklığıydı; elle sonradan düzeltmek, doğrudan yazmaya kıyasla çok da az iş değildi
    Bu yüzden benim için Tesseract “denemeye değmez” ile eş anlamlı hâle gelmişti, ama zamanla iyileşmiş olabilir; tekrar denemeye değer

    • Artık yalnızca taranmış belgelerde OCR yapıyorsanız ya da görüntü hazırlama sürecini büyük ölçüde kontrol edebiliyorsanız fena değil
      Tuhaf yazı tipleri veya kötü görüntü kalitesini de içeren genel amaçlı tanımada EasyOCR çok daha iyi sonuçlar verdi
    • Bu proje en az birkaç yıllık Tesseract 4.1.1 sürümünü içeriyor
    • https://github.com/ocrmypdf/OCRmyPDF kullanmayı deneyebilirsiniz
      İçeride Tesseract kullanıyor ve gerçekten harika
    • Şimdi çok daha iyi
      15 yıl önce nispeten daha az kötü sonuç almak için epey ön işlem yapmak gerekiyordu, ama şimdi ön işlem olmadan da iyi sonuçlar alıyorum
    • 3-4 yıl önce ilk denediğimde fena değildi
  • Bizzat denedim; oldukça iyi çalışıyor
    Bir Flatpak uygulaması olduğu için tam işlevsellik için masaüstü portalı gerekiyor, ancak mevcut xdg-desktop-portal-wlr yapılandırmamda ek ayar yapmadan sorunsuz çalıştı
    Screenshot API’yi destekleyen bir xdg-desktop-portal yapılandırmasına sahip X11 veya Wayland ortamlarında muhtemelen sorunsuz çalışır
    Sonuçlar tutarsız olsa da fena değil; temiz okunabilen metinlerde yalnızca boşluk sorunları veya ara sıra hatalar oluyor, bu yüzden hata iletişim kutuları gibi yerlerden metin kopyalamak için yararlı olabilir
    Ancak Linux’ta zaten hata iletişim kutusu metinlerinin seçilebilir olduğu durumlar daha fazla, Windows’un standart MessageBox’ı da Ctrl+C’ye yanıt verir

  • Benzer bir uygulama olarak Frog kullanıyorum ve çok başarılı şekilde işimi görüyor
    https://getfrog.app

    • AppImage yok, .deb yok, brew de yok
  • macOS’te, Preview’da belgeyi açıp metin seçmeyi denemekten fazlasını yapan bir yardımcı araç var
    https://github.com/schappim/macOCR
    Yazarını seviyorum

    • Bu arada Preview’dan geçmeden Cmd-Shift-3 ile ekran görüntüsü alıp küçük görsele tıklayarak Quick Look’ta metinle etkileşime girebilirsiniz
      Sonrasında sağ üstteki çöp kutusuyla görseli silebilirsiniz; Cmd-A da çalışır
      Bu yorumda denediğim örnek burada: https://imgur.com/a/q0NvcS6
  • iOS’te Eylem düğmesine bağladığım bir Kestirme ile benzer bir çözüm kullanıyorum
    Bazı uygulamalarda metin kopyalamak kolay olmuyor ya da metin yabancı dilde olabiliyor; ekran görüntüsü alıp metni çıkarıyor, kaynak dili otomatik algılayıp İngilizceye çeviriyor ve hem orijinali hem çeviriyi seçip kopyalanabilecek şekilde Quick View’da gösteriyor
    Uygulama örneğini burada deneyebilirsiniz: https://www.icloud.com/shortcuts/f420d24e4960415da1a43f230abfce39
    Bu arada güncel iOS’te Fotoğraflar uygulamasında bir fotoğrafı açıp fotoğrafın içindeki metni parmağınızla seçerek de kopyalayabilirsiniz

    • Harika bir Kestirme
      Bir görselde paylaş düğmesine basıp paylaşım sayfasından denedim ve çalıştı; ama zaten bir görseli aktardığınız bir durumda ekran görüntüsü adımı gereksiz tekrar oluyor
  • “Linux Desktop için” deniyor ama bu bir Flatpak ve tüm Linux dağıtımları Flatpak’ı varsayılan olarak sunmuyor
    Fedora sanal makinesinde bir kez çalıştırmayı planlıyorum; bu tür araçları çok gördüm ve çoğu Tesseract’tan yararlanıyor
    Pürüzlü veya çok gürültülü görsellerde, harflerin bükülmüş ya da eğik olduğu durumlarda ciddi şekilde başarısız oluyor ve CAPTCHA çözmüyor
    https://tesseract-ocr.github.io/tessdoc/Home.html

    • Flatpak’ın çalışmadığı dağıtım hangisi?
    • Bu sadece bir yığın Vala kodu
      Daha doğrusu, yazarın sizin dağıtımınız için paket hazırlamadığı ve başka kimsenin de zaman ve istek ayırıp paketlemediği anlamına daha yakın
      Aranan bakımcı siz olabilirsiniz
    • Bu pek de bir dezavantaj değil
      Eğer yalnızca .deb olsaydı, Ubuntu/Debian dışındaki yerlerde çalışmıyor denebilirdi; bu çok daha büyük bir dezavantaj olurdu