提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
本周主要阅读了2022CVPR的文章,基于场景文字知识挖掘的细粒度图像识别算法,该论文提出了一种通过挖掘场景文本背后的语义来增强分类模型理解图像内容的方法,该方法利用场景文字作为关键词,到Wikipedia知识库中检索出相关的知识,并获取其特征表达,和图像视觉特征进行融合理解,而并非仅仅利用场景文字的表面语义信息,这种方法能够更好地理解文字语义并不非常直观的内容,从而提升图像识别的性能。除此之外,我还学习复习了RNN的相关知识,并通过其实现过程来进行代码的学习。
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)
文字是人类传达信息、知识和情感的重要载体,其蕴含了丰富的语义信息。利用文字的语义信息,可以更好地理解图像中的内容。和文档文本不同,场景文字具有稀疏性,通常以少许关键词的形式存在于自然环境中,通过稀疏的关键词,机器难以获取精准的语义。然而,人类能够较为充分地理解稀疏的场景文字,其原因在于,人类具有大量的外部知识库,能够通过知识库来弥补稀疏的场景文字所带来的语义损失。对于一些特定的细粒度的场景,挖掘场景文本背后丰富的语义信息能够进一步弥补场景文本的语义损失,从而更为准确地理解图像中的目标。
文中提出了一种通过挖掘场景文本背后语义来增强分类模型理解图像内容的方法,该方法的核心是利用场景文字作为关键词,到wikipedia知识库中检索出相关的知识,并获取其特征表达,和图像视觉特征进行融合理解,而并非仅仅利用场景文字的表面语义信息。如下图所示,网络框架由视觉特征分支、知识提取分支和知识增强分支、视觉-知识注意力模块和分类器构成。算法输入包括3部分:图像,图像中包含的场景文本实例,外部知识库。其中场景文本实例通过已有的文字识别器从输入图像中获取,外部知识库采用了Wikipedia。知识提取分支提取场景文本实例背后的语义信息(知识特征),知识增强分支融合场景文本实例和挖掘出的知识特征。随后,视觉-知识注意力模块融合视觉和知识特征,并将其输入给分类器进行分类。
基于场景文字知识挖掘的细粒度图像识别算法框架由视觉特征分支、知识提取分支和知识增强分支、视觉-知识注意力模块(VKAC)和分类器构成。
试验收集了一个关于人群活动的数据集。该数据集中的类别主要分为游行示威和日常人群密集活动两大类,细分为21类。具体分类如下图所示,是21种人类行为。
循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,用于处理序列数据。RNN的核心特点是具有记忆单元,能够捕捉序列数据中的长期依赖关系。在RNN中,神经网络单元按照时间序列连接,每个单元的输出作为下一个单元的输入,从而实现信息的循环传递。RNN的应用领域非常广泛,包括自然语言处理、语音识别、机器翻译、时间序列预测等。常见的RNN变种包括长短时记忆网络(LSTM)和门控循环单元(GRU),它们通过引入不同的机制来改善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的相关知识,并通过其实现过程来进行代码的学习。