基于场景文字知识挖掘的细粒度图像识别算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 摘要
  • Abstract
  • 文献阅读:基于场景文字知识挖掘的细粒度图像识别算法
    • 1、研究背景
    • 2、方法提出
      • 方法模块
    • 3、试验
    • 4、文章贡献
  • 二、RNN代码学习
    • 2.1、什么是RNN
    • 2.2、RNN的处理过程
    • 2.3、RNN简单代码实现
  • 总结


摘要

本周主要阅读了2022CVPR的文章,基于场景文字知识挖掘的细粒度图像识别算法,该论文提出了一种通过挖掘场景文本背后的语义来增强分类模型理解图像内容的方法,该方法利用场景文字作为关键词,到Wikipedia知识库中检索出相关的知识,并获取其特征表达,和图像视觉特征进行融合理解,而并非仅仅利用场景文字的表面语义信息,这种方法能够更好地理解文字语义并不非常直观的内容,从而提升图像识别的性能。除此之外,我还学习复习了RNN的相关知识,并通过其实现过程来进行代码的学习。

Abstract

This week, I mainly read the articles of 2022 CVPR. The fine-grained image recognition algorithm based on scene text knowledge mining proposed in the paper utilizes scene text as keywords to retrieve relevant knowledge from the Wikipedia knowledge base and obtain its feature representation. This method fuses the visual features of images and semantic information behind scene text, rather than just utilizing the superficial semantic information of scene text. This method can better understand the semantics of text that are not very intuitive, thereby improving the performance of image recognition. Besides, I also reviewed the relevant knowledge of RNN and learned code through its implementation process.


文献阅读:基于场景文字知识挖掘的细粒度图像识别算法

Title: Knowledge Mining with Scene Text for Fine-Grained Recognition
Author:Hao Wang, Junchao Liao,Tianheng Cheng, Zewen Gao, Hao Liu, Bo Ren, Xiang Bai, Wenyu Liu
From:2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

1、研究背景

文字是人类传达信息、知识和情感的重要载体,其蕴含了丰富的语义信息。利用文字的语义信息,可以更好地理解图像中的内容。和文档文本不同,场景文字具有稀疏性,通常以少许关键词的形式存在于自然环境中,通过稀疏的关键词,机器难以获取精准的语义。然而,人类能够较为充分地理解稀疏的场景文字,其原因在于,人类具有大量的外部知识库,能够通过知识库来弥补稀疏的场景文字所带来的语义损失。对于一些特定的细粒度的场景,挖掘场景文本背后丰富的语义信息能够进一步弥补场景文本的语义损失,从而更为准确地理解图像中的目标。

2、方法提出

文中提出了一种通过挖掘场景文本背后语义来增强分类模型理解图像内容的方法,该方法的核心是利用场景文字作为关键词,到wikipedia知识库中检索出相关的知识,并获取其特征表达,和图像视觉特征进行融合理解,而并非仅仅利用场景文字的表面语义信息。如下图所示,网络框架由视觉特征分支、知识提取分支和知识增强分支、视觉-知识注意力模块和分类器构成。算法输入包括3部分:图像,图像中包含的场景文本实例,外部知识库。其中场景文本实例通过已有的文字识别器从输入图像中获取,外部知识库采用了Wikipedia。知识提取分支提取场景文本实例背后的语义信息(知识特征),知识增强分支融合场景文本实例和挖掘出的知识特征。随后,视觉-知识注意力模块融合视觉和知识特征,并将其输入给分类器进行分类。
在这里插入图片描述

方法模块

