How it works

Blur, exposure and resolution checks come first

Tools often run cheap checks for blur, darkness and size before the expensive model, and a rejection there says nothing about the subject.

4 min readHow it works

Before a photo reaches the model that produces a score, most pipelines run it through a set of cheap checks that have nothing to do with judgement at all: is it blurry, is it too dark, is it big enough to be worth scoring. A rejection at this stage is not a comment on the subject. It is the pipeline declining to spend a much more expensive model call on an input it has already determined is unusable.

These checks predate deep learning by decades - blur and exposure detection were standard steps in digital photography software long before any of it was called AI - and a scoring pipeline borrows them wholesale rather than reinventing anything.

Why the order matters

Running the full scoring model costs more compute, and more time, than a handful of statistical checks on the raw pixel data. Blur can be estimated from the variance of a Laplacian filter applied to the image - sharp edges produce high variance, a blurred photo flattens it - in a fraction of a millisecond, no learned model required. Exposure can be read straight from the pixel value histogram: a distribution bunched near black or near white indicates under- or over-exposure without any need to understand what is in the frame. Resolution is simpler still, just the file's dimensions. Placing these checks first means a genuinely unusable photo gets rejected before the pipeline pays for a model call it was always going to waste, and the rejection returns almost instantly rather than after the several seconds a full score takes.

What each check is actually computing

The blur check is a proxy, not a direct measurement of sharpness as a person would judge it. A photo can pass a Laplacian-variance threshold and still look soft to a human eye, particularly if it is sharp in one region and defocused in another, since the check usually operates on the whole frame or a coarse grid rather than the specific area a person would examine. The check also does not distinguish why a photo is soft, and motion blur behaves differently from a simple focus miss in ways worth knowing before assuming a rejection means a shaky hand.

The exposure check is similarly coarse. It flags photos where most pixels sit at the extremes of the brightness range, which catches genuinely unusable frames but can also flag a deliberately high-contrast photo that a person would consider fine, because the histogram alone cannot distinguish "badly lit" from "lit unusually."

The resolution check is the only one of the three that is not a statistical proxy for anything - it is a direct comparison against a minimum pixel count the pipeline has decided is worth processing, chosen for cost and quality reasons rather than derived from any property of the photo itself. A photo under that threshold is rejected regardless of how sharp or well lit it otherwise is, because the pipeline has no minimum-effort path for an undersized input; it either meets the bar or it does not proceed.

What a rejection here does not tell you

A photo that fails a quality gate has failed a test about the file, not a test about the subject. The distinction matters because the message a user sees - often something like "photo unclear, please retake" - reads as feedback about the photo's content when it is really feedback about brightness statistics or an edge-variance number. Retaking under better light or holding the phone steadier addresses the actual cause; anything else is guessing at a cause the gate never evaluated.

This is a different mechanism from a content classifier deciding an image cannot be scored for policy reasons, which runs as a separate gate with a separate purpose, and it is upstream of the detection and cropping step that runs once a photo has cleared these checks. It also has nothing to do with why the same clean photo still scores differently on repeat uploads - that variance lives entirely on the far side of a gate that passed.

Practical advice about lighting and framing belongs to Rate Cock's own photo guide, which covers what a good input photo looks like properly rather than as a side note here. The equivalent step barely exists for a human reviewer - a person can usually work with a slightly dark or soft photo and say so, where a commissioned human judge brings judgement a fixed statistical threshold cannot - and reading what a rejection or a low score actually reflects is worth doing carefully, which Penis Rater covers from the receiving end. None of these checks measure anything physical either; that is a separate question with its own method, elsewhere.

Read next

Full archive