High Falls, Pigeon River

by Jakub

submit your photo

Hall of Fame
View past winners from this year

Please participate in Meta
and help us grow.

Sign up ×
Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. It's 100% free, no registration required.

Is it possible to identify images (without exif data) and link them to the exact same camera? If so, I'd like some software recommendations to get the job done.

I have two photos that I'd like to compare whether they were taken with the same camera or not. They both seem to lack EXIF data but I am sure I've heard of other hidden fingerprints to be found within the images.

For instance, sensor noise should be rather consistent if the photos were taken with the same camera, pretty much like firing a handgun and the bullet gets unique marks. I've also heard that the camera manufacturers sometimes add a hidden watermark which can be read with some special software.

share|improve this question
It sounds like you've been watching too much CSI :) –  Flimzy Oct 30 '11 at 1:48
What format are the images? If they're jpeg, how compressed are they? Have they been downscaled? –  Evan Krall Oct 30 '11 at 6:29
@Flimzy This technology exists. I should know - I helped prototype it when working for the US Air Force, using research out of SUNY Binghamton. My answer cites the research that went into the work that we did. –  Thomas Owens Oct 30 '11 at 13:37

4 Answers 4

up vote 8 down vote accepted

For instance, sensor noise should be rather consistent if the photos were taken with the same camera, pretty much like firing a handgun and the bullet gets unique marks.

Bingo - that's right on the money.

There are two aspects research aspects that I'm familiar with when I worked in this area in 2006-2007. The first was the identification of the make and model of the camera and the second was identifying if a specific camera took a specific image.

Here's a few relevant links:

Given a large sample of images from multiple cameras, I can produce an average noise pattern that exists on a given make and model. When provided with a single image, I can use this average noise pattern and the single image to, with high confidence, tell you the make and model of a given camera.

Given a sample of images from a single camera, I can compare a single image to the noise pattern from this sample of images and tell you if the camera that produced the large sample also produced the single image.

However, the algorithms and techniques to do this are patented. I believe US Patent 7,616,237 is relevant to your particular question. It cites the work of Jessica Fridrich, Miroslav Goljan, and Jan Lukas and also provides a number of research papers on the subject. Unfortunately, I'm not familiar with any publicly available software (commercial or otherwise) that implements this technique. The work that I was doing was on behalf of the US Department of Defense, who supported the research that went into this patent.

share|improve this answer
How is this affected by cameras with removable lenses? If I have two cameras and two lenses, and give you 1000 shots from each camera, but the lenses are swapped back and forth randomly, how accurate will the results be? (Assume the lenses are identical models, so focal length, distortion, etc, won't be dead give-aways) –  Flimzy Oct 31 '11 at 20:04
@Flimzy I don't believe it's significant. The noise pattern is produced by the electronics that sit behind the lense, the CCD or the CMOS sensor and all of the other components that carry charges. So even if you had random lenses of various focal length, distortion, and so on, the noise pattern that exists and is captured by the sensor in the n*m pixel output image should be similar, if not the same. –  Thomas Owens Nov 2 '11 at 13:04
Does this mean a dirty/scratched/defective lense won't affect this process? I suppose a lense would have to be very dirty or scratched to do more than just make a photo blury in most cases, anyway, eh? –  Flimzy Nov 2 '11 at 15:34
@Flimzy It has nothing to do with dirty or scratched lenses or blurry images. Everything occurs on the sensor-level. There are environmental factors which do cause differences in the noise pattern, which is why you need a fairly large data set to get the noise that's consistant across images. But you can have the most blurry, scratched, dirty lenses and still identify the camera, as long as the same sensors were used. –  Thomas Owens Nov 2 '11 at 16:20
Very interesting. Thanks for the informative post, and for humoring me and my questions :) –  Flimzy Nov 2 '11 at 16:23

In your situation, you pretty much cannot. Noise is not entirely random but has a random component to it. To isolate the fingerprint of the camera, you need to profile the camera over a series of shots. Having just two shots, there is not much you can do.

Some camera makers add a signature but that goes in the metadata, so if the EXIF was stripped then your are out of luck on that front. Plus, that is designed to determine if an image came from a camera, not which camera it came from.

share|improve this answer
Also if the images are compressed (as most are), I suspect the vast majority of any sensor and/or lens noise will be distorted beyond anything useful. –  Flimzy Oct 30 '11 at 1:48
As I understand it, the "sensor noise fingerprint" technique is surprisingly robust against compression and other lossy image edits. –  mattdm Oct 31 '11 at 3:02

If the sensor has hot pixels and these pixels are not removed from the photos, then you might identify the camera.

share|improve this answer
Same goes for sensor dust, if the sensor has not been cleaned between the shots. –  Imre Oct 30 '11 at 12:10

This is an interesting question. While I don't think its possible with 100% accuracy, you should be able to determine, with a sufficient number of source photos, from which type of camera it came from. This is given certain noise distributions, certain camera internal properties (which can be determined from just raw photo data), etc... But there is no known software that I know of to do this. Realistically speaking though at this point you should just consider it currently not possible.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.