什么是VLAD?
VLAD(Vector of locally aggregated descriptors,局部聚合向量)是一种类似于BOF(bag-of-feature)的描述图像的特征方法,可以理解是将局部特征表示成全局特征的编码方法。在这之前,BoF(词袋模型)通常用来描述基于Sift局部特征,在图像检索和分类中有着广泛的应用。相比于BoF,VLAD更加能够对图像的准确表达,得到更具有判别能力的特征,并且便于降维(PCA),同时降维对准确率的影响也较小。类似的方法还有,如FV(Fisher vector),这些传统的方法不具备可导性,因而无法进行反向传播,随着深度学习的普及逐渐被CNN所取代。
论文NetVLAD[a]
论文核心:文中提出一种卷积神经网络结构,可以实现端到端的识别。主要创新点是将传统的VLAD结构嵌入到CNN网络结构中去,得到一个新的VLAD层。NetVLAD可以很容易的运用到任何的CNN结构中,并且可以使用反向传播进行优化。
介绍
这篇文章主要针对地点识别问题来进行的研究。地点识别存在着一个很大的挑战是,在光照等其它因素影响下,即便是同一个地点图像之间的差异也是非常大。关键问题是如何找到这样一个具有代表性且具有区分性特征的表达。传统做法是将地点识别问题看作实例检索任务,使用具有不变性特征(SIFT)来表示每一个图像,然后将特征聚合成一个向量表示,这些向量通常对图像具有一定的代表和区分性,方法有BOW,VLAD,FV等。随着近些年卷积网络的不断发展,CNN对图像的表达能力已经非常可观并且有效。虽然CNN能够用在较大的数据集上,但是如果直接迁移使用CNN,那么它作为一个黑盒来提取图像特征,但很大程度上会限制示例级别(instance-level)上的识别任务。所以这篇文章主要抓的问题是:
如何定义一个好的网络结构
怎样获取足够多的标注数据
怎么训练来提升结构性能
第一,基于现有的神经网络架构,文章提出一个带有VLAD层的卷积神经网络模型 NetVLAD,它可以被加到任何的CNN结构中,并且可以使用BP算法优化。
第二,为了训练网络,收集了大量不同时间不同角度相同地点的全景图。通过这些数据进行训练是若监督学习,因为我们知道这些地点很接近,但是并不知道图像中的哪个部分决定了这两幅全景图是同一个地方。
第三,使用端到端的方式来学习模型参数,得到的描述特征对于视角和光照情况具有非常高的鲁棒性。 |