深度学习项目——表情识别(2)卷积基础和常用卷积模型

基于深度学习的人脸表情识别系统 从混淆矩阵中可以看出,生气(Angry)、厌恶(Disgust)、恐惧(Fear)、高兴(Happiness)、悲伤(Sadness)、惊讶(Surprise)及正常(Neutral)这7种表情在测试集的准确率依次为67%、67%、56%、92%、61%、82%及73%,最终可以计算出在整个测试集上Mini-Xception模型的准确率为71.14%,具有更加准确的效果。其实就是基于对人脸特征的描述,分类器根据训练的样品数据进行训练,完成后即可感知读取到的图片上的特征,进而对图片进行人脸识别。 阅读详情

1. 图像基础

1.1 图像如何存储在计算机中

  • 灰度图:矩阵

    0:白色
    1:黑色
    0-255:灰色
    在这里插入图片描述

  • 彩色图:三个矩阵的叠加

彩色图 = 三个图层/三个通道 (每个图层由 0-255 的数字组成,用来表示红/绿/蓝 颜色的深浅)

比如,用0来表示最不红,255表示最红。
在这里插入图片描述
重要概念:width、height、channel

1.2 传统的图像处理

  • 人工算子(矩阵形式):参数
  • 卷积:运算
    在这里插入图片描述
    可以使用使用卷积神经网络,来自动学习参数。

2. 卷积的基本构件

2.1 卷积层

2.1.1 全连接神经网络 处理图像的问题

  • 全连接神经网络(DNN):上下层每一个神经元全部连接

  • 思路
    一张灰度图像(28x28)的全部像素 flatten 成一个n 维(28x28=784)向量,然后接上不同维度(64和32)的全连接层,最后接上 softmax ,输出相应维度(10)的向量,进行最后分类。

  • 采用全连接网络的问题:

  1. 参数太多
  2. 像素之间相关性太大
    在这里插入图片描述

2.1.2 卷积层的特性/作用

  • 共享参数:大大降低了网络参数——保证了网络的稀疏性,防止过拟合(之所以可以“参数共享”,是因为样本存在局部相关的特性。)
  • 局部感受野:解决相关性太大的问题

2.1.3 卷积层的几个重要概念

  • channel
    在这里插入图片描述
    可以理解为矩阵的叠加个数,如:
    彩色图的输入channel:3
    灰度图的输入channel:1

  • padding
    在这里插入图片描述
    填充(padding)的目的,比如0填充,是为了使得下一层的神经元的个数或者说 feature map 满足一定的条件(比如变大)。

  • strides
    增大步长(strides)可以增加感受野外。

  • kernel size
    卷积核的大小(kernel size)一般都选择的是奇数大小——因为奇数是对称的,它都有一个中心。

  • filters
    有几个不同的卷积核就有几个不同的 filter。

  • feature map
    一个卷积核“扫过“一次可以生成一个 feature map;
    有几个 feature map 堆叠在一起就有几个channel。

  • 感受野
    在这里插入图片描述
    感受野是非常重要的概念,对我们后期的建模有一定的指导意义(选择宏观信息还是局部信息?)

    比如顶层神经元的感受野是”全局感受野“,意味着顶层神经元蕴含着底层所有像素的信息。

注:关于(对底层 feature map) padding 的两个参数

  • SAME 参数:做padding 且自动计算(有公式)

  • VALID 参数:不做 padding

  • 特殊卷积:1x1 卷积
    1x1 卷积 虽然不能改变 feature map 的长和宽,但是可以在channel 维度做一些文章,比如压缩通道和扩展通道。

    在这里插入图片描述

2.2 池化层

化层层没有需要学习的参数。

  • 平均池化
  • 最大池化

注: 特殊池化,比如 global 池化(全局效果的池化)

2.3 CNN架构设计原则

在这里插入图片描述

  • feature map 会越来越小
  • channel 会越来越大

3. 卷积的经典结构

在这里插入图片描述

3.1 Lenet 结构

Lenet (GoogleNet)是 CNN 运用到真实场景的一个开端。
在这里插入图片描述

