![深度学习视频理解](https://wfqqreader-1252317822.image.myqcloud.com/cover/920/43737920/b_43737920.jpg)
3.2.1 VLAD
VLAD是一个经典的基于手工特征(Hand-engineered Feature)的特征汇合算法,配合SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)(Lowe,2004)特征,在深度学习复兴之前,在图像检索(Image Retrieval)领域取得了十分突出的效果。
VLAD的计算过程分为3步:首先对各帧图像特征进行聚类,然后根据聚类结果将每帧图像的特征
分配到不同的聚类中心去,最后用每个特征
到聚类中心的距离表示全局特征。下面进行具体说明。
(1)特征聚类。首先对每帧图像的特征进行聚类(例如进行
-means 聚类),将得到
个聚类中心
,每个聚类中心维度
和帧特征维度一致。令
表示
所属的聚类中心,假设帧特征
所属的聚类中心是
,那么
。
(2)特征分配。令分配系数为
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt003_35.jpg?sign=1738758855-MPV8OgnjeUMZHwqLpBoU5xqROAU9PldU-0-9ca71a7ea3bfcc23515f87c8e90082fd)
(3.2)
其中,是指示函数(Indicator Function),当其中的判断为真(True)时,函数值为1;判断为假(False)时,函数值为0。这里的特征分配是一种硬分配(Hard Assignment)策略,即当
属于第
个聚类中心时,
;否则,
。
(3)差值求和。VLAD的输出是一组特征,每个输出特征的维度
和帧特征维度一致,每个输出特征
对应一个聚类中心
。输出特征
定义为
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt003_46.jpg?sign=1738758855-Nl5LokSeqv9R5AEU3Q0JFp0Iwa38CecJ-0-d57fa1c9eaadec48bde11a7eb3ebb070)
(3.3)
式(3.3)首先找到属于聚类中心(即
)的特征
,之后计算帧特征
和聚类中心
的差值
,最后将所有属于聚类中心
的差值求和,得到输出特征
。VLAD的这种计算方式去除了帧图像本身的特征
,只保留了帧特征与聚类中心的差异
。最终将
个输出特征拼接在一起,得到最终的特征向量
![img](https://epubservercos.yuewen.com/E5C1AE/23020634309724506/epubprivate/OEBPS/Images/txt003_58.jpg?sign=1738758855-Rstu4MhXmEsUWYoCSHhGyhfPjOcmq5Ha-0-62c752ce66a7b6220634b2c38e1922bd)
(3.4)
最后,总结一下 VLAD 的参数量和输出特征维度。由于特征聚类、特征分配、差值求和都不涉及可学习的参数,VLAD的参数量为0。VLAD的输出特征是由一组特征
拼接而成的,其中
。因此,总的输出特征维度是
。