⌈ 传知代码 ⌋ 改进表情识别

news2024/9/23 23:28:42

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 原始网络不足之处
  • 🍞三.改进点
  • 🍞四.核心代码
  • 🍞五.结果展示
  • 🫓总结


💡本章重点

  • 改进表情识别

🍞一. 概述

表情识别在计算机视觉和人机交互中具有广泛的应用前景。基于深度学习的表情识别系统可以帮助识别和分析人脸上的情绪状态,应用于智能安防、情感计算和社交机器人等领域。本文将介绍我们基于改进的MobileNetV3模型进行表情识别的工作。通过引入CBAM注意力机制和GELU激活函数,我们有效地提升了模型的性能和准确度。

数据展示及介绍

RAF-DB(Real-world Affective Faces Database)是一个广泛应用于表情识别研究的数据集。该数据集由英属哥伦比亚大学的研究人员构建,旨在为表情识别和情感计算领域提供一个高质量且具有挑战性的资源。RAF-DB数据集包含了大量的真实世界人脸图像,涵盖了各种不同的表情、年龄、性别和种族等多种多样的情况。

数据集特点

  1. 真实世界数据:RAF-DB中的图像来自互联网上的各种来源,包括社交媒体、新闻网站和在线视频。这些图像反映了现实生活中的多样性和复杂性,比实验室环境下拍摄的标准化数据更具有挑战性。
  2. 丰富的标注:每张图像都经过专业的情感分析师标注,确保标注的准确性和一致性。图像被标注为不同的情感类别,并且还附有相应的置信度评分。
  3. 多种情感类别:RAF-DB包含了7种基本表情类别,涵盖了人类情感表达的主要类型,便于研究者进行全面的表情识别研究。

数据集结构

RF-DB数据集包含29,672张人脸图像,这些图像被分为训练集和测试集。数据集中的每张图像都被标注为7种基本表情之一。具体的表情类别及其对应的编号如下:

  1. 愤怒(Angry):表现为眉头紧皱、眼睛睁大、嘴角下拉等特征。
  2. 厌恶(Disgust):表现为皱眉、鼻子翘起、嘴唇微微闭合或张开等特征。
  3. 恐惧(Fear):表现为眉毛上扬、眼睛睁大、嘴巴张开等特征。
  4. 高兴(Happy):表现为嘴角上扬、眼睛眯起、面部放松等特征。
  5. 伤心(Sad):表现为眉头下压、眼神忧郁、嘴角下拉等特征。
  6. 惊讶(Surprise):表现为眉毛抬起、眼睛睁大、嘴巴张开等特征。
  7. 中性(Neutral):表现为面部放松,无明显情感特征。

数据集应用

RAF-DB数据集在表情识别、情感计算、人机交互等研究领域有着广泛的应用。研究人员可以利用该数据集训练和测试各种深度学习模型,以提高模型在复杂环境下的表情识别准确度。此外,RAF-DB还可以用于研究跨文化情感表达的差异、情感识别算法的鲁棒性等课题。

数据集优势

  1. 多样性:图像来自不同年龄、性别、种族和背景的人,具有高度的多样性和代表性。
  2. 真实性:图像来自真实世界的场景,反映了现实生活中的复杂情感表达。
  3. 高质量标注:专业情感分析师对图像进行了准确和一致的标注,为研究提供了可靠的数据基础。

通过对RAF-DB数据集的利用和研究,表情识别领域的研究人员可以开发出更为先进和准确的模型,从而推动情感计算和人机交互技术的发展。

在这里插入图片描述


🍞二. 原始网络不足之处

MobileNetV3是一种轻量级的卷积神经网络架构,以其高效的计算性能和较小的模型大小而受到广泛关注。然而,在复杂的表情识别任务中,原始的MobileNetV3仍然存在一些显著的问题。

首先,MobileNetV3设计初衷是为了在移动设备和嵌入式系统上运行,因此它在追求轻量化的同时,对特征提取的能力有所折中。在表情识别中,需要对面部的细微变化进行准确捕捉,这对特征提取的能力提出了更高的要求。MobileNetV3中的深度可分离卷积虽然减少了计算量,但在捕捉局部细节特征方面存在不足,可能会影响到模型的准确性。

