Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval

摘要

文中主要介绍了一种SCDA的无监督的检索方法,主要针对于细粒度检索任务。算法首先定位图片中主要的目标,这一步主要是摒弃背景或者其他噪音,保持主要的关注点。在当前的图像检索领域,SCDA取得了较好的结果。

简介

普通的图像检索主要是检索相似性,主要用内容,颜色以及形状进行检索。细粒度的检索主要检索同一类型的物体,比如动物中的同一物种,汽车之中的同一种类,细粒度检索面临的问题是,差别细微,但是姿态,旋转,大小变化很大。

使用与训练的模型,提取图像的卷积激活,SCDA方法能够决定有用的区域,这些区域可以量化成一个向量。

文中的主要贡献

  1. 文中提出一个简单有效方法来定位主要目标,不需要标签和bounding box。
  2. SCDA 不仅能够进行细粒度检索,对于一般的图像检索也能够有较好的效果
  3. SCDA的特征提取和视觉特性有很强的关联,这种关联优于对于深度激活。

相关工作

[26,  27, 28, 29, 30,32], 直接使用卷积网络将图像向量化,与之相反的我们的SCDA方法使用无监督的方法选择有用的信息域。

SCDA

Feature map代表通道卷积后的结果。Activations所有的feature map. Descriptor代表activations的d维向量。

给出一个图像I,大小H x W,经过卷积后产生w*h*d的feature map,然后我们将d维度作为,一个descriptor。于是我们就有了w*h的 descriptors。

选择卷积descriptors

SCDA与其他检索方法的区别在于,只是用预训练模型就能够挖掘深度卷积特征,这种特征能够有效的定位图像主要目标,所以本文的关键是descriptor的选择方法。

经过pool层,输入图片I使用一个三维的向量T进行表达,这是一种分布的表达,分布表达通过卷积编码获得,在深度学习中分布表达意味着不同形式表达间的内在联系,每一个concept 是神经网络激活的结果。每一个神经元参与多个concept的表达。

从512个feature maps 选择出一些,并将这些feature map覆盖到原始图片上,展示有意义的语义部分。有些展示的是目标对象,但是有些确实背景或者噪音。

同样的channel 的激活区域有些不一样,比如同一channel,第一张鸟图激活区域是尾巴,但是第二张图激活区域是头部。这样的话,选择出有用的descriptor是很有必要的。为了确定哪些descriptor是有用的,所以我们不能够只关注于单一的channel。

推荐算法

文中首先提出了一种评估质量和数量的方法,尽管单一的通道并没有用,但是当很多通道都在同一区域激活的话,那么这个区域是目标物体的概率较高。所以可以将所有channel相加。那么feature map 就h * w * d变成了h*w,被称为aggregation map

然后计算A 的平均值a那么就可以得到

其中I, j 代表不同的位置。

然后使用bicubic差值方法,将M resize成和原图相同大小。 然后将M覆盖到原图之上,会发现虽然激活区域以目标物体为主,但是依然有一些噪音和背景被激活,为了能够去除这些噪音和背景,文中又提出了算法1。

将M变成一个高度目标激活的M~,其中M~可以用一下方式表达

选择激活区域的质量评价如下,首先画出文中算法锁定区域所被包括的最小bounding box 并且在测试集合上评估这些预测的bounding boxes。

其中评价标准是,预测框与真实框IOU>50%的所占据的比例

聚合卷积Descriptors

经过对descriptor的选择

下面给出一些encoding和pooling的方法,之后介绍了本文的推荐方法。

VLAD方法,首先建立一个编码册,并使用聚类的方法,有k个知心

然后将xij 与最近的k个知心进行相减,得到

最后得到F等于

FV 算法,和VLAD算法类似,只不过取代k-means使用了混合高斯算法。

Pooling算法。上面这几种算法将descriptors变成了一个一维向量,然后进行匹配试验结果如下

其中avg&maxPool表示将maxPool和avgPool一起concat,得到匹配的特征向量。

多层聚合接口

如果按照卷积后最后一层进行得到Mrelu5_2,,发现pool5后的卷积要比relu5_2的紧密度更好,所以可以将Mpool5 和Mrelu5_2结合到一起,其中将Mpool5上采样到Mrelu5_2大小。其中结合的方法是,既存在Mrelu5_2中激活又存在Mpool5中激活这作为最后的relu5_2 descriptors。然后将relu5_2 SCDA feature以及pool5的concat成一个向量

其中alpha 是0.5, 其后面也会跟一个L2 normalization

最后使用向量压缩的方法,对SCDA_flib+ feature 进行压缩,

附件一

VLAD算法

