基於內容的圖像檢索
電商上的應用:找類似,找同款。
CBIR2個重點
CNPR,用卷積神經網絡學習出來一個分桶的編號。預先把圖像作一些分桶或者說把他先丟到空間不一樣的區域,而後檢索時只是找其中某個區域的圖片。
圖像特徵HOG
圖像特徵SIFT
圖像特徵GIST
找同款可使用這種,不須要使用複雜的神經網絡
最近領問題(NN)
K最近領算法(NN=>KNN)
以未知點爲圓心畫圓,他所屬的類別取決於圓內類別最多的點。你得先計算他們之間的相近度,每一個圖片抽取出來的feature和其餘圖片feature的相近度。
距離準則
假設Alexnet FC的結果是4096*1 double型向量,那麼那他去比對 計算量會很是大,因此會將它映射到一個的數例如:128/64bit維的10101數字串。
漢明距離算法
近似最近領
海量數據的狀況用KNN是不行的。如今項目上通常使用的是一整套的ANN
局部敏感度哈希表
LSH(Lshash庫)
直觀的理解就是用超平面對空間作一個劃分,畫完後落在同一區域的一些點 他們獲得的01串應該是同樣的,而臨近的點他們之間可能有一個維度的值不一樣。
超平面的優化方式這麼木有講!!超平面的劃分不必定合理,因此這個算法是犧牲一部分準確度來提升速度。網絡
怎麼樣去權衡準確度和速度?增長超平面能夠提升準確度,可是會形成在Nbit的範圍內落下來的點很是的少。另外一種方式是隨機的使用另一組超平面作劃分(不一樣的hash)。學習
N值是經過經驗和上下調整的方式獲得的。優化
使用3個哈希獲得各自類似的結果,將他們組合起來。具體和誰最類似,能夠採用其餘算法好比:距離算法求得。
聚類的方式分桶很慢!!3d
其他近似最近領算法
k-Means Tree:先聚類大範圍,在聚類小範圍。查找時也是先找落在那個大範圍內,再往細的找。
ANN庫
FLANN實際中使用效果會好。
如何讓CBIR系統更快?
讓神經網絡分桶,檢索的時候也是讓神經網絡計算圖片會落在那個桶裏,而後將該桶裏的圖片返回回來。 cdn
訓練的時候使用的Alexnet 全鏈接層是4096維