pyphashml
pyphashml copied to clipboard
image perceptual hash based on ML
trafficstars
Python package to compute image perceptual hashes. The perceptual hash is based on the mobilenetv2 tensorflow image classification model. It is condensed down to 32-bytes per image. Distance between two hashes gives some measure of image similarity, where distance(a,b) == 0 means idential images and similar images give lower distance.
Usage
Try it out
pip install pyphashml
Calculate perceptual hash for two images and calculate distance:
from pyphashml.phashml import phashmlctx
from pyphashml.phashml import phashml_distance
x = phashmlctx.image_hash("/path/to/imgfile.jpg")
y = phashmlctx.image_hash("/path/to/imgfile2.jpg")
d = phashmlctx.phashml_distance(x, y)
x,y are bitstring objects. d is an integer value >= 0.
Submit perceptual hashes for a directory of images to ImageScoutPro server
python -m pyphashml.imgscoutclient --dir /path/to/img/files --key mykey --host 127.0.0.1 --port 6379 --db 0
Compare two images by their perceptual hashes
python3 -m pyphashml.imgcmp /path/to/img/file.jpg /path/to/img/file2.jpg
Reqires
bitstring numpy tensorflow >=1.14,<2 redis (for the imgscoutclient command to submit to imgscout server)