Image Similarity Search

Just wanted to post some results of the image similarity search engine I have been working on. The first column represents the reference image and the subsequent columns represent the nearest matches from left to right. I can elaborate further on our call next week.

8 Likes

Hi, good work. I think there is a topic created specifically for this purpose: https://forums.fast.ai/t/share-your-work-here/27676/16

@maral Any chance you’ll be doing a blog post or writeup on this project? I was working on almost the exact same thing (image similarity for rooms/real estate images) for a hackathon two weeks ago. It looks like your model is performing much better than mine ended up, so I’d love to learn more about your approach.

Looking forward to it

@wdhorton If I can’t make something of it then I will write a detailed blog post :slight_smile: The trick is to use a pre-trained network, run images through it, take the weights from one or more layers, combine them and use that as a feature vector into an instance-based search algorithm. For the search I used approximate nearest neighbour but there are plenty of other options. It also helps to have a set of images where common features are visible across similar sized images. This is evident in the example I posted. Notice how in each row it found similar sized images. If these were not available I expect it would not do as well.

Hi, do you have a notebook explaining your approach? Based on my experience ResNet Layers tend to not be very specific. What architecture have you used?

No notebook at this time.

Resnet152 - use 2048 vector
Create two features.
Standard image and flipped image.
Take the average to produce one 2048 feature vector.
Compare with euclidean distance.

HI! Now some time is gone. Could you achieve further progress? Will you share your notebook in the future?