其次,原始的MobileNetV3使用了ReLU(Rectified Linear Unit)激活函数。ReLU是一种常用的激活函数,具有计算简单和收敛速度快的优点。然而,ReLU在输入为负值时直接输出零,可能会导致特征信息的丢失,特别是在处理具有微小变化的表情时,这种信息丢失会对识别效果产生负面影响。此外,ReLU函数还存在“死亡ReLU”问题,即当大量神经元的输出恒为零时,网络的学习能力会受到限制。

在这里插入图片描述


🍞三.改进点

为了克服原始MobileNetV3在表情识别任务中的局限性,我们对模型进行了两方面的改进:引入CBAM注意力机制和使用GELU激活函数。

1. CBAM注意力

首先,我们在MobileNetV3的基础上引入了CBAM(Convolutional Block Attention Module)注意力机制。CBAM通过通道注意力和空间注意力两个模块,增强了模型对重要特征的关注。通道注意力模块通过自适应地调整各个通道的权重,使得模型能够重点关注具有重要信息的通道,而忽略无关或噪声信息。空间注意力模块则通过自适应地调整各个空间位置的权重,使得模型能够重点关注具有显著特征的位置。通过引入CBAM,模型在特征提取阶段能够更有效地捕捉和利用面部的细微变化,从而提高了表情识别的准确性。其中CBAM的网络结构图如下:

在这里插入图片描述
其次,我们将原始网络中的ReLU激活函数替换为GELU(Gaussian Error Linear Unit)激活函数。GELU函数在保留输入信息的同时,引入了随机性,使得激活函数的输出更加平滑和连续,能够更好地保留特征信息。与ReLU相比,GELU可以更有效地处理负值输入,减少了特征信息的损失,从而提高了模型的学习能力和泛化性能。此外,GELU还具有良好的数学性质和计算稳定性,有助于提高模型的训练效率和收敛速度。

好的,以下是关于GELU激活函数相对于ReLU激活函数的优势,特别是在表情识别中的应用优势的详细说明:

GELU相对于ReLU的优势

  • 激活函数简介

ReLU(Rectified Linear Unit):ReLU是深度学习中最常用的激活函数之一,定义为:

在这里插入图片描述
ReLU函数的主要特点是简洁且计算效率高,但它在输入为负值时直接输出零,可能导致信息丢失,并且存在“死亡ReLU”问题。

GELU(Gaussian Error Linear Unit):GELU是一种较新的激活函数,定义为:

在这里插入图片描述
GELU相对于ReLU的优势

  • 平滑性和连续性

GELU的输出是平滑和连续的,而ReLU的输出在输入为零时存在不连续性。这种平滑和连续性使得GELU在保留输入信息的同时,能够更好地捕捉特征,从而提高模型的表达能力。在表情识别中,面部表情的细微变化往往需要精细的特征捕捉,GELU的平滑性有助于提高识别的精确度。

  • 随机性处理

GELU引入了标准正态分布的累积分布函数,使得激活函数在处理负值输入时不完全归零,而是根据概率逐渐减小。相比之下,ReLU在负值输入时直接输出零,可能导致信息丢失。在表情识别中,面部表情的变化有时是微弱且复杂的,GELU可以更好地保留这些微弱特征,提高模型的鲁棒性和泛化能力。

  • 避免“死亡ReLU

ReLU存在“死亡ReLU”问题,即当大量神经元的输出恒为零时,网络的学习能力会受到限制。而GELU由于其平滑的输出函数,不会出现大规模神经元输出为零的情况,从而避免了“死亡ReLU”问题。在表情识别中,这意味着模型可以更稳定地学习和捕捉面部表情特征。

  • 数学性质和计算稳定性

GELU具有良好的数学性质和计算稳定性。它的定义基于标准正态分布的累积分布函数,具有明确的数学意义和稳定的计算过程。这种稳定性有助于在训练过程中保持梯度的平滑传递,避免梯度消失或爆炸的问题。在表情识别中,这有助于提高模型的训练效率和收敛速度。

GELU在表情识别中的应用优势

  • 提高识别准确度

由于GELU的平滑性和连续性,模型在处理面部表情的细微变化时表现更好。这有助于提高表情识别的准确度,特别是在处理复杂和多样化的表情数据时。

  • 增强模型的鲁棒性

GELU能够更好地处理负值输入并保留输入信息,使得模型在面对不同表情和面部特征时具有更强的鲁棒性。这对于在实际应用中处理各种不同场景和光照条件下的表情识别尤为重要。

  • 改善训练过程

