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.

1 Like

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