forensics.media Subscribe

Copy-move / clone detection

Was part of this photo cloned to hide or duplicate something?

The clone-stamp and healing tools copy one part of a picture over another, to duplicate an object or paint something out. Because the copied patch comes from the same photo, it is an almost exact match for its source somewhere else in the frame. This finds those matching pairs and, crucially, keeps only the ones that all move by the same distance and direction, the signature of a real copied region rather than ordinary repeated texture. Read it as a lead, not proof.

Runs entirely in your browser. Your image is never uploaded or stored.

How it finds a clone

The picture is cut into small overlapping blocks, and each block is boiled down to a short fingerprint of its low-frequency detail, quantized so that a lightly retouched or re-compressed copy still fingerprints the same. Sorting those fingerprints puts near-identical blocks side by side, which is a fast way to find every pair of blocks that look alike. On its own that produces a lot of noise, because textures repeat. The decisive step, from Fridrich, Soukal and Lukas, is to look at the shift between each matching pair and keep only the shifts that show up many times over. A real cloned region is dozens of neighbouring blocks all copied by the same offset, so they all share one shift vector; coincidental matches scatter across many different shifts and drop out.

How to read the result

What you seeWhat it can mean
A clear orange shape and a matching cyan shape elsewhereA region was copied from one place to another, consistent with a clone-stamp edit
Nothing highlightedNo large region was copied within the frame (or the copy was rotated, scaled or heavily blended)
Scattered highlights over a repeating textureGenuine repetition, brickwork, foliage, windows, not necessarily an edit

What fools it

This looks for a patch copied straight across the frame. If the pasted copy was rotated, resized or flipped before it was dropped in, the fingerprints no longer match and it slips through, which is a known limit of the plain block-matching method. Very smooth areas like clear sky are skipped on purpose, because every flat block matches every other and would swamp the result. And a genuine repeated pattern can trip it, so a highlight is a place to look closely, not a verdict. Pair it with the photo edit check, the JPEG Ghost tool and the metadata viewer before drawing a conclusion.

Sources

  • Fridrich, J., Soukal, D. & Lukas, J. (2003). Detection of Copy-Move Forgery in Digital Images. Digital Forensic Research Workshop (DFRWS) 2003.