Image Fingerprinting System Using Perceptual Hash
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Overview
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Digital fingerprints are perceptual features of a multimedia object encoded in fixed size bits.
Perceptual Hash vs Cryptographic Hash
The system map an arbitrary length of information into a small and fixed size of bits. The resulting fingerprint then can be compared of similarity.
Procedures of the system
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568407/Process_flow2.png)
Existing images are indexed into signature hash and store as a key in database. Query image hash can be retrieved using hamming distance search with multi-index hashing.
Fingerprinting Process
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Process of fingerprint construction consists of the following stages:
An image is normalized by two step processes: downsampling and gray-scale transformation.
After the normalization, the DCT coefficient of the image is calculated to formulate a fingerprint block. The fingerprint block can be encoded into bits.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2579316/Process.png)
1.Downsampling
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
In order to reduce high frequency details of an image while preserving structural information of the image, the image is resize down to a 32 x 32 pixels lower resolution image
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568412/lenna.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568420/lenna_32_10x.jpg)
2.Greyscale transformation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
To transform the color based on RGB color model to a greyscale representation, the luminance channel of an image is calculated, which is given by
3.Discrete Cosine Transform
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
The discrete cosine transform, abbreviated (DCT) represents an image as a sum of sinusoids of varying frequency and magnitudes.
3.Discrete Cosine Transform
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568421/dct_energy.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568412/lenna.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
DCT Energy Compaction Property
Most of the visually significant information is concentrated in just a few lower coefficients of the DCT. For this reason, DCT is ideal to construct the digital fingerprint.
The property is also useful for image and audio lossy compression.
3.Discrete Cosine Transform
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568418/dct_32_10x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2580439/lenna_grey_32_10x.jpg)
4.Fingerprint Block Construction
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Truncate the DCT coefficient to 8 x 8
Compute average of Alternate Coefficient
Apply Binary threshold using the average value
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568416/dct_8_20x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568416/dct_8_20x.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568419/dct_bin.png)
4.Fingerprint Block Construction
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
5.Fingerprint Matching
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Images are considered as matched if the Hamming distance (Bit Errors) between the fingerprints is below a certain input threshold.
Experimental Results
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568415/abac5.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568414/abac3.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568423/fp_abac3.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568424/fp_abac5.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568422/bit_err.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
Experimental Results
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568412/lenna.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568413/lenna_compressed4.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568424/fp_abac5.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/414659/images/2568449/hash_logo.png)
PHASH
By nxxcxx
PHASH
- 393