Efficient visual search of local features Efficient visual search of local features Cordelia Schmid Cordelia Schmid
Visual search Visual search … change in viewing angle
Matches Matches 22 correct matches
Image search system for large datasets Image search system for large datasets Large image dataset (one million images or more) (one million images or more) query ranked image list Image search Image search system • Issues for very large databases • to reduce the query time q y • to reduce the storage requirements • with minimal loss in retrieval accuracy
Two strategies g 1. Efficient approximate nearest neighbour search on local feature descriptors feature descriptors. 2 Quantize descriptors into a “visual vocabulary” and use 2. Quantize descriptors into a “visual vocabulary” and use efficient techniques from text retrieval. (Bag of words representation) (Bag-of-words representation)
Strategy 1: Efficient approximate NN search Local features invariant descriptor descriptor vectors Images invariant d descriptor i t vectors 1. Compute local features in each image independently 2. Describe each feature by a descriptor vector 3. Find nearest neighbour vectors between query and database g q y 4. Rank matched images by number of (tentatively) corresponding regions 5. Verify top ranked images based on spatial consistency
Finding nearest neighbour vectors Establish correspondences between query image and images in the database by nearest neighbour matching on SIFT vectors 128D descriptor Model image Image database space Solve following problem for all feature vectors, , in the query image: S l f ll i bl f ll f t t i th i where, , are features from all the database images.
Quick look at the complexity of the NN-search N … images M … regions per image (~1000) D … dimension of the descriptor (~128) Exhaustive linear search: O(M NMD) Example: • Matching two images (N=1), each having 1000 SIFT descriptors Nearest neighbors search: 0 4 s (2 GHz CPU implemenation in C) Nearest neighbors search: 0.4 s (2 GHz CPU, implemenation in C) • Memory footprint: 1000 * 128 = 128kB / image # of images g CPU time Memory req. y q N = 1,000 … ~7min (~100MB) N = 10,000 … ~1h7min (~ 1GB) … N = 10 7 ~115 days (~ 1TB) … All images on Facebook: All images on Facebook: N = 10 10 … ~300 years (~ 1PB)
Nearest-neighbor matching ea est e g bo atc g S l Solve following problem for all feature vectors, x j , in the query image: f ll i bl f ll f t t i th i where x i are features in database images. Nearest-neighbour matching is the major computational bottleneck • Linear search performs dn operations for n features in the database and d dimensions d t b d d di i • No exact methods are faster than linear search for d>10 • Approximate methods can be much faster, but at the cost of A i t th d b h f t b t t th t f missing some correct matches. Failure rate gets worse for large datasets. g
K-d tree d t ee • K-d tree is a binary tree data structure for organizing a set of points • Each internal node is associated with an axis aligned hyper-plane E h i t l d i i t d ith i li d h l splitting its associated points into two sub-trees. • Dimensions with high variance are chosen first • Dimensions with high variance are chosen first. • Position of the splitting hyper-plane is chosen as the mean/median of the projected points – balanced tree. p j p l 1 4 6 6 l 1 l 1 l 3 l l 2 l 7 l 4 l 5 l 7 l 6 8 5 l 2 9 10 3 2 5 4 11 8 l 8 l 10 l 9 2 1 11 1 3 9 10 6 7
Large scale object/scene recognition Large scale object/scene recognition Image dataset: > 1 million images q query y ranked image list k d i li t Image search system • Each image described by approximately 2000 descriptors – 2 10 9 descriptors to index for one million images! 2 * 10 9 descriptors to index for one million images! • Database representation in RAM: Database representation in RAM: – Size of descriptors : 1 TB, search+memory intractable
Bag-of-features [Sivic&Zisserman’03] Bag of features [Sivic&Zisserman 03] Query Set of SIFT centroids image descriptors (visual words) sparse freq enc sparse frequency vector ector Harris-Hessian-Laplace Bag-of-features regions + SIFT descriptors processing + tf-idf weighting + tf idf weighting Inverted • • “visual words”: visual words : querying querying file – 1 “word” (index) per local descriptor p – only images ids in inverted file => 8 GB fits! Re-ranked Geometric ranked image g verification list short-list [Chum & al. 2007]
Indexing text with inverted files Indexing text with inverted files Document collection: Inverted file: Inverted file: Term List of hits (occurrences in documents) List of hits (occurrences in documents) Term People [d1:hit hit hit], [d4:hit hit] … Common Common [d1:hit hit], [d3: hit], [d4: hit hit hit] … [d1:hit hit] [d3: hit] [d4: hit hit hit] Sculpture [d2:hit], [d3: hit hit hit] … Need to map feature descriptors to “visual words”
Visual words Visual words •Example: each group of patches belongs to f t h b l t the same visual word Figure from S ivic & Zisserman, ICCV 2003 16 K. Grauman, B. Leibe
Inverted file index for images comprised of visual words List of image Word • numbers number • Score each image by the number of common visual words (tentative • Score each image by the number of common visual words (tentative correspondences) • Dot product between bag-of-features Dot product between bag of features • Fast for sparse vectors ! Image credit: A. Zisserman K. Grauman, B. Leibe
Visual words – approximate NN search Visual words approximate NN search • Map descriptors to words by quantizing the feature space Map descriptors to words by quantizing the feature space – Quantize via k-means clustering to obtain visual words – Assign descriptors to closest visual words Assign descriptors to closest visual words • Bag-of-features as approximate nearest neighbor search g pp g Descriptor matching with k -nearest neighbors Bag-of-features matching function where q(x) is a quantizer, i.e., assignment to a visual word and q( ) q , , g δ a,b is the Kronecker operator ( δ a,b =1 iff a=b)
Approximate nearest neighbor search evaluation Approximate nearest neighbor search evaluation •ANN algorithms usually returns a short-list of nearest neighbors – this short-list is supposed to contain the NN with high probability this short list is supposed to contain the NN with high probability – exact search may be performed to re-order this short-list •Proposed quality evaluation of ANN search: trade-off between – Accuracy : NN recall = probability that the NN is in this list against against – Ambiguity removal = proportion of vectors in the short-list - the lower this proportion, the more information we have about the vector t - the lower this proportion, the lower the complexity if we perform exact search on the short-list •ANN search algorithms usually have some parameters to handle this trade-off
ANN evaluation of bag-of-features ANN evaluation of bag of features •ANN algorithms returns a list of returns a list of 0.7 0 7 potential neighbors k=100 0.6 200 • Accuracy : NN recall 0.5 500 = probability that the ecall 1000 NN is in this list NN is in this list 0 4 0.4 NN re 2000 5000 • Ambiguity removal : 0.3 10000 = proportion of vectors 20000 30000 0.2 in the short-list 50000 0.1 •In BOF, this trade-off BOW is managed by the 0 1e 07 1e-07 1e-06 1e 06 1e-05 1e 05 0.0001 0 0001 0 001 0.001 0 01 0.01 0 1 0.1 number of clusters k number of clusters k rate of points retrieved
20K visual word: false matches
200K visual word: good matches missed
Problem with bag-of-features Problem with bag of features • • The intrinsic matching scheme performed by BOF is weak The intrinsic matching scheme performed by BOF is weak – for a “small” visual dictionary: too many false matches – for a “large” visual dictionary: many true matches are missed g y y • No good trade-off between “small” and “large” ! – either the Voronoi cells are too big – or these cells can’t absorb the descriptor noise intrinsic approximate nearest neighbor search of BOF is not intrinsic approximate nearest neighbor search of BOF is not sufficient – possible solutions soft assignment [Philbin et al. CVPR’08] additional short codes [Jegou et al. ECCV’08]
Hamming Embedding [Jegou et al ECCV’08] Hamming Embedding [Jegou et al. ECCV 08] Representation of a descriptor x – Vector-quantized to q(x) as in standard BOF + short binary vector b(x) for an additional localization in the Voronoi cell Two descriptors x and y match iif where h( a , b ) Hamming distance
Hamming Embedding Hamming Embedding •Nearest neighbors for Hamming distance those for Euclidean distance a metric in the embedded space reduces dimensionality curse effects a metric in the embedded space reduces dimensionality curse effects •Efficiency Effi i – Hamming distance = very few operations – Fewer random memory accesses: 3 x faster that BOF with same dictionary size! i !
Recommend
More recommend