perception provides flexible, well-documented, and comprehensively tested tooling for perceptual hashing research, development, and production use. It provides a common wrapper around existing, popular perceptual hashes (such as those implemented by ImageHash) along with tools to compare their performance and use them for common tasks.

Perceptual hashes are used to create compact image “fingerprints” which are invariant to small alterations to the original image. Typically, the representations are compact enough that they are irreversible, which makes them useful for deduplication and detecting abusive content while preserving the privacy of content owners.


You can install perception using pip. You must install OpenCV separately (e.g., with pip install opencv-python).

# Install from PyPi
pip install perception

# Install from GitHub
pip install git+

To install with the necessary dependencies for benchmarking, use:

# Install from PyPi
pip install perception[benchmarking]

# Install from GitHub
pip install opencv-python git+[benchmarking]

Getting Started

Please see the examples for code snippets for common use cases.