product space with example images (and other
descriptors) rather than uniquely identifying a
specific product.
Our main contribution is to implement a practical
shopping solution that can be used for example
based search for a specific product in a large product
database. There are three major aspects in this work:
(a) selection of a suitable image feature that can
uniquely identify a product from a large collection
despite the undesired transformations of the query
image, (b) to achieve scalability by using a suitable
indexing scheme for the image feature and (c) to
devise a method to use these methods to create a
practical system. We have been constrained in
selecting the image feature and the indexing
methods by the fact that there are not many methods
that scale up to cope up with thousands of unique
products that may exist in a retail store.
The rest of the paper is organized as follows -
Section 2 provides the critical review of CBIR
methods towards present application. Section 3
describes the system in detail. Section 4 describes
some experimental results that establish robustness
and scalability of the system. Section 5 concludes
the paper.
2 A CRITICAL REVIEW OF CBIR
Shopping-by-Example is essentially a Content Based
Image Retrieval (CBIR) implementation. It searches
a product image database with a query image and
produces the best matching result. The technical
challenge in the system is to retrieve the desired
product image uniquely, even when a query image
suffers significant distortion. Another challenge is to
scale the solution for a large product database. To
address the first we have used PCA-SIFT (Ke &
Sukthankar, 2004) algorithm which is an advanced
version of Scale Invariant Feature Transform (SIFT)
(Lowe, 2004) algorithm. SIFT extracts a set of
distinctive image features that are invariant to
several distortions and can be used to perform robust
matching of images representing different views of
an object. But a drawback of SIFT features is that
huge number of keypoints are generated
corresponding to an image resulting in large storage
and computational overheads. PCA-SIFT remove
this deficiency by using Principal Component
Analysis (PCA) on keypoint descriptors. After
significant experimentation with SIFT, PCA-SIFT
and other image features, we have selected PCA-
SIFT as the feature descriptor to characterize the
distinctive product marks for their robustness against
image distortions, relatively compact representation
and reduced comparison time requirements. As retail
stores generally contain thousands of products, it is
not practical to compare a query image with all the
images in the product database to find the best
matching result. There are two distinct techniques to
ensure fast access to desired images in the database.
In one approach, the database can be clustered by
using some unsupervised learning mechanism, such
as k-means clustering (MacQueen, 1967) or DBScan
clustering (Ester et al, 1996). This approach works
well when there are natural well-separated clusters
in the data. The PCA-SIFT keypoints for the product
images used in our solution do not exhibit such
natural clustering behavior. The second approach,
involves indexing of multidimensional data. After
significant experimentation with different variants of
R-Tree (Guttman, 1984) and X-Tree (Berchtold et
al, 1996) algorithms, we have selected Oracle Java
R-Tree implementation (Oracle, 2007) for indexing
PCA-SIFT keypoints. A major advantage of this
memory resident implementation is very fast access
time.
3 SYSTEM DESCRIPTION
3.1 Creating Product Database
The traditional product parameters, such as the
name, product code, quantity and the price are stored
in a conventional relational database in Shopping-
By-Example system. In addition, we create an image
feature index of the product packages. This is done
in two steps.
Feature Extraction. At this step, we extract the
PCA-SIFT features of the images. The product
images which populate the product database can be
of different sizes. Selection of a proper image size
before feature extraction is necessary. Using too
large images result in unstable key points whereas
using too small images relevant key points are not
selected. We scale all product images to an optimal
size as an image pre-processing stage. Next, we
convert the images to gray-scale (PGM format) from
which PCA-SIFT features are extracted.
Index Construction. The PCA-SIFT feature of
every product in the database comprises several
keypoints, each of which is a high-dimensional
vector. We index each of these keypoints using
Oracle Java R-Tree implementation. Since all the
keypoints are pre-computed and known in advance,
we have bulk inserted them in the database. Bulk
SHOPPING BY EXAMPLE - A New Shopping Paradigm in Next Generation Retail Stores
49