Is there any software to identify out of focus images (no part of the image in focus) and tag or segregate them for elimination?
Cost is not an option, but it needs to run locally in Linux or Windows with files on Samba shares and reasonable efficiency.
I'd probably start with about a million images for a pilot. Thanks.
I was just asking Gemini to evaluate this last night. I was looking at Lightroom assisted culling and it has a subject focus, eyes open, and eyes focus criteria, but I haven't played with it yet. Gemini recommended looking at Peakto and Excire. I was going to look at them this weekend.
Thanks. The first one is only on MACs.
The second one is a possibility, but does not appear to identify OOF images. It seems to be looking for various subjects especially human centric, similar to the LR you mentioned. My goal is just to delete the OOF and not care about what the subjects are. I will try to contact them.
EB-1 wrote:
Thanks. The first one is only on MACs.
The second one is a possibility, but does not appear to identify OOF images. It seems to be looking for various subjects especially human centric, similar to the LR you mentioned. My goal is just to delete the OOF and not care about what the subjects are. I will try to contact them.
EBH
I did the trial of both and don't recommend. Peakto did landscape oof as well as human but it was just too trying to do too much and I wasn't impressed with the AI. It has an aesthetic scoring system and some black and white scans of what mail the post office sends to me ranked really hi! Also my underwater shots were considered blurry and it was just too much. One day may be cool. Excire slowed Lightroom down to a crawl on an m4 MacBook with 48gb of memory so I removed it immediately.
I have Photo AI, though not the latest version. It was trying to improve images on AI, not assess for OOF and tag/delete them. Is it something else I'm missing?
Hi EBH
Using OpenCV was not mentioned as a good option. A Python script still needs to be written; you mentioned cost is not a limiting factor. Using AI to develop most of the script and a Python expert to tune it up might yield a pretty sweet solution.
At a high level, OpenCV doesn’t try to “understand” the image the way an AI culling app does. Instead, it measures focus numerically. The most common approach is based on the Laplacian variance, a well-established computer-vision metric for blur detection.
What the OpenCV approach does
Each image is converted to grayscale.
A Laplacian edge filter is applied (this emphasizes fine detail and edges).
The variance of that result is computed.
High variance → lots of edges → something is in focus.
Very low variance → almost no edges → the image is likely entirely out of focus.
To specifically answer “is any part of the image in focus?”, the image can be divided into tiles, and the maximum focus score across all tiles is used.
If even the sharpest tile is below a threshold, the image is flagged as “nothing in focus.”
This works extremely well for large datasets and doesn’t care whether the subject is people, landscapes, documents, etc.
What scripting is required
A relatively short Python script using OpenCV
Folder recursion to scan images
A focus-scoring function (Laplacian variance, optionally tile-based)
Output to a CSV or text file listing:
image path
focus score
pass/fail flag
Importantly: modern AI tools (including ChatGPT) can generate essentially all of this script. The human mainly needs to:
describe the goal clearly
review the script
run it and adjust parameters
No deep computer-vision background is required.
Threshold calibration (the key step)
There is no universal “correct” threshold. The normal process is:
Run the script on a small test set (e.g., 50–100 known sharp images and known out-of-focus images).
Look at the resulting scores.
Choose a cutoff value that cleanly separates “some focus” from “no focus.”
Lock that threshold and run the full dataset.
This calibration step usually takes minutes, not days.
Why is OpenCV an attractive alternative?
Scales to hundreds of thousands or millions of images
Fully automatic and repeatable
No subscriptions
Extremely fast on modern CPUs (and faster still on SSDs)
Produces a defensible, numeric criterion rather than a subjective judgment
Tradeoffs
It’s a technical solution, not a polished GUI
It won’t understand artistic intent (e.g., deliberate motion blur)
Borderline cases still benefit from human review
In short: if the person has access to a software-savvy helper (or is one themselves), an OpenCV-based blur-detection pipeline is realistic, robust, and easy to prototype using AI-generated code. It’s not the only solution—but it’s a strong option to have on the table.
Not a turn-key option yet it may work better than some of the existing software alternatives out there.
Just another option to consider.
John Wheeler
EB-1 wrote:
Is there any software to identify out of focus images (no part of the image in focus) and tag or segregate them for elimination?
Cost is not an option, but it needs to run locally in Linux or Windows with files on Samba shares and reasonable efficiency.
I'd probably start with about a million images for a pilot. Thanks.
EBH
Lightroom Classic now has a culling function that will identify and segregate out-of-focus images. I haven't actually used it (since none of my pictures are ever out of focus or need to be culled ), so I don't know what it tags (eyes or everything?), nor how well it works. But I can't imagine you would want to import a million images into LRC anyway.
Seabassius wrote:
I did the trial of both and don't recommend. Peakto did landscape oof as well as human but it was just too trying to do too much and I wasn't impressed with the AI. It has an aesthetic scoring system and some black and white scans of what mail the post office sends to me ranked really hi! Also my underwater shots were considered blurry and it was just too much. One day may be cool. Excire slowed Lightroom down to a crawl on an m4 MacBook with 48gb of memory so I removed it immediately.
I run Excire Standalone and eliminate what I do not need. I use MacBook M1 Max 16in 64 GB. Then I do my edits on Photolab9/Filmpack8/VP. Works for me.
When you say eliminate, does it automatically find OOF images only (or the opposite would be OK also)?
I can set up say 1000 folders with 1000 files each or better would be 100 folders with 10,000 files each. I'm not using the LR as was mentioned above that would be slow.
cortlander wrote:
I run Excire Standalone and eliminate what I do not need. I use MacBook M1 Max 16in 64 GB. Then I do my edits on Photolab9/Filmpack8/VP. Works for me.
You'll probably tell me and how say obviously, but what is VP?