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

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

相关文章

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

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

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

dp算法练习题【8】

不同二叉搜索树 96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3输出:5 示例 2: 输入:n = 1输出:1 class Solution {public int numTrees(int n) {int[] dp = new int