# Place Recognition: An Overview of Vision Perspective
## 2 Traditional Image Descriptors  
### Local Image Descriptors  
Local feature descriptors, such as SIFT [3] and SURF [4], have been widely applied to visual-localization and place-recognition tasks. They achieve outstanding performance on viewpoint invariance. SIFT and SURF describe the local appearance of individual patches or key points within an image, for an image; \(\mathbf{X}=\left[\mathbf{x_{1}},\mathbf{x_{2}},...,\mathbf{x_{N}}\right]^{T}\) represents the set of local invariant features, in which \(\mathbf{x}_{i}\in\mathbf{R}^{d}\) is the ith local feature. The length of \(\mathbf{X}\) depends on the number of key points of the image. These local invariant features are then usually aggregated into a compact single vector for the entire image, using techniques such as bag-of-visual-words [7,8], Vector of Locally Aggregated Descriptors (VLAD) [19], and Fisher kernel [21,22]. Since local-feature extraction consists of two phases, detection and description, a number of variations and extensions of techniques for the two phases have been developed. For example, Reference [23] used the Features from Accelerated Segment Test (FAST) [24] to detect the interesting patches of an image that were then described by SIFT. Reference [25] used FAST as well during the detection phase, whereas they used Binary Robust Independent Elementary Features (BRIEF) [26] to describe the key points instead of SIFT. State-of-the-art visual simultaneous localization and mapping (SLAM) systems, such as FAB-MAP [27,28] used bag-of-visual-words to construct the final image representation. Each image may contain hundreds of local features, which is impractical in large-scale and real-time processing place-recognition tasks; moreover, they require an enormous amount of memory to store the high dimensional features. The bag-of-visual-words mimics the bag-of-words technique used in efficient text-retrieval fields. It typically needs to form a codebook \(\mathbf{C}=\left[\mathbf{c_{1}},\mathbf{c_{2}},...,\mathbf{c_{k}}\right]\) with \(\mathbf{K}\) visual words, and each visual word \(\mathbf{c}_{i}\in\mathbf{R}^{d}\) is a centroid of a cluster, usually gained by k-means [29]. Then, each local invariant feature \(\mathbf{x}_{i}\) is assigned to its nearest cluster centroid, i.e., the visual word. A histogram vector of the \(\mathbf{k}\) dimension containing the frequency of each visual word being assigned can be formed this way. The bag-of-visual-words model and local-image descriptors generally ignore the geometric structure of the image, that is, different orders of local invariant features in \(\mathbf{X}\) do not impact the histogram vector, thus, the resulting image representation is viewpoint-invariant. There are several variations on how to normalize the histogram vector, a common choice being \(\mathbf{L}_{2}\) normalization. Components of the vector are then weighted by inverse document frequency (IDF). However, the codebook is dataset-dependent and needs to be retrained if a robot moves into a new region it has never seen before. The lack of structural information of the image can also weaken the performance of the model. Fisher Kernel proposed by References [21,22] is a powerful tool in pattern classification, combining the strengths of generative models and discriminative classifiers. It defines a generative probability model \(\mathbf{p}\), which is the probability density function with parameter \(\lambda\). Then, one can characterize the set of local invariant features \(\mathbf{X}=\left[\mathbf{x_{1}},\mathbf{x_{2}},...,\mathbf{x_{N}}\right]^{T}\) with the following gradient:  
\[\
abla_{\lambda}\log\mathbf{p}(\mathbf{X}|\lambda) \tag{1}\]