<p>While I'm unsure whether it provides a better solution than any you've already implemented, TensorFlow, and deep learning in general, can indeed be used for this purpose. A neural network can be created which takes an image as input and outputs a numeric vector. The Euclidean distance between vectors can be used to determine the similarity between different images, an approach which has been applied effectively for facial recognition (see <a href="https://arxiv.org/abs/1503.03832" rel="nofollow noreferrer">this paper</a>).</p>

<p>For a starting point in implementing this solution using TensorFlow, see <a href="https://douglasduhaime.com/posts/identifying-similar-images-with-tensorflow.html" rel="nofollow noreferrer">this tutorial</a>.</p>
Tensorflow specific object detection
<p>I know this question is likely to be closed as "opinion based", but I could not find any resource online and every link pointed in asking on Stack Overflow, so please be patient.  </p>

<p>I'm trying to understand if Tensorflow is the right tool for object detection. I'm not talking about classification, but real object detection and recognition.<br>
My use case is the following: given image A (live photo), find the matching one inside a catalogue of thousand of different images.<br>
For example: live scanning of a supermarket product, find the matching one inside an high res catalogue of images. I'm not interested to know if the product is a shoe or a toothpaste, I want to know the "most matching" image (ie Prada model X or Colgate mint flavoured).  </p>

<p>I already have a working script developed few years ago with OpenCV, using SURF feature detection with FLANN, but I wanted to know if there's a better tool for the job.<br>
Can anyone point me in the right direction?</p>