I work with python and images of tables (taken from above). My aim is to take a photo of a random table and then find the most similar tables to it in my database. By most similar I mean tables of similar shape(square, rectangular, round, oval), texture, colour etc.
For now, I am just running a PCA and then a KNN on all the pixels of rgb images of tables to let my computer find the most similar ones among them. Obviously the k-nearest neighbours of a table image must be images with tables which are very similar to it. The images are common images of tables and are of 529x940 dimensions.
My final goal is to run this program with 2000 or even 4000 table images so I need a more efficient machine learning algorithm for my task than the PCA and the KNN.
Can you recommend me another more efficient machine learning algorithm for this task? Is Support Vector Machine significantly or Histogram of Gradient better for this task?