It appears to be as simple as tesseract <infile><outfile>. Possibly could even pipe (or tee) the screenshot straight into that and save both an image and a text file in a single command line.
It is much better to search using ElasticSearch or Sphinx. Grep is super slow, non indexed and can’t do natural language full text searches. It’s pretty much useless for any real world text search you’d want from OCRed content. And all these better tools are free and open source, so really a no brainer.
I’m sure there are many ways to improve on this solution, but they would all require significantly more effort (ElasticSearch isn’t exactly trivial to set up).
This is really just a proof of concept, the most minimal viable implementation that gets you something similar in terms of functionality.
For instance, Windows Recall stores OCR content tagged by app, this solution doesn’t. Also, as others have mentioned, a practical implementation should likely check if anything has changed at all and discard any screenshots that don’t have any new data.
I found a small command to run KDE Spectacle (screenshot software) with Tesseract so I can OCR a screenshot if I want to, I only had to install Tesseract and a main language, you could easily do the same with an API and/or a local AI.
Takes a screenshot every minute and saves it
Can you search the screenshots with OCR though? That’s Recall’s main selling point
You can start by running
sudo apt install tesseract-ocr
and then reading its docs.Fulfills the AI quota 👍
It appears to be as simple as
tesseract <infile> <outfile>
. Possibly could even pipe (or tee) the screenshot straight into that and save both an image and a text file in a single command line.So something like this should do the trick:
Skip the database, just use
grep
to search that directory if you need to find anything. Voilà, homemade Recall.It is much better to search using ElasticSearch or Sphinx. Grep is super slow, non indexed and can’t do natural language full text searches. It’s pretty much useless for any real world text search you’d want from OCRed content. And all these better tools are free and open source, so really a no brainer.
I’m sure there are many ways to improve on this solution, but they would all require significantly more effort (ElasticSearch isn’t exactly trivial to set up).
This is really just a proof of concept, the most minimal viable implementation that gets you something similar in terms of functionality.
For instance, Windows Recall stores OCR content tagged by app, this solution doesn’t. Also, as others have mentioned, a practical implementation should likely check if anything has changed at all and discard any screenshots that don’t have any new data.
I can’t imagine it’d be that hard to write some code that does that using an existing AI model.
You’re probably right.
I found a small command to run KDE Spectacle (screenshot software) with Tesseract so I can OCR a screenshot if I want to, I only had to install Tesseract and a main language, you could easily do the same with an API and/or a local AI.
Llava and Bakllava are two Ollama models than can not only extract text but also describe what’s happening on screen.
Using
tesseract-ocr
, as the other guy suggested, is probably simpler and less resource intensive though.