核心思想是积聚思想,主要应用在图像检索领域。其主要方法是训练一个小的码本,对每幅图的特征找到,最近的码本聚类中心,然后将特征与聚类中心的差值做累加,得到一个K*d的vald矩阵,其中k是聚类中心的个数,d表示向量的维度。

细粒度检索SCDA 详解相关推荐

  1. ​NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解

    人工智能时代,越来越多的企业正在应用AI技术开展智能化转型.其中,NLP技术拥有非常广泛的行业应用场景,包括信息检索.推荐.信息流.互联网金融.社交网络等.通过NLP技术的应用,可以支持情感分析系统对 ...

  2. 【Java】Lucene检索引擎详解

    基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...

  3. hibernate教程--检索方式详解(hql,sql,QBC)

    1.1 Hibernate的检索方式 1.1.1 Hibernate的检索方式: 检索方式:查询的方式: 导航对象图检索方式:  根据已经加载的对象导航到其他对象 * Customer custome ...

  4. Elasticsearch检索分类详解

    Elasticsearch中当我们设置Mapping(分词器.字段类型)完毕后,就可以按照设定的方式导入数据. 有了数据后,我们就需要对数据进行检索操作.根据实际开发需要,往往我们需要支持包含但不限于 ...

  5. Elasticsearch 多语言及中文分词与检索详解

    文章目录 1. 自然语言与查询 Recall 2. 混合多语言的挑战 3. 分词的挑战 4. 中文分词方法的演变 - 字典法 5. 中文分词方法的演变 - 基于统计法的机器学习算法 6. 中文分词器现 ...

  6. 商城项目16_es简介、详解倒排索引、安装es以及kibana、检索es基本信息、增删改查文档

    文章目录 ①. es - 背景.概述.功能.场景 ②. 核心概念 - 索引.类型.文档.映射 ③. es - 详解倒排索引 ④. 安装elasticSearch.kibana 7.4.2 ⑤. 索引操 ...

  7. JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题

    Hibernate的检索方式  Hibernate提供了以下几种检索对象的方式: 导航对象图检索方式:根据已经加载的对象导航到其他对象. OID检索方式:按照对象的OID来检索对象. HQL检索方式: ...

  8. SQL全方位攻略:5. SQL “方言”大比拼:Oracle、MySQL、PostgreSQL限制检索行数语法详解(分页查询)

    系列文章目录 SQL全方位攻略:1.数据库介绍 SQL全方位攻略:2.SQL介绍 SQL全方位攻略:3.SQL标准 SQL全方位攻略:4. 标准SQL和SQL"方言" 文章目录 系 ...

  9. elasticsearch7.0.1-highlighter高亮检索详解

    highlighter高亮检索详解 参考官网https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request ...

最新文章

  1. 在baidu上找到自己
  2. 解决 Python pip 安装报错:Retrying (Retry(total=4, connect=None, read=None ...)) after connection
  3. SAP云平台的trial账号不具备成员管理的功能
  4. centos 时间同步_ftp同步更新,ftp远程文件同步更新日志详情
  5. Java LineNumberReader reset()方法及示例
  6. Android图片的Base64编码与解码
  7. centos 对某ip开放 防火墙端口_CentOS操作系统防火墙Firewalld记录日志及用途
  8. 中山电子科技大学计算机学院分数线,电子科技大学中山学院
  9. 每一段感情结束后,是男方放下的快,还是女方放下的快?
  10. python 获取当前目录,上级目录,上上级目录,N级目录
  11. 3月2日 ESC CAN 比特率 波特率 带宽与容量 香农定理 奈奎斯特定理 信噪比
  12. COGS 2507. 零食店
  13. laravel 打包成zip并下载
  14. linux表示虚拟字符终端,终端,控制台,虚拟终端分别指什么
  15. c语言识别希腊字母吗,isalpha()
  16. 模拟Android微信APK底部的TabHost选项卡
  17. Linux下PDF转图片格式
  18. 2021中国科技大学计算机博士招生,中国科学技术大学2021年拟录取博士研究生名单公示,2661人!...
  19. 解决Windows10下java环境变量配置不生效的问题
  20. java区间并集_区间并集求解算法实现

热门文章

  1. OllyDbg的简单使用
  2. 哥德巴赫猜想c语言 思路,01-哥德巴赫猜想(Goldbach's Conjecture)--(C语言)
  3. 一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?
  4. IOS开发之证书共享(团队协同开发)
  5. 朴素贝叶斯算法:实现邮件分类
  6. Day2作业:购物商城
  7. C++类和对象(中)
  8. 24.Odoo产品分析 (三) – 人力资源板块(5) – 出勤(1)
  9. Web服务统一身份认证协议设计与实现
  10. ssm基于BS架构的校园爱心捐赠与物品交换平台的设计与实现毕业设计源码