GELU具有良好的数学性质和计算稳定性,有助于在训练过程中保持梯度的平滑传递,避免梯度消失或爆炸的问题。这使得模型训练更为高效和稳定,有助于在较短时间内达到收敛,从而提高表情识别系统的开发效率。

在这里插入图片描述
通过以上优势的综合作用,GELU在表情识别中的应用显著提升了模型的性能和准确性,使得识别系统能够更准确地捕捉和分析面部表情,满足实际应用中的高要求。

通过这两方面的改进,我们的改进版MobileNetV3模型在表情识别任务中取得了显著的性能提升,能够更准确地识别和分析面部表情,满足实际应用中的需求。


🍞四.核心代码

class MobileNetV3_small(nn.Module):
    cfg = [
        (16, 3, 16, 2, True, 'RE'),
        (24, 3, 72, 2, False, 'RE'),
        (24, 3, 88, 1, False, 'RE'),
        (40, 5, 96, 2, True, 'HS'),
        (40, 5, 240, 1, True, 'HS'),
        (40, 5, 240, 1, True, 'HS'),
        (48, 5, 120, 1, True, 'HS'),
        (48, 5, 144, 1, True, 'HS'),
        (96, 5, 288, 2, True, 'HS'),
        (96, 5, 576, 1, True, 'HS'),
        (96, 5, 576, 1, True, 'HS')
    ]

🍞五.结果展示

在这里插入图片描述

识别效果展示如下:
在这里插入图片描述
在这里插入图片描述


🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

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

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

相关文章

Unity入门2——编辑器常用功能

点击文件夹,右键,选择showInExplorer可以在文件管理器中打开 选中多个图片素材,在Inspector里将Texture Type设置为Sprite(2D and UI)即可将图片素材用于UI 右键Hierachy面板的空白区,点击UI->Panel可以创建UI面板&#xf…

GPT-SoVITS-文本转语音(你的声音不再是唯一)

本文将要介绍GPT-SoVITS的安装和使用方法 首先感谢花儿不哭大佬带来的RVC声音克隆 花儿不哭: 花儿不哭的个人空间-花儿不哭个人主页-哔哩哔哩视频 (bilibili.com) GPT-SoVITS下载地址 GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a …

网络药理学:分子对接之pocasa/proteins.plus/Deepsite网站预测蛋白口袋

前言 配体的结合需要疏水作用,通常来说,疏水性空腔(开口小、肚子大、能容纳一定体积的分子结构)更有可能成为口袋。当我们复现网络药理学文章时可能经过前面的筛选,依旧有数个乃至数十个蛋白需要做分子对接验证。此时如…

算法——动态规划:基础

文章目录 一、基本介绍二、案例——斐波那契数列1. 基本介绍2. 递归实现3. 动态规划3.1 重叠子问题3.2 最优子结构3.3 无后效性3.4 性质的总结 4. 使用 动态规划 的思想实现4.1 自顶向下 的 递归4.2 自底向上 的 递推4.3 两种思路的简单比较 三、总结 一、基本介绍 动态规划&a…

python语言day4 函数 生成器yield、next关键字 装饰器

一、 函数 定义: def info(): print("执行info()函数") 直接调用方法和封装一个函数: 使用信息发送的功能为例 登录163网易免费邮-你的专业电子邮局 1)开启POP3/SMTP服务,会得到对应的授权码,也就是登陆…

2024年旗舰骨传导耳机大对比:南卡、韶音和墨觉,哪款最值得购买?

作为专注于数码产品的博主,我对骨传导耳机的迅猛发展深有感触。这类耳机以其与众不同的技术和设计风格,成功捕捉了消费者的兴趣。它们独特的工作原理不仅保留了使用者对周围环境的感知,还能提供清晰的音乐播放和通话体验,特别适合…

第三方软件检测机构服务类型

在信息技术飞速发展的今天,软件产品的质量已成为企业竞争力的重要组成部分。卓码软件测评这家第三方软件检测机构致力于提供一流的软件测试服务,帮助企业确保其软件产品的可靠性和安全性。 一、项目验收测试:确保交付质量   项目验收测试是…

力扣-240.搜索二维矩阵(2)

刷力扣热题–第二十七天:240.搜索二维矩阵(2) 新手第二十七天 奋战敲代码,持之以恒,见证成长 1.题目简介 2.题目解答 这道题的想法就是,整体遍历,在遇到比target还大的,就停止这行的遍历,然后转过去继续遍历下一行,如果有一行的开头大于target,直接返回…

