图像检索文献总结(二)____更新中

接上文:https://blog.csdn.net/TTdreamloong/article/details/79216937

Bags of Local Convolutional Features for Scalable Instance Search 论文解读

1 Motivation

  • 当前的TRECVid 实例检索系统仍然使用基于聚合局部特征来实现,比如SIFT等,其中原因还是由于高维特征是稀疏的,容易线性可分
  • 时下卷积神经网络大热,而且在image retrieval 上取得不错的效果 

2 Contribution

  • 1 Sparse visual representation based on a Bags of Convolutional Features, which allows fast retrieval by means of an inverted index

  • Assignment map as a new compact representation of the image

  • Local analysis of multiple image regions for reranking followed by query expansion using the obtained object locations


3 Pipeline

图像检索文献总结(二)____更新中

图像特征的描述:

*输入一张图片,经过一个特定的CNN网络,得到某一卷积层响应的feature map,我们提出feature map中的Local CNN feature,并对其进行K-means 聚类,生成聚类中心;再把每一个local cnn feature 映射到聚类中心生成Assignment Map;最后使用BOW的思想统计聚类中心的词频,得到最终的图像特征描述。


4 Instance retrieval

4.1 Initial Search

  • 1 Global search(GS) :The BoW vector of the query is built with the visual words of all the local CNN features in the convolutional layer extracted for the query image.

  • 2 Local search(LS) :The BoW vector of the query contains only the visual words of the local CNN features that fall inside the query bounding box.

注: 
    所谓的GS,指对query处理时,使用整张query 图片的bow特征作为查询 
    所谓的LS,指对query 处理时,使用query图片中bounding box的bow特征作为查询

**初始检索时,首先使用query的BOW特征在数据库中做检索(数据库中的图片也使用pipeline中的BOW特征表示),是一种粗检索。**

4.2 Local reranking

    此论文采用W{W,W/2,W/4}W∈{W,W/2,W/4},H{H,H/2,H/4}H∈{H,H/2,H/4} 的宽高组合来划分区域。并对划分得到的区域进行筛选,筛选方法如下: 

scorew=min(ARw,ARq)max(ARw,ARq)scorew=min(ARw,ARq)max(ARw,ARq)

其中:ARq=WqHqARq=WqHq,ARw=WwHwARw=WwHw,当某窗口得分大于某一阈值时,保留此窗口

另外本文还借鉴Spatial pyramid matching 对保留的窗口进行划分,采用了L=2的分辨率leval,即整个窗口和4个窗口子区域。分别再统计每个子窗口的BOW特征,并对不同的子窗口的bow特征赋予不同的权重。权重函数直接采用Spatial pyramid matching论文中的权重函数:

wr=12(Llr)wr=12(L−lr)

其中:wrwr 指权重,L=2,l_r指当前子窗口的分辨率

空间金字塔匹配请参考:http://blog.csdn.net/chlele0105/article/details/16972695

得到窗口的BOW特征之后,和query特征计算余弦相似度,得分最高的窗口作为最终目标的定位。

4.3 Query expansion

  • 1 Global query expansion(GQE) 
    The BoW vectors of the N images at the top of the ranking are averaged together with the BoW of the query to form the new representation for the query. 

    图像检索文献总结(二)____更新中

GQE 指使用local rerank得到的前五张图片的全局特征与query特征做平均,重新生成query特征。

  • 2 Local query expansion(LQE) 
    Locations obtained in the local reranking step are used to mask out the background and build the BoW descriptor of only the region of interest of the N-top images in the ranking.

LQE 指使用local rerank得到的前五张图片中定位的局部特征(例如使用上图中红色框内的BOW特征)与query特征做平均,重新生成query特征。


5 Experiments


图像检索文献总结(二)____更新中 
R 表示local reranking 

图像检索文献总结(二)____更新中 
与state of art 相比

CNN Image Retrieval Learns from BoW:Unsupervised Fine-Tuning with Hard Examples

BoW:

Bag-of-words model, 将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本的每个词汇都是独立的。 
简单说就是将每个文档看成一个袋子,然后看每个袋子里装的都是些什么词汇,将其分类。通过统计文档中各个此出现的次数判断该文档在描述什么。例如,一个中如果猪、牛、马、羊、山谷、土地、拖拉机这样的词汇多,而银行、大厦、汽车、公园这样的词汇少,就可以断定该文档描述的乡村的场景,而不是城镇。 

简单说就是将每个文档看成一个袋子,然后看每个袋子里装的都是些什么词汇,将其分类。通过统计文档中各个此出现的次数判断该文档在描述什么。例如,一个中如果猪、牛、马、羊、山谷、土地、拖拉机这样的词汇多,而银行、大厦、汽车、公园这样的词汇少,就可以断定该文档描述的乡村的场景,而不是城镇。 

对于这样两句话:

John likes to watch movies. Mary likes too.   John also likes to watch football games.

构建出如下的字典:

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}

根据字典,可以由上述字典表示这两句话:

