细粒度检索SCDA 详解
Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval
摘要
文中主要介绍了一种SCDA的无监督的检索方法,主要针对于细粒度检索任务。算法首先定位图片中主要的目标,这一步主要是摒弃背景或者其他噪音,保持主要的关注点。在当前的图像检索领域,SCDA取得了较好的结果。
简介
普通的图像检索主要是检索相似性,主要用内容,颜色以及形状进行检索。细粒度的检索主要检索同一类型的物体,比如动物中的同一物种,汽车之中的同一种类,细粒度检索面临的问题是,差别细微,但是姿态,旋转,大小变化很大。
使用与训练的模型,提取图像的卷积激活,SCDA方法能够决定有用的区域,这些区域可以量化成一个向量。
文中的主要贡献
- 文中提出一个简单有效方法来定位主要目标,不需要标签和bounding box。
- SCDA 不仅能够进行细粒度检索,对于一般的图像检索也能够有较好的效果
- 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 详解相关推荐
- NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解
人工智能时代,越来越多的企业正在应用AI技术开展智能化转型.其中,NLP技术拥有非常广泛的行业应用场景,包括信息检索.推荐.信息流.互联网金融.社交网络等.通过NLP技术的应用,可以支持情感分析系统对 ...
- 【Java】Lucene检索引擎详解
基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...
- hibernate教程--检索方式详解(hql,sql,QBC)
1.1 Hibernate的检索方式 1.1.1 Hibernate的检索方式: 检索方式:查询的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 * Customer custome ...
- Elasticsearch检索分类详解
Elasticsearch中当我们设置Mapping(分词器.字段类型)完毕后,就可以按照设定的方式导入数据. 有了数据后,我们就需要对数据进行检索操作.根据实际开发需要,往往我们需要支持包含但不限于 ...
- Elasticsearch 多语言及中文分词与检索详解
文章目录 1. 自然语言与查询 Recall 2. 混合多语言的挑战 3. 分词的挑战 4. 中文分词方法的演变 - 字典法 5. 中文分词方法的演变 - 基于统计法的机器学习算法 6. 中文分词器现 ...
- 商城项目16_es简介、详解倒排索引、安装es以及kibana、检索es基本信息、增删改查文档
文章目录 ①. es - 背景.概述.功能.场景 ②. 核心概念 - 索引.类型.文档.映射 ③. es - 详解倒排索引 ④. 安装elasticSearch.kibana 7.4.2 ⑤. 索引操 ...
- JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题
Hibernate的检索方式 Hibernate提供了以下几种检索对象的方式: 导航对象图检索方式:根据已经加载的对象导航到其他对象. OID检索方式:按照对象的OID来检索对象. HQL检索方式: ...
- SQL全方位攻略:5. SQL “方言”大比拼:Oracle、MySQL、PostgreSQL限制检索行数语法详解(分页查询)
系列文章目录 SQL全方位攻略:1.数据库介绍 SQL全方位攻略:2.SQL介绍 SQL全方位攻略:3.SQL标准 SQL全方位攻略:4. 标准SQL和SQL"方言" 文章目录 系 ...
- elasticsearch7.0.1-highlighter高亮检索详解
highlighter高亮检索详解 参考官网https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request ...
最新文章
- 在baidu上找到自己
- 解决 Python pip 安装报错:Retrying (Retry(total=4, connect=None, read=None ...)) after connection
- SAP云平台的trial账号不具备成员管理的功能
- centos 时间同步_ftp同步更新,ftp远程文件同步更新日志详情
- Java LineNumberReader reset()方法及示例
- Android图片的Base64编码与解码
- centos 对某ip开放 防火墙端口_CentOS操作系统防火墙Firewalld记录日志及用途
- 中山电子科技大学计算机学院分数线,电子科技大学中山学院
- 每一段感情结束后,是男方放下的快,还是女方放下的快?
- python 获取当前目录,上级目录,上上级目录,N级目录
- 3月2日 ESC CAN 比特率 波特率 带宽与容量 香农定理 奈奎斯特定理 信噪比
- COGS 2507. 零食店
- laravel 打包成zip并下载
- linux表示虚拟字符终端,终端,控制台,虚拟终端分别指什么
- c语言识别希腊字母吗,isalpha()
- 模拟Android微信APK底部的TabHost选项卡
- Linux下PDF转图片格式
- 2021中国科技大学计算机博士招生,中国科学技术大学2021年拟录取博士研究生名单公示,2661人!...
- 解决Windows10下java环境变量配置不生效的问题
- java区间并集_区间并集求解算法实现
热门文章
- OllyDbg的简单使用
- 哥德巴赫猜想c语言 思路,01-哥德巴赫猜想(Goldbach's Conjecture)--(C语言)
- 一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?
- IOS开发之证书共享(团队协同开发)
- 朴素贝叶斯算法:实现邮件分类
- Day2作业:购物商城
- C++类和对象(中)
- 24.Odoo产品分析 (三) – 人力资源板块(5) – 出勤(1)
- Web服务统一身份认证协议设计与实现
- ssm基于BS架构的校园爱心捐赠与物品交换平台的设计与实现毕业设计源码