细粒度图像分类论文研读

news2024/11/16 18:02:35

细粒度图像分类论文研读

  • 摘要
  • Abstract
  • 1. 基于细粒度图像分类的视觉语义嵌入模型
    • 1.1 文献摘要
    • 1.2 创新点
    • 1.3 模型网络结构和方法
      • 1.3.1 问题陈述
      • 1.3.2 两级卷积神经网络
      • 1.3.3 局部化 CNN
      • 1.3.4 回归排序网络
      • 1.3.5 参数学习
    • 1.4 实验
      • 1.4.1 数据集
      • 1.4.2 实验设置
      • 1.4.3 分类结果对比
      • 1.4.4 模型分析
    • 1.5 结论
    • 1.6 思考
  • 总结

摘要

基于细粒度图像分类的视觉语义嵌入模型是一种深度学习架构,旨在将图像的视觉内容映射到一个高维的语义空间中,其中图像的语义特征被编码为向量表示。这种模型特别适用于细粒度图像分类任务,如不同品种的鸟类或花卉识别,它通过学习图像中的细节特征和全局上下文信息,能够捕捉到图像中微小但具有区分性的视觉差异。这些嵌入向量不仅能够反映图像的视觉属性,还能够表达图像的语义信息,从而使得模型在面对类别间相似性高的挑战时,仍能实现高精度的分类效果。本文将详细介绍基于细粒度图像分类的视觉语义嵌入模型

Abstract

A visual semantic embedding model based on fine-grained image classification is a deep learning architecture designed to map the visual content of an image into a high-dimensional semantic space, where the semantic features of the image are encoded as vector representations. This model is particularly suitable for fine-grained image classification tasks, such as bird or flower recognition of different species, where it is able to capture small but distinguishing visual differences in an image by learning detailed features and global contextual information in the image. These embedding vectors not only reflect the visual attributes of the image, but also express the semantic information of the image, thus enabling the model to achieve high accuracy in classification even when facing the challenge of high similarity between categories. In this paper, we will introduce the visual semantic embedding model based on fine-grained image classification in detail

文章出处:Fine-grained Image Classification by Visual-Semantic Embedding

1. 基于细粒度图像分类的视觉语义嵌入模型

1.1 文献摘要

细粒度图像分类(fine-grained image classification, FGIC),难点在于很大的类内多样性与微妙的类间不同点。现有的方法限制在利用图像中的视觉信息嵌入,本文使用了一些先验知识,来自于结构化知识基础或者非结构化的文本信息,来简化FGIC问题。建立了一个视觉语义嵌入模型来从知识基础和文本中探索语义嵌入,然后训练一个CNN线性的将图像特征映射到语义嵌入空间当中。

1.2 创新点

细粒度图像分离目标是子基础的类别中识别物体的子类别(例如辨识鸟的物种)。难点在于不同的类别之间相似度极高,而且同一类别的物体也会因为不同的动作、尺度等造成极高的不相似性。

此前的工作

  1. 学习可区分的视觉表示
  2. 尝试将物体的不同部分局部化

人类识别图像中的物体时,不仅仅关注视觉信息,而且会考虑通过经验或者物体的文字描述获取的先验信息,这样的外部先验信息有两种:

  1. 文本信息:文字上下文中图片的类别标签经常有严格定义的内部结构,标签经常和相关的信息一同出现
  2. 知识库信息:标签经常包含多种类型和特点,类之间的联系描述了它们之间的关系

此前的方法(将类别标签作为one-hot向量去评估)通常 假设类之间在统计学上是相互独立的,这就忽视了他们之间语义上的关联性。本文首先使用劳务一个视觉-语义嵌入框架来学习类别和图像之间的关系,即将图像特征空间投射到一个多类别的富语义嵌入空间,后者中外部先验知识被编码为类的嵌入向量。

1.3 模型网络结构和方法