3.2 Alexnet 结构

Alexnet 是第一次运用在非常大的数据集( ImageNet )
在这里插入图片描述
重要的创新/技巧:

  • Dropout
    在倒数2-3层的全连接层上加入了Dropout 机制,随机屏蔽一些神经元(后期还需要对参数进行还原)

该技巧提升了模型的泛化能力。

  • Data augment
    数据增强可以大大提升可以训练的数据量。

3.3 Inception 结构

(Google)

使用不同处理手段,最后按照 channel 维度拼接(需满足长和宽的维度大小——需要做padding),作为下一层的输入。
在这里插入图片描述

  • 不同感受野
    引入了 block,相当于引入了不同的感受野(集合到了一块)——相当于拥有了看”宏观信息“和”微观信息“的能力。
  • 引入 1x1 的卷积
  1. 使得通道(channel)之间有了一定的沟通
  2. 压缩了 feature map,使得下一层卷积核的参数大大减少。
  • Batchnorm 的引入
    注意:CNN 和 DNN 的使用方法有些不一样(维度不一样)

  • 2 个3x3 代替 5x5
    真正理解”感受野“才行——让最顶层的神经元获取底层的所有信息即可:
    5x5 的 feature map 可以用 5x5 的卷积核直接进行卷积,得到 1 个神经元;
    5x5 的 feature map 也可以 由 1 个 3x3 的卷积核进行卷积得到 3x3的 feature map,最后再接一个卷积核就可以得到一个 1x1 的 feature map。
    即用 2 个 3x3 的卷积核可以达到 1 个 5x5 卷积核达到的感受野。
    同时,5x5的参数个数是 5x5=25 个,2 个3x3的只需要 3x3 + 3x3=18 个参数。参数越少越不容易过拟合,而且易于计算。

3.3 VGGNet

(微软)

VGGNet 完全依照 CNN的基本设计原则:
channel 越来越大;
feature map 的size 越来越小

VGGNet完全由卷积层和池化层的得加而来。
在这里插入图片描述
VGGNet完全由卷积层和池化层的得加而来。但是不能做得太深,直到微软又发明出了 Resnet(残差网络)

3.4 Resnet

残差网络在模型深度上有了新的突破,能轻易地训练到100多层!

在这里插入图片描述
注意: 图中的加号➕指的是维度上相加,所以 feature map 的长、宽以及 channel 必须统一。
(注:长跟宽-可以通过 padding 来完成统一;channel-可以通过 1x1的卷积来完成扩展或压缩)

  • Skip connection 跳层连接

假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的 卷积层)f(x, θ)去逼近一个目标函数为h(x)。
有论文指出,残差函数—— h(x) - x 相比原始函数h(x) 更容易学习。
因此, 原来的优化问题可以转换为:让非线性单元 f (x, θ) 去近似残差函数 h(x) − x,并 用f(x,θ)+x 去逼近h(x)。
在这里插入图片描述

  • Resnet 为什么效果很好,简单分析:
  1. 纯数学上,可以解决梯度消失的问题(BP角度)
  2. 集成模型(high way 角度)
  3. 是 ODE 方程的一个数学近似

3.4 Xception

深度可分离卷积
在这里插入图片描述
思想:先卷积区域,再融合通道

参数量会少很多;
将空间信息和通道信息分离;(假设)

比如,人脸 RGB 三种颜色、三层信息应该都能单独识别出人脸信息,而不应该非要融合在一起才能起作用。

可以继续参考:
4. 卷积神经网络中十大拍案叫绝的操作

人脸表情识别系统 1.背景2.人脸检测2.1 Haar特征2.2 级联分类器2.3 OpenCV人脸检测3.人脸表情识别3.1 Mini-Xception网络3.1.1 深度可分离卷积3.1.2 批量归一化层3.1.3 ReLU激活函数3.1.4 Softmax层3.1.4算法代码实现3.2 基于Mini-Xception的表情识别3.2.1 数据预处理3.2.2 构建网络模型4.实验结果与分析4.1 模型训练4.2 结果分析4.3 应用测试参考文献。 阅读详情

