【深度学习】关于图像情感识别的探索(包括多模态)

这把我C 2021-05-19 16:25:40 7596

【深度学习】关于图像情感识别的探索(包括多模态)

文章目录
1 情感分类
    1.1 基于低端视觉特征的图像情感分类
    1.2 基于语义特征的图像情感分类
    1.3 基于深度学习的图像情感分类
1.4 数据集
2 用深度神经网络识别面部表情
3 多模态情感识别

1 情感分类

当前情感分类上,主要把情感分为两类或者八类:
在这里插入图片描述
图像情感分类方法从特征角度来看,主要可以划分为三个方向,即:基于低端视觉特征的图像情感分类方法、基于语义特征的图像情感分类方法以及基于深度学习的图像情感分类方法。

1.1 基于低端视觉特征的图像情感分类

低级的眼特征和脸部特征,很好理解。

1.2 基于语义特征的图像情感分类

基于语义特征的图像情感分类方法,主要试图建立图像情感与诸如物体、场景等语义之间的联系。Borth(2013)筛选了1200个形容词名词对,例如美丽的花、可爱的狗等,然后针对这1200个概念,在传统低端特征的基础上建立了一个分类器,因而可以用图像对这1200不同概念的响应,生成一个1200维的情感特征向量,进行图像情感分类。与此同时,Yuan(2013)则是建立一个关于102个场景的分类器,其将图像对102个场景的响应结合人脸特征,作为情感特征,从而进行情感分类。

1.3 基于深度学习的图像情感分类

基于深度学习的图像情感分类
基于深度学习的图像情感分类方法,主要试图通过深度学习的方法,让网络自动学习对情感分类最有帮助的特征,其特征是通过学习而来,而非人工设计。You(2015)设计了一个深度卷积神经网络进行图像情感分类,并且利用反馈的机制,滤除训练集中标注错误的数据,进一步提升了图像情感分类能力。Wang(2016)通过两路网络分别学习形容词性质的描述性词语以及名词性质的物体词语的特征表示,最终将两路特征结合起来用于图像情感分类。

1.4 数据集

常用数据集
IASP (International Affective Picture System)
IASPa
Abstract
GAPED (Geneva Affective Picture Database)
MART
devArt
Tweet
FlickrCC (Flickr creative common)
Flickr
Emotion6
FI (Flicker and Instagram)
Emotion6
IESN
FlickrLDL
TwitterLDL

2 用深度神经网络识别面部表情

情绪效价( Valence )和情绪唤醒(Arousal),是心理学专家用来评估人类情绪的专业术语。

其中,前者描述了一个人对于某事物的感兴趣或排斥的程度。后者是指一个人对外界刺激重新产生反应的程度,比如是微笑,大笑,狂笑,还是歇斯底里的笑。

在这里插入图片描述

fer2013数据集下载:
链接:https://pan.baidu.com/s/1QKpc5ZhXSBjeHRDas1vnng
提取码:0cbz

opencv中自带的人脸识别:
haarcascade_frontalface_alt.xml + haarcascade_frontalface_default.xml
链接:https://pan.baidu.com/s/1WneMWNXzr4KDU3pegKIX_w
提取码:21eu

分为3步:数据集的处理、模型的构建及训练、预测。
在这里插入图片描述

emotion:表示7个表情类别,0=angry,1=disgust,2=fear,3=happy,4=sad,5=surprise,6=normal
pixels:表示表情图片的像素点
usage:表示图片的用途,训练or验证or测试

根据第三列Usage将数据集分为训练集train、验证集val、测试集test三个csv文件。
将上述3个csv文件分别转换成灰度图,并按照emotion列的分类保存在7个文件夹里。

模型的构建及训练
1、模型结构:4层卷积层,3层池化层,3层全连接层;
2、激活函数1-6均采用relu(AlexNet中提出的):f(x)=max(0,x);激活函数7采用softmax进行分类;
3、优化算法使用SGD随机梯度下降算法
4、训练过程中,使用keras自带的ImageDataGenerator方法扩展数据集,实现数据增广,从而提高模型性能;
5、通过尝试后,批尺寸选为128,每次迭代步数为200,共迭代训练100次,能取得不错的效果;
模型结构如下图所示:

在这里插入图片描述
keras代码:

    def build_model(self):
        self.model = Sequential()

        self.model.add(Conv2D(32, (1, 1), strides=1, padding='same', input_shape=(img_size, img_size, 1)))
        self.model.add(Activation('relu'))

        self.model.add(Conv2D(32, (5, 5), padding='same'))
        self.model.add(Activation('relu'))
        self.model.add(MaxPooling2D(pool_size=(2, 2)))

        self.model.add(Conv2D(32, (3, 3), padding='same'))
        self.model.add(Activation('relu'))
        self.model.add(MaxPooling2D(pool_size=(2, 2)))

        self.model.add(Conv2D(64, (5, 5), padding='same'))
        self.model.add(Activation('relu'))
        self.model.add(MaxPooling2D(pool_size=(2, 2)))

        self.model.add(Flatten())

        self.model.add(Dense(2048))
        self.model.add(Activation('relu'))
        self.model.add(Dropout(0.5))

        self.model.add(Dense(1024))
        self.model.add(Activation('relu'))
        self.model.add(Dropout(0.5))

        self.model.add(Dense(num_classes))
        self.model.add(Activation('softmax'))
        self.model.summary()

在这里插入图片描述
在这里插入图片描述

也可以视频实时预测

模型在测试集准确率为76%,测试集和验证集上的预测结果大约都在66-67%,验证集的混淆矩阵如下所示:
在这里插入图片描述
看出,标签为1,即disgust的预测准确率很低,这应该是因为样disgust的数量太少的原因导致的

正确率并没有很高,大概是因为数据集的不均衡导致的;
后续思路:可以使用数据增广的方法,将每一种表情都扩展为一样的数量,进行训练;
网上有人说fer2013数据集的标签可能有一些错误

3 多模态情感识别

在这里插入图片描述
传统的基于视频图像的疲劳驾驶检测如下图:
在这里插入图片描述
多模态的情绪识别与疲劳驾驶检测

这种复杂的疲劳和情绪状态,多模态肯定是一个非常好的手段,因为你现在很难找到一个单一的信号能够对这个模型进行辨识。

一个是脑电信号,一个是眼动信号。大概在四年前提出了这个方案,为什么采用这两个模态而不是别的?因为刚才提到了脑电信号不管是神经科学还是医学类,它是最能直接反映人的情绪和状况,它是表现了我们人类内部的状况,眼动仪和追踪仪刚好是表明你的外部的状态,而且随着现在的技术发展,眼动仪追踪已经可以戴上眼镜了。最近韩国一个公司可以把眼动仪集成到一个非常好穿戴设备。

有了这样的两个模态,我们看看能否对情绪识别起到帮助。刚才说到了实际上这两个信息有个互补的特性,脑电信号反映了神经的内部,眼动刚好是外部的潜意识行为,当然也可以追加其他的一些模态的情况。
南大老师最近要求我分析一下论文,对网安很小白的我,决定分析下单眼情绪识别这篇文章,但是硬件很头疼,总结一下全脸的情绪识别部分(不是单眼哦),就到这啦。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 92 6 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
这把我C
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区