下图为作者提出的 FGIC 两级卷积神经网络。 F A F_A FA旨在基于检测机制获取对象的局部特征,而 F B F_B FB则将图像的视觉特征线性映射到语义嵌入空间( F B F_B FB将每个图像嵌入到知识库嵌入空间中其对应标签的附近位置,并且文本嵌入空间)。
在这里插入图片描述

1.3.1 问题陈述

训练数据集 X = { ( x i , y i ) } ( i = 1 , 2 , . . . , m ) X=\left \{ (x_i,y_i) \right \}(i=1,2,...,m) X={(xi,yi)}(i=1,2,...,m),相应的细粒度标签集合 y = { y 1 , y 2 , y 3 , . . . , y c } y=\left \{ y_1,y_2,y_3,...,y_c \right \} y={y1,y2,y3,...,yc},需要学习一个函数映射 f : X ⟶ y f:X\longrightarrow y f:Xy,最小化实验损失(计算视觉输出以及真实class之间的差距)。给定一个输入图片 x x x,知识库嵌入 δ 1 ( y ) ∈ R k \delta_1(y)\in R^k δ1(y)Rk以及文本嵌入 δ 2 ( y ) ∈ R k \delta_2(y)\in R^k δ2(y)Rk,都是针对给定的真实class y yy 而言的。这样的模型目标最是最大化后验概率:
在这里插入图片描述
其中 θ \theta θ 就是学习参数。
针对 δ 1 ( y ) \delta_1(y) δ1(y) δ 2 ( y ) \delta_2(y) δ2(y),作者分别使用了 TransR 和 Word2Vec 模型。因此, δ 1 ( y ) \delta_1(y) δ1(y) δ 2 ( y ) \delta_2(y) δ2(y)是条件独立的,上式可以化简为:
在这里插入图片描述
考虑到视觉-语义嵌入框架,DeViSE 使用了成对的排序目标函数来直接的将图片映射到富语义嵌入空间中。SJE 使用兼容函数将图像的视觉嵌入和文本嵌入实现相互映射,训练了一个 two-step 模型。作者的不同之处在于:整合了多个领域的信息,并且训练了一个端到端的模型。

1.3.2 两级卷积神经网络

微妙、局部化的不同在区分子类别中是十分重要,这些不同经常出现在物体的不同部分和区域。 因此此前的一些工作使用了两阶段的框架:

  1. 借助于R-CNN框架,局部化物体或者其中的可区分性 parts
  2. 从划分的 parts 或者整个物体中抽取视觉特征

这里作者提到了 Bilinear CNN,它使用了两个基于CNN的特征提取模型,第一个强调物体的识别,第二个关注在空间位置,两个CNN提取器以平移不变的方式考虑成对相互作用,这特别适用于细粒度分类任务。

1.3.3 局部化 CNN

模型的第一层是训练一个局部化网络 ( F A ) (F_A) (FA),希望能够检测出物体的边界框。如果proposal是positive的,那么proposal区域的特征对物体的parts或者边界是敏感的。对于细粒度图像分割,一张图像中只有一个被认为是正样本的物体。因此,本文中使用原始图像作为正样本区域,输出就类似于RCNN。这样, F A F_A FA的目标就是:
在这里插入图片描述
其中边界框使用 ( x , y , h , w ) (x,y,h,w) (x,y,h,w) 表示。

1.3.4 回归排序网络

模型的第二层是一个回归排序网络 ( F B ) (F_B) (FB),希望能够得到图片物体的全局视觉特征,为了整合语义嵌入, F A F_A FA同时训练了两个平行的加入softmax的全连接层。全连接层将图像的视觉嵌入(deep CNN学到的)映射到类别的语义嵌入(TransR 或者 Word2Vec 学到的)当中。两个全连接层被称作 projection layer。使用 M 1 ∈ R d × k M_1\in R^{d\times k} M1Rd×k M 2 ∈ R d × k M_2\in R^{d\times k} M2Rd×k表示投影层的参数, v ∈ R d v\in R^{d} vRd是视觉嵌入,其中 d 是视觉嵌入的维度,k 是图片类别的嵌入向量的维度。训练是这个网络同时使用了余弦相似度和欧氏距离来衡量差异:
在这里插入图片描述

