基于视觉关注度的图像情感分类算法

2023-11-21 01:59

本文主要是介绍基于视觉关注度的图像情感分类算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现有的图像情感分类算法,往往无差别地利用整幅图像的所有信息提取特征,而忽略了不同图像区域对最终情感分类的不同贡献。因此,提出基于视觉关注度的图像情感分类方法,该算法通过将视觉关注度引入到图像情感分类中,从而强调不同区域对图像情感分类的相对重要性,进一步提升了深度网络在图像情感分类上的表现。

1.视觉关注度概述

视觉关注度的目的在于记录人眼的移动,具体来说就是,当我们人眼感知到一幅画面的时候,我们会移动我们的眼睛,让我们的目光聚集到视野范围内的某一特殊区域,对其进行仔细地感知,从而获取更多的细节信息。
随着深度学习的发展,人们不再局限于直接使用显著性检测结果作为视觉关注度在预处理阶段处理图像,而是开始更多地考虑如何将视觉关注度概念直接融合到深度网络之中,根据具体的任务通过学习确定不同区域的相对重要性。

2.基于视觉关注度的图像情感分类算法

虽然视觉关注度与深度网络相结合,被广泛应用于多媒体与计算机视觉领域,但是却几乎没有相关工作被应用于图像情感分类之中。根据我们之前的分析,图像情感分类中,特征表达是其关键。恰当地在表达过程中引入视觉关注度概念,即强调不同区域对于分类的相对重要性,则是提升特征表征能力的方法之一。图展示了基于视觉关注度的图像情感分类的主要算法流程图,从图中可以看出,视觉关注度的估计是其中的重要内容之一。
 

 

2.1基于图像显著性的图像情感分类算法

 提出将图像显著性结果作为视觉关注度的估计,并将其用于对深度网络提取的局部特征的融合中,从而提升深度网络在图像情感分类上的表现。给出了具体的算法结构图,其中主要包含两个深度网络,分别用于图像区域特征的提取以及视觉关注度的估计,最终两者结合给出最终特征表达,用于图像情感分类。值得一提的是,两者可以完美融合成一个端到端的网络,因而,可以对整个网络进行联合训练。

 

2.2基于视觉关注度自学习的图像情感分类算法

从卷积神经网络中抽取卷积层的特征,作为图像的局部特征。采取了近些年来在多媒体与计算机视觉领域取得出色成绩的卷积神经网络模型VGGNET来作为我们图像特征抽取的基础模型。
搭建了一个多尺度的全卷积结构,该网络可以利用多尺度的特征图信息,来生成显著性图。如图所示,该多尺度的全卷积网络以16层VGGNET为基础,在其上面进行改进而来。具体来讲,原16层VGGNET中的全连接层,被转化成卷积核尺寸为1*1的卷积层。为了使得到的特征图更稠密,我们将池化层POOL4与POOL5的池化步长从2缩减为1来使得特征图有足够大的分辨率。此外,在VGGNET的基础上,输入图像以及前四个池化层,也就是POOL1、POOL2、POOL3、POOL4的后面,都分别连接了3个卷积层,这三个卷积层分别具有128个3*3的卷积核,128个1*1的卷积核,以及1个l*1的卷积核。而VGGNET最终的输出后面,则连接了1个具有1个1*1卷积核的卷积层。不难发现,受限于附加卷积层之前的特征图尺寸不同,以及附加卷积层本身结构的差异,最终附加卷积层输出得到的6个特征图具有不同的分辨率。为此,在附加卷积层最终的输出后面,我们加入了插值层,通过插值,使得它们输出的分辨率得到统一。最后,我们将6个相同分辨率的特征图堆叠在一起,通过一个具有1*1卷积核的卷积层,得到一个单通道的输出。值得一提的是,在此输出之后,一个Sigmoid激活函数以及一个Softmax激活函数作用其上,得到最终归一化的视觉关注度结果Si。具体来说,该模块是在专门用于图像显著性检测的数据集MASR-B上训练而来,在我们情感分类的网络中,其用于提供视觉关注度的估计值,而在整个图像情感网络训练时,其参数是固定不变的。
 

取到图像的特征图Fi,以及来自图像显著性图的视觉关注度图Si后,我们通过加权每个区域的特征得到最终的图像特征表示
 

然后,该特征表示被直接输入到一个带有Softmax激活函数的全连接层中进行图像情感分类。

总的来说,整个基于图像显著性的图像情感分析算法的训练流程如下:
输入:训练数据集{Ii},初始化深度网络参数\Theta以及学习率,以及设定最大的迭代次数T以及当前迭代次数t=1。
执行以下步骤,直到t>T:
1)从所有训练数据中采样,获取训练的batch。
2)通过网络计算区域特征图Fi。
3)通过网络计算图像显著性图作为视觉关注度分布Si。
4)结合Fi和Si;跟计算加权后的图像特征表示。
5)预测图像情感,并根据损失函数计算当前误差。
6)反向传播误差到每一层,并更新层中对应的参数。

2.2基于视觉关注度自学习的图像情感分类算法

基于图像显著性检测的视觉情感分类算法,取得了一定的效果,但是其仍存在一定的问题。图像显著性检测虽然一定程度上展示了不同区域的相对重要性,但是其表征相对重要性的权值分布并不一定完美适合于图像情感分类,也就是说,权值的相对大小,并不一定能够完全准确地体现出不同区域对于图像情感的相对重要性。基于这个原因,我们提出了基于视觉关注度自学习的图像情感分类算法,我们希望视觉关注度是图像情感分类网络中的一个通过有监督训练得到的模块,能够在图像情感预测中,根据所得的区域特征,自动生成对应的权重大小。

将图像显著性检测与视觉关注度自学习结合起来,也就是说,我们以图像显著性检测结果为基础,设计一个正则项,图像显著性通过作为一个先验知识,来指导视觉关注度的学习,从而可以得到一个更加合理的视觉关注度模型。图展示了带有基于图像显著性的正则项的视觉关注度自学习图像情感分类网络框架。

整个训练流程,可以表示如下:
输入:训练数据集认},初始化深度网络参数\Theta以及学习率,以及设定最大的迭代次数T以及当前迭代次数t=1。
执行以下步骤,直到t>T:
1)从所有训练数据中采样,获取训练的batch。
2)通过网络计算特征图Fi。
3)通过网络计算视觉关注度分布Ai。

4)结合Fi和Ai;跟次,计算加权后的图像特征表示。
5)预测图像情感,并根据公式计算Softmax loss。
6)生成图像显著性图Si,并结合Ai根据公式计算Euclidean loss。
7)计算总体误差,并反向传播误差到每一层,更新层中对应的参数。

 

这篇关于基于视觉关注度的图像情感分类算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399030

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系