The short answer
Yes, it is possible to match a photo to the discrete camera it was taken with (without metadata) and it is also pretty reliable. The technique is readily available in a few software products, one of those is Amped Authenticate, produced by Amped Software (disclaimer: I am the company CEO and Founder).
The basic idea
The basic idea is that every single device leaves a different “noise fingerprint” on each photo it produces. This component is called PRNU (Photo Response Non-Uniformity) and it has been widely studied in literature. It has been shown to be:
- constant over time
- constant over temperature
-independent of other camera settings (exposure, focus, etc…)
- fairly robust to recompression (up around JPEG quality 5-60%)
- fairly robust to intensity and color adjustments (contrast, brightness…)
- fairly robust to local modifications (i.e. if a part of the image has been tampered, - the picture as a whole is still recognized as coming from a specific camera)
However, it does not work properly in these situations:
- if the image has been cropped or has digital zoom, since it would take only a part of the sensor and not its whole area (this could be solved, but then it wouldn’t be robust to resize)
- for very strong enhancements
- for very dark or very bright images, since the noise is not present in these areas)
How does it work
To extract the PRNU of the image you need to basically extract a specific component of the noise. You can do it denoising the image and subtracting to it the original image. In literature it is recommended to use Wavelet filters, but even with simpler and faster filters you can get similar results.
Practically speaking the procedure is done in the following way:
You need to create the Camera Reference Pattern (CRP): this is done extracting the PRNU from some images of your test device. For the best results it is recommended to use about 30-50 pictures with as little detail as possible and not too dark or too white and make a pixel by pixel average. Let’s call these Reference Pictures. If you have the camera, you can take out of focus pictures of a wall or of the sky. If you don’t have the camera, you can take general pictures, but you’ll probably need more of them to filter out details with averaging.
Then you can extract the PRNU from the picture under analysis and calculate the correlation with the CRP. The higher the correlation, the higher the probability that the picture comes from the same camera.
You can automatically classify the pictures calculating a threshold for the correlation: pictures with a correlation higher than the threshold will have a high probability of coming from the camera, otherwise they probably come from a different device.
The threshold can be obtained calculating the correlation for:
- pictures coming from the same device (positive)
- pictures coming from another camera model (negative)
- pictures coming from another exemplar of the same camera model (negative)
In general it’s likely that the positive sets and the negative sets will not be perfectly separated, so you must set a desired balance between false positives and false negative that you want to obtain from case to case.
If used appropriately the method has been shown to be very reliable, even though it has been shown that it is possible to find two exemplars of the same model with very similar PRNU. This may happen, for example, if the sensor of the two devices was produced from the same silicon wafer. It’s a remote possibility, but still a possibility.
As an example, this image below is the PRNU extracted from an image without any significant content (out of focus picture of a wall).
The PRNU correlation can also be applied locally to detect tampering on the images.
The idea is to calculate the PRNU on a sliding window of n x n pixels across the image to create a map of correlation. Areas with low correlation will have a high probability of having been subject to tampering.
The image below represents an example of a picture being analyzed.
Below is the result of the block wise correlation of CRP with the PRNU extracted from the image. The white area represents the areas most likely to be tampered, where the noise is inconsistent. In the middle of the desk there is a clear sign of tampering.
In fact, this is the original picture, from where a gun has been removed.
There are countless papers which analyze the PRNU by different points of view, but these are probably the most important:
- J. Lukas, J. Fridrich and M. Goljan, "Digital Camera Identification from Sensor Noise ", IEEE Transactions on Information Security and Forensics, pp. 205-214, 2006.
- Mo Chen, J. Fridrich and M. Goljan , "Digital Imaging Sensor Identification (Further Study)", Proceedings. of SPIE Electronic Imaging, Security, Steganography and Watermarking of Multimedia Contents, pp. 0P-0Q, 2007.
The technology to distinguish pictures coming from different cameras, even if they are the same make and model, exists and is pretty established in the academic and forensic community. There are some software products available on the market which allow you to do it with relative ease and also evaluate the authenticity of the image with a similar process.