基于场景文字知识挖掘的细粒度图像识别算法框架由视觉特征分支、知识提取分支和知识增强分支、视觉-知识注意力模块(VKAC)和分类器构成。

  • 知识提取分支:该分支由实体候选选择器和实体编码器构成。在知识库中,同一关键词能够表示多个实体,比如apple可表示fruit apple,也可表示company apple。实体候选选择器预先在大量语料库上统计单词在所有可能实体上的概率分布,根据概率分布选取前10个候选实体,并将其输入给实体编码器进行特征编码。实体编码器在Wikipedia的数据库上进行预训练,预训练任务旨在通过Wikipedia上实体的描述来预测该页面的标题(实体名称)。通过此任务的学习,实体名称对于的特征编码了该词条的上下文信息。
  • 知识增强特征分支:该分支主要由bert构成,在bert的第10层后插入知识注意力模块(KARC),该模块融合了文本实例特征和知识特征后,接着输入给bert剩余的层。Bert第12层输出的特征给VKAC模块。
  • 视觉-知识注意力模块:并非所有的场景文本或知识对理解图像有积极作用,为选取和图像内容相关的场景文本和知识来加强对图像的理解。该模块以图像全局特征作为访问特征,从增强的知识特征中选取相关的知识特征来加强视觉特征。其网络结构由注意力模型构成。

3、试验

试验收集了一个关于人群活动的数据集。该数据集中的类别主要分为游行示威和日常人群密集活动两大类,细分为21类。具体分类如下图所示,是21种人类行为。
在这里插入图片描述

  • 与SOTA对比:在公开数据集Con-Text、Bottles以及我们收集的Activity数据集上,在使用resnet50[3]和E2E-MLT[4]作为视觉特征提取器和文字提取器时,我们方法能在同等情况下取得最佳结果。当使用ViT和Google OCR时,其模型性能结果能进一步提升。
  • 视觉、文本、知识特征对识别的影响:可以看出,文本的表面语义(Glove,fastText)在视觉网络为Resne50[3]的时候,能对识别性能有较大提升。当视觉网络为ViT[2]时,提升极其有限。如图5所示,Resnet50关注于主要于视觉目标具有区分力的区域,而ViT能同时关注在视觉目标和场景文字上。因此,再使用场景文字的表语含义难以对ViT有较大促进作用。而挖掘文本的背后语义后,能进一步提升ViT作为视觉backbone的模型的性能。

4、文章贡献

  • 利用场景文本线索:传统的图像识别方法主要依赖于图像本身的视觉特征,如颜色、形状、纹理等。但这种方法在面对细粒度图像分类任务时,可能会遇到困难,因为细微的差异可能很难通过单纯的视觉特征来区分。而该算法利用了场景中的文本信息,为图像识别提供了额外的线索,从而提高了识别的准确性。
  • 融合视觉和知识特征:该算法不仅关注图像的视觉特征,还通过知识提取和增强分支,挖掘场景文本背后的语义信息,并将其与视觉特征融合。这种融合的方式有助于更全面地理解图像内容,进一步提高了识别的性能。
  • 弥补语义损失:在一些图像中,场景文本可能非常稀疏或者难以识别,这可能导致语义信息的损失。通过外部知识库的引入,该算法能够挖掘出这些稀疏文本背后的丰富语义,从而弥补了语义损失,使得识别更为准确。
  • 提高模型泛化能力:通过引入外部知识库,该算法不仅在训练数据上表现优秀,而且具有较强的泛化能力。这意味着该算法在面对未见过的图像或新的场景时,也能有较好的表现。
  • 促进人工智能与人类的结合:传统的图像识别方法主要依赖于机器学习和人工智能技术,而该算法则通过引入人类的知识和经验,使得图像识别更为准确。这种方法为人工智能与人类的结合提供了新的思路,有助于开发出更为智能、高效的图像识别系统。

二、RNN代码学习

2.1、什么是RNN

循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,用于处理序列数据。RNN的核心特点是具有记忆单元,能够捕捉序列数据中的长期依赖关系。在RNN中,神经网络单元按照时间序列连接,每个单元的输出作为下一个单元的输入,从而实现信息的循环传递。RNN的应用领域非常广泛,包括自然语言处理、语音识别、机器翻译、时间序列预测等。常见的RNN变种包括长短时记忆网络(LSTM)和门控循环单元(GRU),它们通过引入不同的机制来改善RNN的训练和性能。

