The One-Shot Similarity Kernel

Published in IEEE International Conference on Computer Vision (ICCV), Kyoto, 2009

Recommended citation: Lior Wolf, Tal Hassner, and Yaniv Taigman. The One-Shot Similarity Kernel. IEEE International Conference on Computer Vision (ICCV), Kyoto, 2009.


The One-Shot similarity measure has recently been introduced in the context of face recognition where it was used to produce state-of-the-art results. Given two vectors, their One-Shot similarity score reflects the likelihood of each vector belonging in the same class as the other vector and not in a class defined by a fixed set of “negative” examples. The potential of this approach has thus far been largely unexplored. In this paper we analyze the One-Shot score and show that: (1) when using a version of LDA as the underlying classifier, this score is a Conditionally Positive Definite kernel and may be used within kernel-methods (e.g., SVM), (2) it can be efficiently computed, and (3) that it is effective as an underlying mechanism for image representation. We further demonstrate the effectiveness of the One-Shot similarity score in a number of applications including multiclass identification and descriptor generation.

Download paper here


Multiple One-Shots for Utilizing Class Label Information

Descriptor Based Methods in the Wild

MATLAB Code for the LDA Based One-Shot Similarity Measure

Below please find MATLAB code for computing the One-Shot Similarity score using LDA as an underlying classifier. Please report any bugs or problems to

Type “help oss_lda_sA_from_xsn” or “help oss_lda_score” for more information on each of these functions.

A typical usage would look something like this:

>> sA = oss_lda_sA_from_xsn(XSN);
>> Score1 = oss_lda_score(x1,x2,sA);
>> Score2 = oss_lda_score(x2,x1,sA);
>> Score = (Score1 + Score2)./2;

Score is then the symmetric One-Shot Similarity of the two vectors x1 and x2.



Copyright and disclaimer
Copyright 2009, Lior Wolf, Tal Hassner, and Yaniv Taigman