pippy360 / transformationInvariantImageSearch

A reverse image search algorithm which performs 2D affine transformation-invariant partial image-matching in sublinear time
MIT License
290 stars 36 forks source link

New features #3

Open DonaldTsang opened 6 years ago

DonaldTsang commented 6 years ago

Is it possible to add colorspace affine transformations?
For example, making the whole image redder or greener,
or rotating the wheel so red => green => blue => red?

DonaldTsang commented 6 years ago

Possibly a comparison between this hash and https://github.com/dlau/mineye
Other Hashes papers include
https://github.com/jenssegers/imagehash (PHP with GMP)
https://github.com/kevinlin311tw/caffe-cvprw15 (CNN "perceptive" hash)

pippy360 commented 6 years ago

Is it possible to add colorspace affine transformations?

Possibly. I haven't done any work on this and off the top of my head I can't think of a way of doing it. My algorithm can be used together with other algorithms to handle colour shifts (So after the triangles have been transformed to equilateral triangles you can then run another algorithm to handle differences in colour shifts. like, for example, convert it to greyscale but that probably wouldn't be very effective). But I'm not sure how easy it would be to change my algorithm to handle colorspace affine transformations.

Thanks for the links, they're an interesting read.

Possibly a comparison between this hash and https://github.com/dlau/mineye https://github.com/kevinlin311tw/caffe-cvprw15 (CNN "perceptive" hash)

These projects looks really interesting. I always wanted to try computing SURF descriptors for the image. These methods would also handle non-affine transformations and 3d affine transformations which is a big improvement over my algorithm but I would need to run some tests to see if they out perform my algorithm for 2d-affine transformations. I won't be doing any comparisons for the foreseeable future, I'm too busy for the moment.

Other Hashes papers include https://github.com/jenssegers/imagehash (PHP with GMP)

This is using PHASH, which is the hashing algorithm I already use. I used this code here: https://github.com/opencv/opencv_contrib/blob/master/modules/img_hash/src/phash.cpp

DonaldTsang commented 6 years ago

@pippy360 I would wish that this software can deal with hue (from HSV) affine transformation.
There might be some other algorithms that could deal with that.
Surely, aHash, dHash and wHash are faster but less accurate.
I also hope that this image recognition algorithm could have a Python wrapper,
as a "friend of mine" has an image archiving tool that needs a good similar-image finder.
Link: https://github.com/hydrusnetwork/hydrus