相关推荐

基于人脸的常见表情识别——模型搭建、训练与测试¶

人脸表情分类模型的训练和测试

skjmom的博客 827

Keras实战——人脸表情识别(一)模型的搭建和训练

7月7日更新 Keras实战——人脸表情识别(二)模型的调用与使用 https://blog.youkuaiyun.com/pmj110119/article/details/94991244 代码下载地址 优快云:https://download.youkuaiyun.com/download/pmj110119/11293264 百度云:https://pan.baidu.com/s/16ZgaX3J_6...

pmj110119的博客 9315

深度学习在人脸表情识别中的应用:卷积神经网络实战

本文还有配套的精品资源,点击获取 简介:人脸表情识别作为计算机视觉领域的研究重点,主要采用深度学习技术进行分析与识别。本资源介绍了一种基于卷积神经网络(CNN)的人脸表情识别方法,并针对七种基础表情实现了识别。通过数据预处理、特征提取、池化层处理、全连接层映射、损失函数优化及模型训练与验证等步骤,提高识别的准确率。提供Matlab源码,包含GUI界面,使学习者能够直观地掌握...

weixin_28872035的博客 1846

[机器学习] 实验笔记 - 表情识别(emotion recognition)

本文主要整理自笔者在表情识别(emotion recognition)研究上的实验笔记资料,给出了表情识别常用的数据库,论文资料,识别方法,评价指标,以及笔者的实验笔记和实验结果。与读者分享,欢迎讨论。

WangBo的机器学习乐园 4万+

人脸表情识别:从基础到深度学习方法

本文还有配套的精品资源,点击获取 简介:人脸表情识别作为计算机视觉的分支,在多个学科交叉中发展,特别是深度学习技术的进步,极大地提升了其在多个场景的应用价值。该研究涵盖了人脸表情的基本概念、识别技术、深度学习的应用、实际应用案例以及相关的资源介绍。深入探索了从特征提取、模板匹配到深度学习模型的演变,及其在情绪分析、人机交互、安全监控等领域的具体应用。 1. 人脸表...

weixin_34520664的博客 2506

深度学习基于卷积神经网络的人脸面部表情识别项目源码+论文+面部表情数据集+训练好的模型

深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip也可作为人工智能大作业 深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型.zip 环境 数据集: Fer2013 ,Emoji表情集 神经网络框架: Keras,Tensorflow-gpu 分类器: 基于Opencv-Normal Bayes Classifier(正态贝叶斯分类)训练的贝叶斯分类器 配置环境: python==3.6.0 tensorflow-gpu==1.8.0 keras-gpu==2.1.6 opencv==3.3.1 其他环境详见:environment.yaml

表情识别

数据集 ExpW表情数据集 备用数据集,爬虫爬取的,原数据集并没有将人脸提取出来 数据预处理: 人脸倾斜(对齐) 无关数据(不是人脸) 表情识别/情绪识别:ExpW表情数据集 表情识别/情绪识别:ExpW表情数据集 《Deep Facial Expression Recognition:A Survey》论文笔记 人脸表情数据集-fer2013 由35886张人脸表情图片组成: 测试:28708张 公共验证图:3589 私有验证图:3589 48×48的灰度图像 共7种表情: 0 anger 生气 1

⛄ 4198

技能伤害继承英雄属性【War3地图编辑器】

风暴之锤跟随山丘之王的力量增长

ArYe 2301

基于pytorch卷积人脸表情识别--毕业设计

基于卷积神经网络的人脸表情识别前言毕业设计内容介绍卷积神经网络的设计卷积网络的模型卷积池化过程详细说明第一层卷积池化过程第二层卷积池化过程第三层卷积池化过程全连接层过程模型的训练过程卷积与池化原理模型如何训练模型的评估指标训练结果分析通过训练曲线分析通过混淆矩阵分析效果通过摄像头识别表情设计流程效果演示部分代码展示总结 前言 这篇文章记录一下我本科毕业设计的内容。我的课题是人脸表情识别,本来最开始按照历届学长的传统是采用MATLAB用传统的机器学习方法来实现分类的。但是鉴于我以前接触过一点点深度学习的内容,

