User:Gb chongw/sandbox

''For those who look for the "bag of words model" in natural language processing (NLP) or information retrieval, please see bag of words model. From now, the "BoW" model refers to the BoW model in computer vision unless explicitly declared.''

This is an article introducing the "bag of words model" in computer vision, especially for object categorization.

Before introducing "bag of words model", the "bag of words model" in NLP is briefly reviewed. The bag of words model (BoW) in NLP is a popular method for representing documents, which ignores the word orders. For example, "a good book" and "book good a" are the same under this model. The BoW model allows a dictionary-based modeling, and each document looks like a "bag" (thus the order is not considered), which contains some words from the dictionary. Computer vision researchers uses a similar idea for image representation (Here an image may refer to an particular object, such as an image of a car). For example, an image can be treated as an document, and features extracted from the image are considered as the "words" (Usually some manipulations are needed, which are described below). The BoW representation serves as the basic element for further processing, such as object categorization.

Text Document Representation based on the BoW model
The text document representation based on the BoW model in NLP is reviewed first. Given two simple text documents: Based on these two text documents, a dictionary is constructed as: which has 10 distinct words. And using the indexes of the dictionary, each document is represented by a 10-entry vector: where each entry of the vectors refers to count of the corresponding entry in the dictionary (This is also the histogram representation). As we can see, this vector representation does not preserve the order of the words in the original sentences. This kind of representation has several successful applications, for example latent Dirichlet allocation.
 * John likes to watch movies. Mary likes too.
 * John also likes to watch football games.
 * dictionary={1:"John", 2:"likes", 3:"to", 4:"watch", 5:"movies", 6:"also", 7:"football", 8:"games", 9:"Mary", 10:"too"},
 * [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
 * [1, 1, 1, 1, 0, 1, 1, 1, 0, 0],

Image Representation based on the BoW model
Figure 1 shows the basic of idea of the BoW model. To represent an image using BoW model, an image can be treated as a document. Similarly, "words" in images need to be defined too. However, "word" in images is not off-the-shelf thing likes the words in text documents. To achieve this, which usually includes following three steps: feature detection, feature description and codebook generation. An definition of the BoW model can be the "histogram representation based on independent features".

Feature Detection
Given an image, feature detection is to extract several local patches (or regions), which are considered as candidates for basic elements, "words".

Regular Grid
Figure 2 is an example of regular grid method for feature detection. Regular grid is probably the most simple yet effective method for feature detection. In this method, the image is evenly segmented by some horizontal and vertical lines and some local patches are obtained. This method shows very promising results for natural scene categorization. The limitation of this method is that it uses little information of an image itself.

Interest Point Detector
Interest point detectors try to detect salient patches, such as edges, corners and blobs in an image. These salient patches are considered more important than other patches, such as the regions attracting human attentions, which might be more useful for object categorization. Some famous detectors are Harris corner detector, Lowe’s DoG (Difference of Gaussians) detector and Kadir Brady saliency detector. Figure 3 shows an result of Harris corner detector.

Other Methods
In addition, researchers also use random sampling and segmentation methods (such as Normalized Cut) for feature detection.

Feature Representation
After feature detection, each image is abstracted by several local patches. Feature representation methods deal with how to represent the patches as numerical vectors. These methods are called feature descriptors. A good descriptor should have the ability to handle intensity, rotation, scale and affine variations to some extent. One of the most famous descriptors is Scale-invariant feature transform (SIFT). SIFT converts each patch to 128-dimensional vector. After this step, each image is a collection of vectors of the same dimension (128 for SIFT), where the order of different vectors is of no importance.

Codebook Generation
The find step for the BoW model is to convert vector represented patches to "codewords" (analogy to words in text documents), which also produces a codebook. One simple method is performing K-means clustering over all the vectors. Codewords are then defined as the centers of the learned clusters. The number of the clusters is the codebook size (analogy to the size of the word dictionary).

Thus, each patch in an image is mapped to a certain codeword through the clustering process and the image can be represented by the histogram (see Figure 4) of the codewords. Figure 5 shows several examples of codewords mapped back to image patches.

Learning and Recognition based on the BoW model
Till now, an image is represented based on a BoW model. Computer vision researchers have developed several learning methods to leverage the BoW model for image related task, such as object categorization. These methods can roughly be divided into two categories, generative and discriminative models. For multiple categorization problem, the confusion matrix can be used as an evaluation metric.

Generative Models
Here are some notations for this section. Suppose the size of coodbook is $$V$$. Since the BoW model is an analogy to the BoW model in NLP, generative models developed in text domains can also be adapted in computer vision. Simple Naïve Bayes model and hierarchical Bayesian models are discussed.
 * $$w$$: each patch $$w$$ is a V-dimensional vector that has a single component that equals to one and all other components equal to zero (For K-means clustering setting, the single component equal one indicates the cluster that $$w$$ belongs to). The $$v$$th codeword in the codebook can be represented as $$w^v=1$$ and $$w^u = 0$$ for $$u\neq v$$.
 * $$\mathbf{w}$$: each image is represented by $$\mathbf{w}=[w_1, w_2, \cdots, w_N]$$, all the patches in an image.
 * $$d_j$$: the $$j$$th image in an image collection.
 * $$c$$: category of the image.
 * $$z$$: theme or topic of the patch.
 * $$\pi$$: mixture proportion.

Naïve Bayes
The simplest one is Naïve Bayes classifier. Using the language of graphical models, Naïve Bayes classifier is shown as Figure 6. The basic idea (or assumption) of this model is that each category has its own distribution over the codebook, which are assumed quite different. Take a face category and a car category for an example. The face category may emphasize the codewords which represent "nose", "eye" and "mouth", while the car category may emphasize the codewords which represent "wheel" and "corner". Given a collection training examples, the classifier learns different distributions for different categories. The categorization decision is made by
 * $$c^*=\arg \max_c p(c|\mathbf{w}) = \arg \max_c p(c)p(\mathbf{w}|c)=\arg \max_c p(c)\prod_{n=1}^Np(w_n|c)$$

Since Naïve Bayes classifier is simple yet effective, it is usually used as a baseline method for comparison.

Hierarchical Bayesian Models
The basic assumption of Naïve Bayes model does not hold sometimes. For example, a natural scene image (Figure 7) may contain several different themes. Probabilistic latent semantic analysis (pLSA) and latent Dirichlet allocation (LDA) are two popular topic models from text domains. Take LDA for an example. To model natural scene images using LDA, an analogy is made like this (Figure 9): This method shows very promising results in natural scene categorization on 13 Natural Scene Categories.
 * the image category is mapped to the document category;
 * the mixture proportion of themes maps the mixture proportion of topics;
 * the theme index is mapped to topic index;
 * the codeword is mapped to the word.

Discriminative Models
Since images are represented based on the BoW model, any discriminative model suitable for text document categorization can be tried, such as support vector machine (SVM) (better than Naïve Bayes) and AdaBoost. Kernel trick is also applicable when kernel based classifier is used, such as SVM.

Pyramid Match Kernel
Pyramid match kernel is a fast kernel function (satisfying Mercer's condition) which maps the BoW features to multi-resolution histograms. One of the advantages of the multi-resolution histograms is the ability to capture the co-occurring features. The pyramid match kernel builds the the multi-resolution histogram by binning data points into discrete regions of increasing larger size. Thus, points do not match at high resolutions have the chance to match at low resolutions (Figure 9). Pyramid match kernel performs approximate similarity match, without explicit search, and the computation time is only linear in the number of features. Compared with other kernel approaches, pyramid match kernel is much faster, yet provides competitively accurate results. Pyramid match kernel was applied to ETH-80 database and Caltech 101 database and showed promising results.

Limitations and recent Developments
One of notorious disadvantages of BoW is that it ignores the spatial relationships among the patches, which is very important in image representation. Researchers have proposed several methods to incorporate the spatial information. For feature level improvements, correlogram features can capture spatial co-occurrences of features. For generative models, relative positions of codewords are also taken into account. The hierarchical shape and appearance model for human action introduces a new part layer (Constellation model) between the mixture proportion and the BoW features, which captures the spatial relationships among parts in the layer. For discriminative models, spatial pyramid match performs pyramid matching by partitioning the image into increasingly fine sub-regions and compute histograms of local features inside each sub-region.

Furthermore, the BoW model has not been extensively tested yet for view point invariance and scale invariance, and the performance is unclear. Also the BoW model for object segmentation and localization is also lack of study.