Rank SIFT

Rank SIFT algorithm is the revised SIFT (Scale-invariant feature transform) algorithm which uses ranking techniques to improve the performance of the SIFT algorithm. In fact, ranking techniques can be used in key point localization or descriptor generation of the original SIFT algorithm.

Ranking the Key Point
Ranking techniques can be used to keep certain number of key points which are detected by SIFT detector.

Suppose $$\left \{ I_m, m=0,1,...M \right \}$$ is a training image sequence and $$p$$ is a key point obtained by SIFT detector. The following equation determines the rank of $$p$$ in the key point set. Larger value of $$R(p)$$ corresponds to the higher rank of $$p$$.

$$ R( p \in I_0)=\sum_m I(\min_{ q \in I_m}{\lVert H_m(p)-q \rVert}_2 < \epsilon), $$

where $$I(.)$$ is the indicator function, $$H_m$$ is the homography transformation from $$I_0$$ to $$I_m$$, and $$\epsilon$$ is the threshold.

Suppose $$x_i$$ is the feature descriptor of key point $$p_i$$ defined above. So $$x_i$$ can be labeled with the rank of $$p_i$$ in the feature vector space. Then the vector set $$X_{feature space}=\left \{ \vec x_1, \vec x_2,...\right \}$$ containing labeled elements can be used as a training set for the Ranking SVM problem.

The learning process can be represented as follows:

$$ \begin{array}{lcl} minimize: V(\vec w) = {1 \over 2} \vec w \cdot \vec w \\ s.t.\\ \begin{array}{lcl} \forall\ \vec x_i\ and\ \vec x_j \in X_{feature space},\\ \vec w^T(\vec x_i -\vec x_j)\geqq 1\quad if\ R(p_i \in I_0 )>R(p_j \in I_0). \end{array} \end{array} $$

The obtained optimal $$\vec w^*$$ can be used to order the future key points.

Ranking the Elements of Descriptor
Ranking techniques also can be used to generate the key point descriptor.

Suppose $$ {\vec X} = \left \{ x_1,...,x_N \right \} $$ is the feature vector of a key point and the elements of $$ {R} = \left \{r_1,...r_N \right \} $$ is the corresponding rank of $$x_i$$ in $$X$$. $$r_i$$ is defined as follows:

$$ r_i = \left\vert \left \{x_k:x_k \geqq x_i \right \} \right \vert .$$

After transforming original feature vector $$\vec X$$ to the ordinal descriptor $$\vec R$$, the difference between two ordinal descriptors can be evaluated in the following two measurements.

The Spearman correlation coefficient also refers to Spearman's rank correlation coefficient. For two ordinal descriptors $$\vec R$$ and $$\vec R^'$$, it can be proved that
 * The Spearman correlation coefficient

$$ \rho(\vec R, \vec R^') = 1- {6\sum_{i=1}^N(r_i-r_i^')^2 \over N(N^2-1)}$$

The Kendall's Tau also refers to Kendall tau rank correlation coefficient. In the above case, the Kendall's Tau between $$R$$ and $$R^'$$ is
 * The Kendall's Tau

$$\tau(\vec R, \vec R^')= {2\sum_{i=1}^N\sum_{j=i+1}^Ns(r_i-r_j, r_i^'-r_j^')\over N(N-1)},$$

$$ where \quad s(a,b) = \begin{cases} 1, & \text{if } sign(a) = sign(b) \\ -1, & o.w. \end{cases} $$