嘉盛平台的代理返佣机制:一份详细的说明书

在金融市场合作模式的多样性中,嘉盛平台的代理返佣机制无疑是一个引人注目的亮点。想了解更多关于嘉盛平台的代理返佣机制吗?本文将为您详细解答。嘉盛开户MT4平台开户链接 :https://application.jszhanghao.com/cn-meta/step/1?ibcodeFXAMM…

Windows--WSL2--Ubuntuon--Docker

编写目的: 在Windows上安装Docker,用Docker安装Gitlab、Jenkins等软件。 文章记录一下Windows上安装Docker的过程。 参考文档: 旧版 WSL 的手动安装步骤 | Microsoft Learn 下面用"参考文档"代替 目录 第一步:启…

RK3568平台开发系列讲解(文件系统篇)FLASH 均衡擦写(UBI)

🚀返回专栏总目录 文章目录 一、UBI均衡二、日志打印三、常见打印四、erase_worker四、ensure_wear_leveling五、wear_leveling_worker上层应用通过逻辑地址来访问存储设备,FTL把不同的逻辑地址映射到Nand Flash中的不同位置。 一、UBI均衡 Ubi擦写均衡在ubi驱动中c 处理,u…

66 函数精彩案例

1 编写函数,接收任意多个实数,返回一个元组,其中第一个元素为所有参数的平均值,其他元素为所有参数中大于平均值的实数。 def func(*parameter):avg sum(parameter) / len(parameter) # 平均值g [i for i in parameter if i &…

哈萨克语驾考学习软件求推荐?

哈语驾考APP专门为哈萨克族考驾照的学员提供了科目一科目四题库在线练习和模拟考试,是一款哈汉双语版本的驾考学习APP。软件内可同时切换哈萨克语题库和语言文字,有多种学习模式。题库同步车管所考题,通过率高。包含了科一、科四模拟考试、路…

PP 8 创建工艺路线

事务代码:CA01(注:定额工艺路线:CA21(重复制造)) 组和组计数器确定唯一工艺路线 创建一个组 把组分配给物料 物料有多个工艺路线 可以把组分给多个物料 如果打上删除标识,工艺路线无效

前端(四):前后端分离开发(YAPI的使用)

一、引入 1、前后端混合开发(早期):将前端、后端、数据库混杂在一起写,前后前全部在一个工程中。沟通成本高、分工不明确、不便于管理、不便于维护和扩展。 2、前后端分离开发:前端工程和后端工程,为了前…

设计模式之拦截器模式

目录 1.概述 2.结构 3.java实现示例 4.常见实现框架 5.C实现拦截器模式 6.拦截器和过滤器的异同 7.应用场景 8.优缺点 9.总结 1.概述 拦截器模式(Interceptor Pattern)是一种在请求被处理之前或之后自动执行代码的设计模式。它允许开发者在方法…

【自动驾驶】ubuntu20.04安装完整ROS的Noetic版本

目录 安装过程换源及安装注意:三级目录 安装过程 1.配置ubuntu的软件和更新 配置ubuntu的软件和更新,允许安装不经认证的软件。 首先打开“软件和更新”对话框,在设置菜单中的,关于,软件更新。 打开后按照下图进行配…

字符串左旋(c语言)

1.字符串左旋 //实现一个函数,可以左旋字符串的k个字符 例如:ABCD左旋字符串的1个字符BCDA ABCD左旋字符串的2个字符CDAB 2.第一步我们先输入k(scanf),将第一位进行储存,然后其他位先前走一位,然后将第一…

分布式事务一站式解决方案-Seata

分布式事务一站式解决方案- 分布式事务一站式解决方案分布式事务产生背景三个概念Seata下载和安装实际业务模拟演示不加 GlobalTransactional 注解,正常操作下单不加 GlobalTransactional 注解,下单过程出异常或者超时了加 GlobalTransactional 注解&…

Shell定时上传日志到HDFS

Shell定时上传日志到HDFS 一、任务需求二、实现思路三、具体实现流程3.1 规划文件上传目录3.2 开发 shell 脚本3.3 授予 shell 可执行权限3.4 手动执行查看3.4 定时执行 shell 脚本 一、任务需求 公司在线服务器每天都会产生网站运行日志,为了避免志文件过大&#…