所以这里同时使用两种距离的原因是什么?作者好像也没有解释,倒是花了不小的篇幅解释距离的定义与计算。从含义来看欧氏距离要求是更加严格的,只有两个向量重合结果才是0,而余弦距离只关注到向量的夹角。在这里首先应该是要求两个向量完全重合的,然后通过余弦距离放大了夹角部分的效果,maybe。那么问题就在于:这样的映射空间中,嵌入向量的夹角究竟代表着什么

利用这个距离得到损失函数:
在这里插入图片描述
其中, y − y^- y 通过排序公式挑选出来:
在这里插入图片描述
作者所这样能够对小化positive class的距离同时最大化negative class的距离。

无论如何,作者这样的操作更加直接的将语义信息和图像的视觉信息取得了关联,而不是像前人做的——需要标注进行关联。从某种程度来讲这种脱离标注的建模方式不仅有利于挖掘信息,而且一旦设置一个好的评价方式,能够得到的有价值的参考是会大于标注得来的。但不得不提到的是,这样的网络应该是比较难以训练出理想效果的(因为从数据集到网络设置都要很小心地选择才行)

1.3.5 参数学习

将局部化网络的特征和回归排序网络的特征相乘(element-wise),最终的loss函数为:
在这里插入图片描述

两个网络最终的乘积看作是一种attention的操作,相当于使用对于 F A F_{A} FA中的特征根据 F B F_B FB中的结果进行加权。可以分类模型考虑边界框真的不会增大学习难度吗?可能是因为细粒度更需要聚焦网络关注点?

1.4 实验

1.4.1 数据集

本实验作者采用的数据集有:

  1. 鸟类数据集:Caltech-UCSD Bird-200-2011
  2. TransR训练集:DBpedia [Lehmann et al., 2015] (KB)
  3. Word2Vec训练集:English-language Wikipedia (text) from 06.01.2016

1.4.2 实验设置

  • 回归排序网络:AlexNet、GoogleNet、VGG
  • 图片尺寸:224*224
  • 局部化网络:AlexNet,边界框回归
  • mini-batch:40,lr=0.0015, α = 0.85 \alpha=0.85 α=0.85,每层卷积加BN,全连接层加dropout
  • F B F_B FB中的所有参数都是在ImageNet中训练然后在鸟类数据集上fine-tune的
  • 语义数据集中抽取出和鸟类数据集属性相关的部分进行fine-tune

1.4.3 分类结果对比

在这里插入图片描述
对比来看,前人考虑到边界框时似乎是考虑直接使用边界框,而作者使用的模型采用自己生成的边界框。our T-CNN中作者修改了 F A F_A FA,这里 F A F_A FA 只用来抽取特征。Ensemble T-CNN中作者使用了不同的基于CNN的结构。

起码可以证明这种视觉-语义特征时间的直接映射是有效的。我感觉只要保证映射的正确性,那么分类的准确性上升是可以保证的,但这种直接映射的方式是最佳选择吗?

1.4.4 模型分析

在这里插入图片描述
我们通过比较模型的不同变体来进行详细分析:(1)仅回归排名网络作为具有语义嵌入的FB; (2) 不使用边界框的两级CNN模型; (3) 我们在训练阶段带有边界框的完整两级 CNN 模型。 结果如表 2 所示。通过利用外部知识的语义嵌入,当使用最强大的特征提取器(AlexNet+ResNet)时,我们获得了最高结果 87.0%。 通过比较(1)和(2)的设置,我们证明了定位网络的有效性。 特别是,定位网络学习的特征是对我们的回归排名网络的关注信息。

1.5 结论

  • 文章有效地利用了语义信息来简化FGIC问题
  • 将结构化的KB信息与非结构化的文本信息统一处理,使得他们都能对提高分类准确性产生积极影响
  • 作者认为由于梯度传递带来的attention作用是有效的