2.2、RNN的处理过程

  1. 对数据集进行向量化表示,例如使用词向量或one-hot编码。
  2. 前向过程:定义一个输出向量,该网络由n个RNN模块组成。将向量化的数据与一个矩阵W1相乘得到输出out1,将上一个RNN模块的输出out与一个矩阵W2相乘得到out2,将out1与out2相加得到当前RNN模块的输出out3,给out3施加一个激活函数得到out4,out4即为当前RNN模块的输出。
  3. 反向传播:利用梯度下降法对所有的RNN模块的W1和W2进行更新。

2.3、RNN简单代码实现

class SimpleRNN(nn.Module):  def __init__(self, input_size, hidden_size, output_size):  super(SimpleRNN, self).__init__()  self.hidden_size = hidden_size  self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)  self.fc = nn.Linear(hidden_size, output_size)  def forward(self, x):  # 初始化隐藏状态  h0 = torch.zeros(1, x.size(0), self.hidden_size).to(x.device)   # 前向传播RNN  out, _ = self.rnn(x, h0)  # 获取最后一个时间步的输出  out = self.fc(out[:, -1, :])  return out

总结

本周主要阅读了2022CVPR的文章,基于场景文字知识挖掘的细粒度图像识别算法,该论文提出了一种通过挖掘场景文本背后的语义来增强分类模型理解图像内容的方法,该方法利用场景文字作为关键词,到Wikipedia知识库中检索出相关的知识,并获取其特征表达,和图像视觉特征进行融合理解,而并非仅仅利用场景文字的表面语义信息,这种方法能够更好地理解文字语义并不非常直观的内容,从而提升图像识别的性能。除此之外,我还学习复习了RNN的相关知识,并通过其实现过程来进行代码的学习。

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

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

相关文章

Mysql学习记录补充

索引 在无索引情况下,就需要从第一行开始扫描,一直扫描到最后一行,我们称之为 全表扫描,性能很低。 如果我们针对于这张表建立了索引,假设索引结构就是二叉树,那么也就意味着,会对age这个字段…

Linux|Grep 命令的 12 个实用示例

您是否曾经遇到过在文件中查找特定字符串或模式的任务,但不知道从哪里开始查找?那么,grep 命令可以拯救你! grep 是一个功能强大的文件模式搜索器,每个 Linux 发行版都配备了它。如果出于某种原因,它没有安…

【C++入门学习指南】:函数重载提升代码清晰度与灵活性

🎥 屿小夏 : 个人主页 🔥个人专栏 : C入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、函数重载1.1 函数重载的概念1.2 函数重载的作用1.3 C支持函数重载的原理1.4 扩展 &…

C++ STL库详解:容器适配器stack和queue的结构及功能

一、stack 1.1stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器&#xf…

图数据库(neo4j)在工业控制中的应用

图模型 事物的模型中,除了它自身的某些特征之外,还包括它与其它事物的关系特征,例如一个学生的属性包括姓名,性别,年龄等属性,同时,他还有许多关系属性,比如他属于哪一个院系&#x…

修改照片尺寸好用的工具,分享4款!

在数字时代,照片已成为我们生活的一部分,而如何调整照片尺寸以满足不同的需求,则显得至关重要。今天,我们就来探讨那些可以修改照片尺寸的工具,让你轻松应对各种尺寸需求。 茄子水印相机 这是一款功能强大、操作简单的…

MacBook有必要装清理软件吗?CleanMyMac X v4.14.6 直装特别版 附安装教程

MacBook是苹果公司的一款高端笔记本电脑,但是,随着使用时间的增长,MacBook也会出现一些问题,比如运行缓慢、卡顿、垃圾文件堆积、磁盘空间不足等。这些问题不仅影响了用户的使用体验,也可能对MacBook的寿命和安全性造成…

已经购买了阿里云服务器ECS,如何在上面部署幻兽帕鲁服务器?(一键安装非常简单)

