VLAD演算法簡介

2021-08-21 19:11:39 字數 997 閱讀 4766

1.1  vlad基礎概念

vlad是vector of locally aggregated descriptors的簡稱,是由jegou et al.在2023年提出,其核心思想是aggregated(積聚),主要應用於影象檢索領域

1.2  相關方法優缺點

在深度學習時代之前,影象檢索領域以及分類主要使用的常規演算法有bow、fisher vector及vlad等。

bow方法的核心思想是提取出關鍵點描述子後利用聚類的方法訓練乙個碼本,隨後每幅中各描述子向量在碼本中各中心向量出現的次數來表示該,該方法的缺點是需要碼本較大;fv方法的核心思想是利用高斯混合模型(gmm),通過計算高斯混合模型中的均值、協方差等引數來表示每張影象。該方法的優點是準確度高,但缺點是計算量較大。

1.3 vlad演算法

vlad演算法可以看做是一種簡化的fv,其主要方法是通過聚類方法訓練乙個小的碼本,對於每幅影象中的特徵找到最近的碼本聚類中心,隨後所有特徵與聚類中心的差值做累加,得到乙個k*d的vlad矩陣,其中k是聚類中心個數,d是特徵維數(如sift是128維),隨後將該矩陣擴充套件為乙個(k*d)維的向量,並對其l2歸一化,所得到的向量即為vlad。關於該演算法為何有效,jegou et al.在2023年的期刊版本aggregating local image descriptors into compact codes中有著相關證明。

1.4  vlad演算法發展演變

2 vlad演算法流程

(1) 讀取檔案路徑及特徵提取

(2) 使用聚類方法訓練碼本

(3) 將每張的特徵與最近的聚類中心進行累加

*(4) 對累加後的vlad進行pca降維並對其歸一化

*(5) 得到vlad後,使用adc方法繼續降低儲存空間和提高搜尋速度

其中步驟4、5可選,在步驟3得到殘差累加向量後進行l2歸一化即可用歐氏距離等計算兩張的相似性從而實現檢索

乙個簡單的實現(基於sift特徵及orb特徵)請參考

vlad-orb-c++

vlad-sift-python

VLAD原理簡介

vlad即vector of locally aggregated descriptors,是一種影象的特徵表示方法,被廣泛應用在了影象檢索和影象分類領域。關於vlad的實現原理,其實就是構造vlad向量。在構造vlad向量之前,首先需要利用sift提取影象的特徵點。假設提取到的sift描述子數目為...

VLAD教程和資料 All about VLAD

正如標題所示,這裡將記錄vlad的一切。vlad本小子雖然也讀過幾篇這方面的 不過讀的時候一直理解的很粗糙。所以想藉此機會開個帖子,一方面驅動自己去加深對它的理解,另一方面把這些自己對它的理解記錄下來,方便自己查閱。在進行理論分析之前,先來看看vlad長個什麼樣子,這裡本小子分步展開vlad是怎麼得...

RSA演算法簡介

rsa演算法簡介 1 簡介 當前最著名 應用最廣泛的公鑰系統rsa是在1978年,由美國麻省理工學院 mit 的rivest shamir和adleman在題為 獲得數字簽名和公開鑰密碼系統的方法 的 中提出的。它是乙個基於數論的非對稱 公開鑰 密碼體制,是一種分組密碼體制。其名稱來自於三個發明者的...