基于深度学习的人脸表情识别开发

2023-11-05

目前深度学习很流行,很大程度减轻了图像开发的难度。表情识别是图像算法的重要研究方向,本文提供一种基于深度学习的表情识别方法。

1,获取模型

深度学习的框架比较多,有TF,CAFFE,PYTORCH,KERAS等,然后有很多网络比如resnet,mobilenet等。本文采用keras库,使用mobilenetV2网络,训练一个模型。人脸表情库有7种表情,大家可以到相应的官网下载数据集。数据集无所谓,只要有充足的样本用来训练就行。用KERAS采用mobilenetV2训练后得到一个.H5的模型文件,然后将.H5的模型文件转换为.PB文件,这样OPENCV就能调用了。OPENCV的DNN模块调用比其他方法快9倍左右,不需要其他依赖,很适合工程化,适合C++开发,产品落地。假如用python开发,则不需要转换.H5文件,直接用来预测人脸表情就行了。

2,检测人脸并识别表情

人脸检测有很多方法,比如传统的haar检测人脸,深度学习的MTCNN,还有别的一些方法。综合起来,MTCNN在精度和速度上很有优势。MTCNN检测人脸后,人脸宽度比较小,要对人脸宽度进行扩充,对预测结果更有好处。当已经得到人脸检测的区域后,将该区域提取出来,用得到的深度学习模型进行预测分类,从而得到人脸表情的种类。

3,预测时间和正确率

首先加载模型,然后对文件夹几十个文件统计时间求平均值。深度网络加载时间不算进来,只计算每幅图的人脸检测和表情识别分类的时间,大概平均每幅图在70ms左右,采用CPU,2.5GHz,4G内存。正确率在90%附近。

效果测试  https://download.csdn.net/download/hnsdgxylh/11573446

有一起研究的大神可以加Q 2830025146,共同进步

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于深度学习的人脸表情识别开发 的相关文章

随机推荐

  • golang 数据类型转换

    数据类型转换 同底层数据类型转换 比如将 int 类型数据转换成 int8 int16 int32 int64 package main import fmt func main 同底层数据类型之间的转换 定义数字类型变量 var num
  • oracle中的rowid和rownum理解

    rownum Oracle分页查询相较于mysql来说要繁琐得多 需要配合rownum实现 而为什么需要先获取小于某个值的数据后 再获取大于某个值的结果 是因为rownum是一个逻辑伪列 并不会真实存在 每次生成都是在先生成列表数据后 新增
  • Jeff Atwood倾情推荐——程序员必读之书

    英文版 Code Complete 2 中文版 代码大全 第二版 作者 Steve McConnell译者 金戈 汤凌 陈硕 张菲出版社 电子工业出版社出版日期 2007 年8月Jeff Atwood的推荐 Steve McConnell的
  • STM32CubeMX之内部Flash读写

    有时候需要对一些数据进行掉电可存储 一般来说可以把这些数据存储到外部EEPROM或FLASH 如AT24CXX SPI FLASH等 对于一些不需要经常写入的少量数据 可以直接存储到单片机内部FLASH 可以节省成本 前期准备 STM32硬
  • Windows下 VS code +MinGW如何添加安装 pthread.h

    Windows下 VS code MinGW如何添加安装 pthread h 本人墨大学生小白一名 因为专业课中需要用到 pthread h 去编写C语言 网上有很多教程 但我按步骤走后 在编译时依然会出现错误 试了很多种方法 最后使用mi
  • mmdetection1.4训练fasterrcnn

    mmdetection1 4训练fasterrcnn 指定参数文件 urllib error URLError
  • 循环结构中辅助控制break,continue,pass,else

    文章目录 break与continue pass for while循环中的else扩展用法 综合实例 break与continue break语句是结束整个循环的过程 不在判断执行循环的条件是否成立 continue语句只结束本次循环 并
  • 找不到msvcp140.dll无法继续执行代码怎么解决

    msvcp140 dll是Microsoft Visual C 文件中中的一个共享DLL文件 用于执行C 程序的相关运行库 如果计算机上的某个程序缺少msvcp140 dll文件 则该程序将无法正常运行 通常会弹出相关错误提示信息 小编今天
  • 【U盘量产工具】热插拔导致U盘进入写保护——安国主控AU6989SN-GT

    2022 1 20 前言 前两天我爸的车的中控CD机坏了 嫌修车店修太贵了 又不需要升级成触控导航的中控 就想在淘宝上买了一个原厂一模一样的换上 到货了觉得修车店装一下又得几百块 就让我帮他一起装回去了 那东西居然是2011年产的 到现在已
  • linux socat_Linux多用途中继Socat命令教程和示例

    linux socat Linux provides different philosophy and use cases from system point of view socat is very interesting comman
  • 精通SuiteSparse应用与架构01 compile and install

    solve problem libcublas so no such file or directory as cuda10 nvidia put has shiftted the cublas to usrlib x86 64linux
  • 时序预测

    文章目录 效果一览 文章概述 源码设计 参考资料 效果一览 文章概述 时序预测 Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1 Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2 单变量时间序列预测 3
  • PID控制器的输入量和输出量的物理关系解释

    PID控制器的输入量和输出量的物理关系解释 其实 PID基本找不到输入与输出的单位关系 但是有很强的数的关系 给定的值与反馈的值还存在偏差时 就会调整输出以达到输入与反馈的平衡 在这里 给定的电流值 反馈的也是电流值 PWM控制的是实际的输
  • 一分钟看懂IoC 原理

    本人的概念总结 一分钟让你懂得Ioc原理 1 1 IoC是什么 Ioc Inversion of Control 即 控制反转 不是什么技术 而是一种设计思想 在开发中 Ioc意味着将你设计好的对象交给容器控制 而不是传统的在你的对象内部直
  • 蓝桥杯之单词分析

    题目描述 小蓝正在学习一门神奇的语言 这门语言中的单词都是由小写英文字母组成 有些单词很长 远远超过正常英文单词的长度 小蓝学了很长时间也记不住一些单词 他准备不再完全记忆这些单词 而是根据单词中哪个字母出现得最多来分辨单词 现在 请你帮助
  • 延时函数介绍

    文章目录 基本介绍 一 sleep 二 usleep 三 mdelay 四 udelay 五 ndelay 在操作系统中和单片机处理延时方式就完全不一样了 不可能是使用for循环浪费系统资源 而是有专门的接口函数 基本介绍 Linux 中常
  • 简洁而实用的NAS导航页——Homarr

    前言 为了更好管理家庭内网中部署的各个服务 尤其访问NAS docker中的容器 之前看过一些类似的导航面板 其中这个界面看上去十分简洁 这里自己就记录和分享一下搭建过程 官方网站 Home Homarr Docs 个人环境 支持docke
  • violin plot 小提琴图 matlab R语言 Python

    最近用到violin图 在此总结制作此图的步骤 matlab 需先下载函数文件 https ww2 mathworks cn matlabcentral fileexchange 45134 violin plot 函数中有默认添加 中位数
  • GDB调试详解

    文章目录 调试信息 启动调试 调试进程 调试core文件 GDB调试命令 run continue break backtrace 与 frame info break enable disable delete list print pt
  • 基于深度学习的人脸表情识别开发

    目前深度学习很流行 很大程度减轻了图像开发的难度 表情识别是图像算法的重要研究方向 本文提供一种基于深度学习的表情识别方法 1 获取模型 深度学习的框架比较多 有TF CAFFE PYTORCH KERAS等 然后有很多网络比如resnet