1.6 思考

  • 作者这里使用的语义信息嵌入直接套用了前人的工作,从思路上来讲确实很有新意,但方法上来看基本没有什么改动——可以认为是拓展了原有模型的应用领域
  • 分析来看loss的传播应该是对 F A F_A FA有attention作用的,但缺乏验证
  • 作者其实也没有强调 直接映射 本身的作用,但似乎作者所最突出的处理方式就是“特征直接映射+边界框损失”,能不能有更好的方式实现特征之间的映射从而更有效地利用语义信息呢?
  • 值得关注的是人类识别机制分析。人类在识别一个物体时,缺失能有更多的有效信息供参考,这些知识来自于经验或者非视觉形式的信息,这也是当前视觉神经网络没能运用到的一个层面

总结

本周学习了基于细粒度图像分类的视觉语义嵌入模型,这种模型特别适用于细粒度图像分类任务,如不同品种的鸟类或花卉识别,它通过学习图像中的细节特征和全局上下文信息,能够捕捉到图像中微小但具有区分性的视觉差异。这些嵌入向量不仅能够反映图像的视觉属性,还能够表达图像的语义信息,从而使得模型在面对类别间相似性高的挑战时,仍能实现高精度的分类效果。下周我将继续阅读细粒度图像分类相关的文献,加油加油~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1643237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.SpringSecurity基本原理

SpringSecurity本质是一个过滤器链。十多个过滤器构成一个过滤器链。 这些过滤器在项目启动就会进行加载。每个过滤器执行放行操作才会执行下一个过滤器。 常见过滤器 FilterSecurityInterceptor 是一个方法级的权限过滤器,基本位于过滤器链的最底部。 Excepti…

图神经网络综述和学习路径

应用邻域 应用举例 应用层面(节点,连接,子图,全图) 概念区别 图神经网络本质上解决了表示学习的问题 可以把神经网络看作一个黑箱,图中的f函数 困难与挑战 现代的深度学习,如何把图输入到神经…

Qwik 和 Next.js 未来Web项目框架

Qwikover Next.js Qwik 是我进行 Web 项目开发的首选框架,而不是 Next.js 作为一名全栈工程师,我的前端之旅始于大约 10年前。从纯 JavaScript 和 jQuery 开始,然后转向了 KnockoutJS、AngularJS 和 GWT。React 出现, React 一直是…

IoTDB 入门教程 问题篇②——RPC远程连接IoTDB服务器失败

文章目录 一、前文二、发现问题三、分析问题四、检查6667端口是否监听所有IP五、检查ECS云服务器的安全组是否允许六、检查Linux防火墙是否允许 一、前文 IoTDB入门教程——导读 二、发现问题 使用本地IP127.0.0.1可以连接IoTDB服务器使用远程IPxx.xx.xx.xx却连接不到。提示你…

哥白尼高程Copernicus DEM下载(CSDN_20240505)

哥白尼数字高程模型(Copernicus DEM, COP-DEM)由欧洲航天局(European Space Agency, 简称ESA或欧空局)发布,全球范围免费提供30米和90米分辨率DEM。COP-DEM是数字表面模型(DSM),它表示地球表面(包括建筑物、基础设施和植被)的高程。COP-DEM是经过编辑的D…

java发送请求-http和https

http和https区别 1、http是网络传输超文本协议,client---- http------ server 2、httpshttpssl证书,让网络传输更安全 ,client---- httpssl------ server 3、ssl证书是需要客户端认可的,注意官方证书和jdk生成的证书的用户来使…

sql 中having和where区别

where 是用于筛选表中满足条件的行,不可以和聚类函数一起使用 having 是用于筛选满足条件的组 ,可与聚合函数一起使用 所以having语句中不能使用select中定义的名字

【设计模式】13、template 模板模式

文章目录 十三、template 模板模式13.1 ppl13.1.1 目录层级13.1.2 ppl_test.go13.1.3 ppl.go13.1.4 llm_ppl.go13.1.5 ocr_ppl.go 十三、template 模板模式 https://refactoringguru.cn/design-patterns/template-method 如果是一套标准流程, 但有多种实现, 可以用 template …

