top | item 33704483

Frog: OCR Tool for Linux

172 points| Epitom3 | 3 years ago |tenderowl.com

46 comments

order

recuter|3 years ago

Appears to be a nice wrapper around Tesseract:

https://github.com/tesseract-ocr/tessdata

https://en.wikipedia.org/wiki/Tesseract_(software)

The demo of course works perfectly on a Mac as this is already built into Ventura.

If you haven't experienced it yet ye olde ctrl-f now seamlessly sneaks a peak into images on the page for example, surprisingly useful.

  In November 2020, Brewster Kahle from the Internet Archive praised Tesseract saying:

  Tesseract has made a major step forward in the last few years. When we last evaluated the accuracy it was not as good as the proprietary OCR, but that has changed– we have done evaluations and it is just as good, and can get better for our application because of its new architecture.
Anybody have an up to date breakdown of available OCR solutions?

nickserv|3 years ago

There's also DocTR which can do text detection and extraction out of the box.

It's command line driven but can display the detected text as an overlay of the document.

https://github.com/mindee/doctr

Icko|3 years ago

Last I compared them, (1-2 years ago), Google OCR was much much better and supported more languages than tesseract. There was also an OCR in openCV, which was slightly better than tesseract, but not good enough to be useful.

captnswing|3 years ago

On a Mac, for ad-hoc OCR, I use the immensely useful CleanShot X https://cleanshot.com/ (which is well worth paying for).

Among many other things, it offes OCR of any region on the screen

for larger-scale OCR processing of pdfs and other files, I love how s3-ocr https://simonwillison.net/2022/Jun/30/s3-ocr/ makes working with AWS Textract OCR more accessible (though, somehow, Textract refuses to fully OCR larger pdfs I possess..)

IceHegel|3 years ago

In 2019 I was working on a project that involved OCRing millions of scanned historical documents. I evaluated Google, Azure, Amazon, Adobe, ABBYY, and Tesseract somewhat rigorously.

Google's was by far the best, especially for obscured or malformed characters. Azure was second and I ended up merging the results from both.

For my use case (in Spring 2019) Tesseract was not very accurate and struggled with slanted text especially. Hopefully that has changed.

mavu|3 years ago

I probably shouldn't but I dislike using libraries for the main part of your project and then not even mentioning that you are using them.

Seems dishonest to me, but maybe I'm just too strict.

mewse-hn|3 years ago

Yeah.. if I have to dig into your python code on github to figure out what library you're using for the main feature of your project (OCR in this case), I'm not impressed

rjzzleep|3 years ago

This looks like a nice app. I was looking for something like this a while back until I noticed that there are "one" liners that can you can setup for a hotkey:

    #!/usr/bin/env bash
    langs=(eng ara fas chi_sim chi_tra deu ell fin heb hun jpn kor nld rus tur)
    lang=$(printf '%s\n' "${langs[@]}" | dmenu "$@")
    maim -us | tesseract --dpi 145 -l eng+${lang} - - | xsel -bi

tmerse|3 years ago

Nice! Didn't know about maim. This looks better than what I currently use (found it somewhere on the internet).

  #!/bin/bash
  SRC_IMG=$(mktemp -u /tmp/ocr_XXXXXXXXX.png)
  scrot --select "$SRC_IMG" -q 100
  mogrify -modulate 100,0 -resize 400% "$SRC_IMG"
  tesseract "$SRC_IMG" "$SRC_IMG" &> /dev/null
  OCR_RESULT=$(cat "$SRC_IMG.txt")
  echo "$OCR_RESULT"
  notify-send "$OCR_RESULT"
  xsel -bi < "$SRC_IMG.txt"

tjoff|3 years ago

Nice, that is great! I adapted this to work for me on wayland (sway):

grim -g "$(slurp)" - | tesseract --dpi 145 -l eng+${lang} - - | wl-copy

Using grim to take a screenshot, slurp to mark a region on your screen and wl-copy to copy to clipboard.

ducktective|3 years ago

I wonder if it's possible to auto-detect the language. Meaning, instead of the priority list, it finds out the most probable language a script belongs to in the first sweep.

ever1337|3 years ago

yeah, i have a script almost identical to this that i've been using with i3 for a long time

lervag|3 years ago

Cool! I've seen similar ideas before and made my own inspired by these some years ago. It's a simple bash script based on Flameshot [0] for taking the screenshot and Tesseract:

    #!/usr/bin/env bash

    rm -f /tmp/screen.png
    flameshot gui -p /tmp/screen.png

    tesseract \
      -c page_separator="" \
      -l "eng" \
      --dpi 145 \
      /tmp/screen.png /tmp/screen

    if [ "$(wc -l < /tmp/screen.txt)" -eq 0 ]; then
      notify-send "ocrmyscreen" "No text was detected!"
      exit 1
    fi

    xclip /tmp/screen.txt
    notify-send "ocrmyscreen" "$(cat /tmp/screen.txt)"
[0]: https://flameshot.org/

xchip|3 years ago

Nice, but it should give credits to Tesseract and mention how much HD space it requires for the UI dependencies.

seltzered_|3 years ago

Oh nice. There hasn't been a good ocr screenshot tool with Wayland support yet so look forward to trying this. IIRC there's been..

Linux: dpScreenOCR - x11 only last I checked in and now Frog

MacOS: screenotate, prizmo

Windows: screenotate

I don't get all the nitpick comments. OCR tools like this are extremely useful when dealing with excerpting text from certain websites (slack) or taking class notes from video.

habibur|3 years ago

Uses tesseract OCR on the ocr part.

noisediver|3 years ago

A useful tool and great UI work. A handy extension would be the ability to extract text of specific colour, e.g. the highlights in Kindle's Cloud Reader, to get around the 10% highlight export cap that Amazon puts on most books. I did this previously by running the screenshot through ImageMagick's colour filling and thresholding options before passing the output to Tesseract. A colour picker tool might be a nice addition.