Best image recognition API to implement for eCommerce Lifestyle/Sculpture site

I'm planning an eCommerce site currently. We are likely running WooCommerce and looking to implement Algolia for our search features. We feel that for our particular purposes, a visual search would be a crucial feature to implement, due to our product types.

For the purpose of my question, I will use the example of sculptures and ceramics, with various forms both abstract and utilitarian, textures, colors, and so forth.

The idea is a customer can upload a photo of their favorite plate to find a mug that matches, or a sculpture that will complement or contrast some other item, or simply a similar item from within our product catalog.

Algolia offers Image Recognition search based on customers' uploaded images. This feature requires a database owner to implement an external API to make the feature run. From what I know so far, I should be able to implement whichever software I want.

Some different APIs I have been reading up on:

  • Google Cloud Vision and AutoML
  • Amazon Rekognition
  • IBM Watson Visual Recognition
  • Microsoft Azure Cloud
  • Clarifai

After reading a few articles about the differences between them, it would seem that mostly they are set up to recognize a few different things really well:

  1. Facial recognition
  2. Fashion
  3. Food
  4. Landmarks
  5. Objects (coarse granular recognition i.e. this is a blue coffee mug)

I'm wondering if this could possibly work for our needs as well, which are deep details within a limited range of data sets:

  1. Form (coffee mug vs teacup vs rice bowl or human/animal figure vs some type of abstract form)
  2. Symmetry (symmetrical versus ... wonky, abstract, human/animal)
  3. Color types (primary color %, secondary color %, texture, mottling, half/half, gloss, illustration of flower or similar to such and such style)
  4. Size (for example if a US quarter is placed next to all objects and user uploaded object to match size)

These are just some examples. Basically I am wondering which API is best for these types of data sets because this is obviously not among already established use cases.

It would be terrific if any of the members here could help guide me to which API and implementation would be the best bet for my somewhat unique use case.

I realize I have some kinks to iron out here, and some gaps in my knowledge, but I'm posting here to learn so I pray for your patience if I have put my foot in my mouth in any way here.

Thank you so much.

Topic training image-recognition software-recommendation databases machine-learning

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.