Thebluewinds的博客 1万+

大厂案例:快手AI人才管理系统的架构设计与效果

凌晨两点刷简历的HR、说不清“团队离职率高”原因的业务leader、不知道“该学什么”的员工——这些人力资源场景中的“痛点”,曾是快手高速增长期的真实写照。当员工规模从几千扩张到几万,传统HR系统的“经验驱动”模式彻底失效。2021年,快手启动AI人才管理系统建设,用“数据+算法”重构招聘、培养、绩效、留存全流程。本文将拆解这套系统的架构设计逻辑核心技术实现,以及真实业务效果AI如何让HR从“事务执行者”变成“战略伙伴”?

大模型应用工坊 1711

SOC Boot学习(二)——JTAG Debug介绍

JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。如今大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。

yttt的博客 1605

深度学习项目-人脸表情识别

本文介绍利用Keras如何实现一个人脸表情识别系统。

周先森爱吃素的博客 1万+

5分钟快速搭建:使用ros1_bridge实现ROS2容器与ROS1主机的无缝通信

本文详细介绍了如何在5分钟内快速搭建基于ros1_bridge的通信方案,实现运行在Docker容器中的ROS2节点与宿主机ROS1系统的无缝数据交换。通过环境隔离、Docker容器化部署及选择性桥接配置,该方案能有效整合新旧系统,避免大规模代码重构,是机器人项目渐进式升级的实用策略。

weixin_29268637的博客 178

【Pytorch】基于卷积神经网络实现的面部表情识别

一、绪论 1.1 研究背景 面部表情识别 (Facial Expression Recognition ) 在日常工作和生活中,人们情感的表达方式主要有:语言、声音、肢体行为(如手势)、以及面部表情等。在这些行为方式中,面部表情所携带的表达人类内心情感活动的信息最为丰富,据研究表明,人类的面部表情所携带的内心活动的信息在所有的上述的形式中比例最高,大约占比55%。 人类的面部表情变化可以传达出其内心的情绪变化,表情是人类内心世界的真实写照。上世纪70年代,美国著名心理学家保罗•艾克曼经过大量实验之后,将人类

学无止境 2万+

飞塔防火墙CVE-2022-40684漏洞复现:手把手教你搭建靶场环境(附调试技巧)

本文详细指导如何搭建Fortinet飞塔防火墙CVE-2022-40684认证绕过漏洞的靶场环境,涵盖虚拟机部署、网络配置、调试模式开启及漏洞原理分析。通过手把手教程,读者可掌握漏洞复现与深度调试技巧,深入理解该认证绕过漏洞的利用与防御。

h6i7j8的博客 695

微信图片.dat文件解密实战:用Python一键转PNG(附完整代码)

本文详细介绍了如何通过Python解密微信图片.dat文件并转换为PNG格式的完整教程。文章深入解析了微信.dat文件的异或加密原理,提供了自动检测密钥的Python脚本,并分享了批量解密和性能优化的实用技巧,帮助用户轻松恢复和整理微信聊天图片。

weixin_29096377的博客 464

基于卷积网络的人脸表情识别及其应用

基于卷积网络的人脸表情识别及其应用前言一、人脸表情识别技术现状二、卷积神经网络技术概述1.卷积神经网络图像理解过程2.卷积神经网络组成结构3.卷积神经网络的优势三、人脸表情识别卷积网络模型1. 模型搭建、训练环境2. 数据集的选择及划分3. 模型初步设计及配置4. 卷积网络模型的优化5. 模型最终效果四 、人脸表情识别模型实际应用(学生学习状态实时评估系统)1. Opencv 图像处理*视频图像获取**人脸目标检测*2. 人体坐姿正确性检测3. 采集及检测数据分析4. 学习状态分析报告及邮件发送5. 最终系

沙罗沙罗的博客 1万+

量化交易python代码解析:从狙击手算法到最优限价算法

