Frog: OCR Tool for Linux(tenderowl.com) |
Frog: OCR Tool for Linux(tenderowl.com) |
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?It's command line driven but can display the detected text as an overlay of the document.
Back in the days, Cuneiform got close to Tesseract's performance, but AFAIK it wasn't developed further...
Does anyone else know other promising open-source OCR engines?
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..)
Try Command+Shift+4, grab part of the screen, click the pop-up, and just select text.
It does quite some preprocessing on the PDF pages before passing it on to tesseract.
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.
https://learn.microsoft.com/en-us/windows/powertoys/text-ext...
Seems dishonest to me, but maybe I'm just too strict.
#!/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 #!/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"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.
#!/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/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.
Source: I work in developing a competing OCR service and we keep an eye on competition (e.g. aside from Google, solutions by Azure, Amazon, Abbyy, Nuance, Cloudmersive, etc., as well as our internal product of course, which is not available externally), and they are (almost) all significantly better on Tesseract.
The only domain where Tesseract is competitive is for perfect "black text on white paper", it gives pretty poor performance when dealing with colored, distorted text, or even strong page structure effects (tables, etc.).
When I say "pretty poor" I mean: "with respect to the state-of-the-art", of course it's still enormously better than what was the state-of-the-art before deep learning came into the picture, roughly a decade ago. And for things like "search contents of a book" it's basically perfect already.
Great. How do you quantify it and keep track? Is there an industry standard benchmark?
Would you consider sharing a backblaze type analysis (they track consumer HD performance and blogging about it got them a lot of attention and customers)?
Short answer is: we can't and we don't. Most EULAs explicitly prevent users to benchmark results, and we don't want to incur into any such risk. Plus, since we develop a competing product, any "deep look" into the competition might be seen as reverse engineering it, and our company is very careful to avoid such problems.
Our company has dedicated teams to evaluate competition products, so we once asked them (a couple of years ago), and could only look at aggregated, anonymized results. But the patterns were very clear. Anecdotical experience (mostly coming from customers of ours who, themselves, compare our internal engine with alternatives) seemed to point to the fact that most of the competition have rather stable service, so quality likely didn't evolve much in the last two years, but we can't be sure of course.
We constantly track our own accuracy on internally developed benchmarks, because frankly the ones available online (also for research purposes) are very bad. But as said, we can only continuously test our own engine and open source ones (like Tesseract), for legal reasons.
It certainly beats Abbyy from 10 years ago - maybe a low bar to clear.
I had to spend some time setting up labeling then did some supplemental training on UB-Mannheim datasets.
Tesseract is the only OCR FOSS solution that has reasonable performance.
I wouldn't be surprised if their data set is bigger than the stock tesseract, but part of the OCR process is to preprocess the images.