  Recognizing packaged grocery products based solely on appearance is still an
open issue for modern computer vision systems due to peculiar challenges.
Firstly, the number of different items to be recognized is huge (i.e., in the
order of thousands) and rapidly changing over time. Moreover, there exist a
significant domain shift between the images that should be recognized at test
time, taken in stores by cheap cameras, and those available for training,
usually just one or a few studio-quality images per product. We propose an
end-to-end architecture comprising a GAN to address the domain shift at
training time and a deep CNN trained on the samples generated by the GAN to
learn an embedding of product images that enforces a hierarchy between product
categories. At test time, we perform recognition by means of K-NN search
against a database consisting of just one reference image per product.
Experiments addressing recognition of products present in the training datasets
as well as different ones unseen at training time show that our approach
compares favourably to state-of-the-art methods on the grocery recognition task
and generalize fairly well to similar ones.