[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]  [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]

    BOW也可以应用在视觉领域的图像分类中,其基本思想就是将图像的特征看成一个特征集合,通过统计图像中特征出现的次数来对图像进行分类。这里以SIFT特征为例来理解如何利用BOW对图像进行分类。


Bow模型(解释的很好) – Hanson-jun

BOW模型理解

Bag-of-words model From Wikipedia


Fine-Tuning

把已经训练过的模型应用到新的数据集上。因为直观的认为CNN中靠近Input端的layer提取的是纹理色彩等基础特征,靠近Output的更为面向具体任务。所以认为可以将一个用数据集A(数据量大)的网络A的参数为初始参数,以数据集B(数据量小)作为train set继续训练来得到网络B。

更普遍的微调方法是:固定其他参数不变,a网络最后几层的参数重新训练,之后再用较小的学习率将网络整体训练。

caffe的fine-tuning是什么意思? - 知乎

深度学习之模型finetuning - CSDN博客

Caffe fine-tuning 微调网络 - 楼燚(yì)航的blog


Hard Example

利用第一次训练的分类器在负样本原图(肯定没有人体)上进行行人检测时所有检测到的矩形框,这些矩形框区域很明显都是误报,把这些误报的矩形框保存为图片,加入到初始的负样本集合中,重新进行SVM的训练,可显著减少误报。

用初次训练的SVM+HOG分类器在负样本原图上检测HardExample


图像检索遇到的挑战

1、视角和图片缩放的变化

2、光照的变化

3、severe occlusions严重的遮挡

4、视觉上相似但不同的物体

用BoW和CNN解决上述问题。

    问题1: BoW:affine co-variant local features, invariant descriptors

    问题2:BoW:color-normalized feature descriptors

    问题3:BoW:locality of the features, geometric verification

    问题4:BoW:discriminability of the features, geometric verification

    对这几个问题,CNN都可以用更多的training set来解决(废话),但因为很贵,所以才找别的办法。


使用现成的CNN:

目标是classification,用ImagNet上的图做数据集,结构模型用 AlexNet & VGG


CNN学习时,利用SfM information,同时学习Hard Negative Examples(与目标完全不匹配的样本)和Hard Postive Examples(与目标匹配的很好的样本),

网络机构和图像表示

文章重点关注用于classification的CNN,如AlexNet和VGG。使用Fully convolutional的网络架构,Fully Connected Layer 被舍弃,input为一张图片,output为一个3Dtensor X,为W*H*K维(K为上一层的feature map数)。Xk为feature map k的所有W*H 的所有**集合。网络的output由K个这样的**集合组成。预先训练好的网络构成用于卷积层的初始化。MAC层由每个feature map的所有维度的max-pooling构成,特征向量有每个feature map的最大**组成,维度数为K 。feature vector由每个feature map的最大** 组成,它的维度数为K。对于大多数网络为256或512d。 随后将MAC向量做l2-normalized ,并用inner product来评估图像的相似性。通过相应的mac分量的乘积来评测feature map对图像相似度的贡献。

卷积层的最后一层直接跟上来进行MAC计算的MAC层。MAC层的input是一个**的3D的tensor,output是一个非负向量。然后通过l2-normalized处理输出结果。

网络和siamese

采用siamese 网络结构,训练两个网络,共享同样的参数

Siamese Network理解(附代码)

白化和降维

利用3D投影提供的标记数据,用上linear discriminant projections。它分为whitening和rotation两部分。

训练集

BoW和3D重建

给定一个带的带label的图片集合,图像会被聚类,每个集群建立一个3D模型。对于每张图片,估计的相机位置和在3D模型中注册好的局部特征都已知,放弃可能有不同种子构建的冗余(重叠)的3D模型。重建同一个地标的不同且视点不相交的模型认为是不重叠的。

训练图像对的选择

1个3D模型被描述为1个二分可见图,通过相机和点的可见性关系定义了图的边缘。如果在图像i中点p为可见的,那就存在一条(i, p),的边。创建一个数据集的tuples,包括查询图片q,positive的图片集合m(q),和negative的图片集合N(q),这些tuples用来生成训练图片对,每个tuple对应  |N(q)|+ 1  个对。定义一个候选postive image的pool  m(q) ,他根据q的相机位置集合构建而来。由于摄像机方向的范围很广,因此它不一定描述相同的对象。

因此我们提出三个方向来对positive sample进行取样。在所有三种策略的整个培训过程中,positive sample都是固定的。

MAC distance:有最小MAC distance的图片选为positive

maximum inliers:和查询图片有最多共同观察的3D点的选为positive

relaxed inliers:从与查询图片有足够多共同观察点的,但并不展现出过于极端的缩放的一组图像中随机选positive,通过提高匹配难度保证匹配正确性。

Negative images:由于群集不重叠,因此从不同于查询图像的群集的群集中选择Negative images,选择hard negative(具有最相似descriptor的不匹配图)。


我们针对图像检索中的cnn进行了调整。训练数据从应用于大型无序照片集的自动化3D重建系统中选择。所提出的方法不需要任何手动注释,且在descriptor维度的很宽的一个范围里(16至512)的许多标准基准上优于现有技术的状态。


Training data, ne-tuned networks and evaluation code