很多人都知道阿里云可以支持一键购买并部署幻兽帕鲁服务器,不需要你进行任何配置,也不用你登录服务器,通过查看和管理计算巢面板就可以了,直接就可以开玩了。但是如果你已经有了一台阿里云服务器ECS那么该怎么去搭建幻兽帕鲁服务器…

Centos 内存和硬盘占用情况以及top作用

目录 只查看内存使用情况: 内存使用排序取前5个: 硬盘占用情况 定位占用空间最大目录 top查看cpu及内存使用信息 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&…

c++类继承

一、继承的规则 (1)基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如,当继承方式为protected时,那么基类成员在派生类中的访问权限最高也为protected,高于protected会降级为protected,但低…

通讯基本概念

通信的方式有多种,按数据传输方式可分为串行通讯和并行通信;按通信数据同步方式可分为同步通信和异步通信;按数据通信的方向可分为 一、串行通信和并行通信 串行通信:设备之间通过少量的数据信号线(一般是8根以下&am…

STM32 自学笔记 学习笔记 一

起源,A7,A9,M3,原来弄了A9的TQ2440,结果还得来重新熟悉下32函数JLINK使用SW方式,本来可以下载,但是一根线掉了重新上去,就出各种跟线无关问题,干脆把32断了重新接,结果就成功了&…

Linux权限【超详细】

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 扩展知识&#xff1a…

初识webpack(一)概念、入口配置、输出配置、loader等

目录 (一)概念 webpack的依赖图 (二)webpack的基本使用 (三)webpack的配置文件 1.入口(entry)配置 2.输出(output)配置 (三)loader 1.css文件处理 (1)安装css-loader和style-loader (2)在webpack.config.js中配置loader 2.less文件处理 3.postcss的使用 (1)安装…

深入理解K均值算法:Python中的应用与实践

目录 写在开头1. K均值算法基础1.1 什么是K均值算法?1.2 K均值算法的工作原理1.3 算法的优势与局限性 2. K均值算法的实现步骤2.1 初始聚类中心的选择方法2.1.1 随机选择初始中心点2.1.2 K均值算法 2.2 数据点与聚类中心的距离计算2.2.1 欧氏距离计算2.2.2 曼哈顿距…

MySQL-----约束

目录​​​​​ 约束 一 主键约束 1-1 操作-添加单列主键 1-2 操作-添加多列主键 1-3 修改表结构添加主键 1-4 删除主键约束 二 自增长约束 2-1 指定自增长字段的初始值 2-2 删除自增列 三 非空约束 3-1 创建非空约束 3-2 删除非空约束 四 唯一约束…

寒假作业2月4号

第三章 类与构造函数 一.选择题 1、下列不能作为类的成员的是(B) A. 自身类对象的指针 B. 自身类对象 C. 自身类对象的引用 D. 另一个类的对象 2、假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象&am…

SpringCloud + Nacos环境下抽取Feign独立模块并支持MultipartFile

文章目录 一、前提条件和背景1. 前提2. 背景 二、Feign模块1. 依赖引入2. application.yaml配置3. 扩展支持MultipartFile4. 将media-api注册到feign 三、Media模块四、Content模块1. 引入依赖2. 启用FeignClient3. 测试 五、需要澄清的几点 一、前提条件和背景 1. 前提 已经…

Axure RP9原型设计工具使用记录:实际应用及问题记录

Axure RP9使用记录二 📚第三章 实际应用📗快速归位00坐标📗动态菜单📗填充图片📗下拉框联动📗单选框📗全局变量 ⁉️问题记录❓问题一:菜单不显示❗解决方式:调整菜单元件…

深入Spring MVC的工作流程

深入Spring MVC的工作流程 在Spring MVC的面试问题中,常常被询问到的一个问题。Spring MVC的程序中,HTTP请求是如何从开始到结束被处理的。为了研究这个问题,我们将需要深入学习一下Spring MVC框架的核心过程和工作流程。 1. 启动请求生命周…