在金融市场的竞技场上,量化交易如同一位冷静的策略大师,它以数学模型为剑,以计算机程序为盾,精准出击,捕捉市场的微妙波动。本文将深入探讨五种核心量化交易算法:直接委托算法(DMA)、时间加权平均算法(TWAP)、冰山算法(Iceberg)、狙击手算法(Sniper)、条件委托算法(Stop)以及最优限价算法(BestLimit),揭开它们背后的运作机制与实战应用。

木头大左的博客 1884

基于深度学习的人脸表情识别实现

1. 前言 关于人脸识别,其实我一直以来做过蛮多的项目,有些是整理出帖子了,有些是没有整理出,因为学业比较繁重,所以也是断断续续的来整理。最近刚好是五一假期,也出不去,就想着来整理一篇关于人脸表情识别的文章。这是可以既可以识别人的身份,还可以识别出人的表情出来,如开心、悲伤等基本情绪。 2. 相关工作 依我比较有限的知识来说的话,无论是人脸识别还是表情识别,亦或是把两者结合起来,也就是本文要实现的人脸+表情识别任务,其本质都是分类任务。关于人脸识别,我之前分别实现了不戴口罩和戴口罩的识别任务,具体可参

飞奔的菜猪的博客 1万+

【Bug已解决】Request timed out / API Timeout — Claude Code 请求超时解决方案

方案适用场景推荐指数难度方案一:增加超时大任务处理⭐⭐⭐⭐⭐低方案二:切换 SonnetOpus 太慢⭐⭐⭐⭐⭐低方案三:缩小范围大代码库⭐⭐⭐⭐⭐低方案四:优化网络网络延迟高⭐⭐⭐⭐中方案五:减少 MCPMCP 超时⭐⭐⭐中方案六:流式响应长生成任务⭐⭐⭐低根本原因:请求超时最常见原因是请求体过大(35%)和 Opus 模型推理慢(25%),默认 60 秒超时阈值对大型任务不够最佳实践。

一键难忘的博客 5161

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【实战】深度学习构建人脸面部表情识别系统

实战:深度学习构建人脸面部表情识别系统 一、表情数据集 数据集采用了kaggle面部表情识竞赛的人脸表情识别数据集。 https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge/data 数据主要是由48*48像素的灰度图像组成。面部表情有7种类别(0 ...

Mind_programmonkey的博客 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Pytorch实现基于卷积神经网络的面部表情识别(详细步骤)

文章目录一、项目背景二、数据处理1、标签与特征分离2、数据可视化3、训练集和测试集三、模型搭建四、模型训练特征五、完整代码 一、项目背景 数据集cnn_train.csv包含人类面部表情的图片的label和feature。在这里,面部表情识别相当于一个分类问题,共有7个类别。 其中label包括7种类型表情: 一共有28709个label,说明包含了28709张表情包嘿嘿。 每一行就是一张表情包4848=2304个像素,相当于4848个灰度值(intensity)(0为黑, 255为白) 二、数据处理

陆海潘江的博客 4万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

基于深度学习卷积神经网络的表情识别系统

基于深度学习卷积神经网络的表情识别系统

xuehai996的博客 1421

基于深度学习的人脸表情识别卷积神经网络

给定数据集train.csv,要求使用卷积神经网络CNN,根据每个样本的面部图片判断出其表情。在本项目中,表情共分7类,分别为:(0)生气,(1)厌恶,(2)恐惧,(3)高兴,(4)难过,(5)惊讶和(6)中立(即面无表情,无法归为前六类)。所以,本项目实质上是一个7分类问题。

8757

pytorch实现的面部表情识别

本项目是基于卷积神经网络模型开展表情识别的研究,为了尽可能的提高最终表情识别的准确性,需要大量的样本图片训练,优化,所以采用了 FER2013 数据集用来训练、测试,此数据集由 35886 张人脸表情图片组成,其中,测试图 28708 张,公共验证图和私有验证图各 3589 张,所有图片中共有7种表情。

王二的博客 4486
上一篇: 深度学习项目——表情识别(1)CV 介绍 及 colab 介绍
下一篇: 深度学习算法/模型——深度学习基础(持续更新)
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值