这篇论文是《Faster R-CNN Features for Instance Search》。发表在2016的CVPR Workshops 上。
论文源码:https://github.com/imatge-upc/retrieval-2016-deepvision
首先给出网络结构图:
输入图像之后,使用Conv5_3层的feature map。
将feature map输入RPN网络,提取出RPN Proposals。对应回feature map,将proposals经过RoI Pooling。
这里RoI Pooling的意义在于,之前提取到的proposals大小不一,不利于后面的全连接。
具体做法是:将每个proposal分块,比如都分成3*3大小。然后在每个块中取最大值,这样每个proposal都变成了3*3大小。,实现了尺寸上的统一。如图所示。
三个全连接层之后,得到proposals属于各个类别的得分。
接着给出一些论文给出的概念和定义:
1. 有关图像/区域描述
IPA(Image-wise pooling of activations):整张图的描述。做法类似R-MAC。如果feature map大小为W*H*K,其中每一层d(1<=d<=K)的W*H响应中取最大值/和。这样形成的1*K 的特征向量即为该张图的IPA。
RPA(Region-wise pooling of activations):RPN之后提取到的proposal的描述。做法类似R-MAC。
在IPA和RPA中,若取的是最大值,即为maxpooling;若取的是和,即为sumpooling。
2. Fine-tuning策略
使用待查询图像和它的翻转图像去微调网络参数。
Fine-tuning Strategy #1:只调整最后三个全连接层的网络参数。
Fine-tuning Strategy #2:调整从Conv_2之后的网络参数。
整个流程分为3步:Filtering Stage+Spatial Reranking+Query Expansion
1. Filtering Stage
对于待查询和数据库图像使用IPA,计算数据库图像与待查询相似的前N个图像。
2. Spatial Reranking
作者提出了两种重排方案:
(1)CA-SR (Class-Agnostic Spatial Reranking)
对第一步中找到的前N张图像提取RPN Proposals。
使用RPA与待查询的bounding box进行余弦相似性匹配。
取最大相似性得分的图像作为检索结果。
(2)CS-SR (Class-Specific Spatial Reranking)
对第一步中找到的前N张图像提取RPN Proposals。并得到proposals属于各类别的得分。
在微调过网络结构之后,此时已经得知了待查询图像属于的类别。所以可以直接在其所属的类别中,取属于该类分类得分最大的proposal作为检索结果。
3. Query Expansion
作者采用最普通的查询扩展做法。
第1步中检索到的前M个图像描述与待查询图像的描述取平均,生成一个新的待查询,再次进行检索。
实验
1. maxpooling和sumpooling
实验结果表明:对于IPA应采用sumpooling;对于RPA应采用maxpooling。
对于INS 13 而言,RPA-max可以得到更好的定位效果。所以也采用maxpooling,尽管mAP不是最高的。
2. CA-SR和QE
实验结果表明:CA-SR在大多数情况下可以提高准确率。
QE可以提高准确率。
3. Fine-tuning Strategy #1和Fine-tuning Strategy #2
实验表明:CS-SR+QE 的效果优于CA-SR+QE。
Fine-tuning Strategy #2让RPN对查询目标更敏感,所以得到的准确率更高。
Filtering Stage
Filtering Stage
Filtering Stage