nodejs的ws+vue3编写聊天室的demo

nodejs编写ws服务是非常简单高效的,nodejs有众多的实现ws的库,如ws,SocketIO等,nodejs的事件线程是单线程的,所以不要在事件线程内做阻塞性的操作,耗时的操作交给工作线程或者子进程操作。 我使用nodejsvue3实现了写了…

安装vscode基础配置,es6基础语法,

https://code.visualstudio.com/ es6 定义变量 const声明常量(只读变量) // 1、声明之后不允许改变 const PI “3.1415926” PI 3 // TypeError: Assignment to constant variable. // 2、一但声明必须初始化,否则会报错 const MY_AGE /…

MySQL —— 表的基本操作

一、创建 1.语法 create table 表名称( 自定义变量1, 自定义变量2, 自定义变量3(最后一个变量末尾不需要加任何标点符号) )charset字符集 collate校验集 engine存储引擎; ps:若是不具体给字符集、校验集、储存引擎,则采用配置文件…

【网络安全产品】---应用防火墙(WAF)

what Web应用防火墙(Web Application Firewall) WAF可对网站或者App的业务流量进行恶意特征识别及防护,在对流量清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障…

计算机网络——Dijkstra路由算法

实验目的 实现基于 Dijkstra 算法的路由软件 实验内容 网络拓扑如图所示 实验过程 先编写开辟应该图的空间,然后给点映射数字,构建图。程序获取用户输入的学号,构建图中边的权值。接下来程序从用户输入获取最短路径的搜索起点&#xff0…

prometheus+grafana的安装与部署及优点

一、Prometheus 的优点 1、非常少的外部依赖,安装使用超简单; 2、已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等; 3、服务自动化发现; 4、直接集成到代码; 5、设计思想是按照分布式、微服…

QT Windows 实现调用Windows API获取ARP 表

简介 使用ping方式获取网络可访问或者存在的设备发现部分会无法ping通但实际网络上存在此设备, 但使用arp -a却可以显示出来, 所以现在使用windows API的方式获取arp 表。 实现 参考Windows提供的示例转化成Qt Qt .pro LIBS -liphlpapiLIBS -lws2_32…

分割链表

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; struct ListNode* partition(struct ListNode* head, int x){if(head NULL){return head;}//创建新链表ListNode* lessHead,*…

UE5(射线检测)学习笔记

这一篇会讲解射线检测点击事件、离开悬停、进入悬停事件的检测,以及关闭射线检测的事件,和射线检测蓝图的基础讲解。 创建一个简单的第三人称模板 创建一个射线检测的文件夹RadiationInspection,并且右键蓝图-场景组件-命名为BPC_Radiation…

用于密集预测任务的通道知识蒸馏——关键字:蒸馏

摘要 https://arxiv.org/pdf/2011.13256 知识蒸馏(KD)已被证明是训练紧凑密集预测模型的简单有效工具。通过从大型教师网络转移而来的额外监督来训练轻量级学生网络。大多数先前的针对密集预测任务的KD变体都在空间域中对学生网络和教师网络的激活图进行对齐,通常是通过在每…

pandas读取文件导致jupyter内核崩溃如何解决

读取execl文件出现以下问题: str_name "D:\\cao_use\\2017_2021(new).xlsx" train_df pd.read_excel(str_name, usecols[0])崩溃的指示图如下所示: bug原因:读入的文件太大,所需时间过长,在读取的过程中,使用中断按钮暂停会直…

C语言实战项目--贪吃蛇

贪吃蛇是久负盛名的游戏之一,它也和俄罗斯⽅块,扫雷等游戏位列经典游戏的行列。在编程语言的教学中,我们以贪吃蛇为例,从设计到代码实现来提升大家的编程能⼒和逻辑能⼒。 在本篇讲解中,我们会看到很多陌生的知识&…