現在Computer Vision中的Bag of words來表示圖像的特征描述也是很流行的。大體思想是這樣的,假設有5類圖像,每壹類中有10幅圖像,這樣首先對每壹幅圖像劃分成patch(可以是 剛性分割也可以是像SIFT基於關鍵點檢測的),這樣,每壹個圖像就由很多個patch表示,每壹個patch用壹個特征向量來表示,咱就假設用Sift 表示的,壹幅圖像可能會有成百上千個patch,每壹個patch特征向量的維數128。
接下來就要進行構建Bag of words模型了,假設Dictionary詞典的Size為100,即有100個詞。那麽咱們可以用K-means算法對所有的patch進行聚 類,k=100,我們知道,等k-means收斂時,我們也得到了每壹個cluster最後的質心,那麽這100個質心(維數128)就是詞典裏德100 個詞了,詞典構建完畢。
詞典構建完了怎麽用呢?是這樣的,先初始化壹個100個bin的初始值為0的直方圖h。每壹幅圖像不是有很多patch麽?我們就再次 計算這些patch和和每壹個質心的距離,看看每壹個patch離哪壹個質心最近,那麽直方圖h中相對應的bin就加1,然後計算完這幅圖像所有的 patches之後,就得到了壹個bin=100的直方圖,然後進行歸壹化,用這個100維德向量來表示這幅圖像。對所有圖像計算完成之後,就可以進行分 類聚類訓練預測之類的了。