一、微表情识别简介

1 理论依据
人类对人像的研究从未停歇,从我国春秋时期的《左传》,汉代的《汉书·艺文志·相人》中便有关于相面的记载,再到国外的查尔斯·贝尔表情的剖析与哲学、达奇恩博士人像的机制研究、达尔文对人类和动物的表情研究等,直到今天人们开始利用计算机对人像识别生物工程递进式研究,都在潜移默化的证明着人像的重要性、不可替代性。当前大数据、5G、智慧城市等前沿技术的兴起,使得安全领域的专家及公安机关开启了对计算机人脸识别技术的应用研究,它如同指纹、虹膜一样,具有特定性的生物特征。

目前,计算机对人像面部的识别和分析主要从两个方面进行,一是固定的面部特征分析。基于人像面部整体的研究进行计算识别的方法,主要包括Eigenface方法、SVD分解法、局部二进制编码直方图、隐马尔可夫模型(Hidden Markov Model,HMM)方法及神经网络方法等;二是对运动的面部特征进行分析。将人像基准点的相对比率和其他描述人像面部特征的形状参数或类别参数等一起构成识别特征向量。

2 人像微表情的生物特征
人是由猿进化而来的,人的表情有其生物根源。正如英国生物学家达尔文在《人类和动物的表情》一书中所指出的那样,人类的表情和姿势是人类祖先表情动作的遗迹。所以,人的许多最基本情绪,如:喜、怒、哀、乐等原始表情是具有全人类的共性。

3 人像识别的具体流程
从狭义上来讲,人像识别是对以人脸为主的分析、特征提取和识别。

图3 人像识别流程图
人像识别的具体流程可分为:目击者口述信息、疑犯犯罪心理分析、微表情画像、视频采集、人像检测、人脸特征提取、数据关联等几个步骤。

微表情特征画像的建型准确是画像人像的关键。通过引导口述人对目标信息的准确描述,建立人像轮廓五官特征,对目标人像特征加以犯罪分析,呈现出带有表情特征的人像画作后,进行人像检测。

人像识别的具体流程可分为数字绘画图像和视频人像采集两个方面:一是数字绘画人像,画像的准确性是微表情特征画像建模准确的关键。通过引导目击者对目标信息的准确描述,建立人像轮廓五官特征,对目标人像特征加以分析,呈现出带有表情特征的人像画作后,生成数字图像,导入人像检测系统后提取人脸特征,与人像数据库图像进行比对。二是视频人像采集,视频采集是原始图像识别流程的基础。由于视频流具有延续性,链接性,所以将视频的画面定格在某一帧上进行采集,从而获得较为清晰的图像。然后对采集到的图像进行检测,通过检测,判断是否有目标人脸的存在,对检测到的人脸信息图片进行分析,特征提取,最终与人像数据库中信息进行比对,找出相似的数字图像。

4 PCA算法在画像中的应用与实现
素描模拟画像是二维的平面画像,而人像识别技术对拍摄到的照片进行识别比对是通过测算二维图像人物脸部特征点的距离来实现的。因此,以犯罪嫌疑人模拟画像替代“二维”照片,通过目击者对犯罪嫌疑人的描述,刻画犯罪嫌疑人的颅骨、脸部肌肉的阴影关系以及特征点、五官等进行犯罪嫌疑人模拟画像,进而将模拟画像导入人像识别系统,利用人像识别系统接入的人像资源库进行自动识别比对,选出与模拟画像最为相似的人员信息。

以下是PCA算法的原理及步骤:
(1)读取训练集下指定数目的图像,将每张图像的像素保存到一个二维矩阵中。然后把这个矩阵按照列排拉伸成为一个新的列向量,每一个列向量表示一张图像的像素信息,然后将所有代表训练图像的列向量整合为一个新的矩阵X,如果有S张人脸图像,每张图像尺寸为m×n,则矩阵X为m×n行,S列;
(2)对X的每一行取得均值,每行的元素减去均值,得到每张人脸与平均人脸的差值,组成新矩阵X’;
(3)计算X’的协方差矩阵C,C的维度为m×n;
(4)计算C的特征值即特征向量,共有m×n个特征值及特征向量;
(5)选择主成分,把特征值从大到小排序,选择前R个特征值使得R个特征值占所有特征值的90%以上,随后将特征向量按行排列,则P=[R,m×n];
(6)将训练集投影到特征空间,Y=PX’=[R,S]。
(7)将测试集也投影到特征空间,假如测试集有K张图像,那么降维后矩阵为[R,K]。
(8)每一张图像[R,1]与特征空间[R,S]用欧氏距离法求出与其最相近的一个图像,识别为该类。所有测试集识别完后,最后求出识别率。
识别结果以两种方式呈现:一是从人像库里面遴选出3张与待检测目标图像最相似的图像;二是显示出目标图像与样本图像相识度值。
通俗地讲,PCA算法是通过测算出待识别图形的特征向量来实现人像识别的。而待识别图像人脸不同的骨骼形状及透视比例等特征是特征向量值计算的主要因素。不同的脸型测算出来的特征向量值不同。

二、部分源代码

function varargout = MainForm(varargin)gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @MainForm_OpeningFcn, ...'gui_OutputFcn',  @MainForm_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end% --- Executes just before MainForm is made visible.
function MainForm_OpeningFcn(hObject, eventdata, handles, varargin)rand('seed', 0);
% Choose default command line output for MainForm
handles.output = hObject;
handles.Img = 0;
handles.G = 0;
axes(handles.axes1); cla reset;
set(handles.axes1, 'Box', 'on', 'Color', 'w', 'XTickLabel', '', 'YTickLabel', '');
set(handles.textResult, 'String', '');
% Update handles structure
guidata(hObject, handles);

三、运行结果



四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]王扶尧,郑坤泉.微表情特征画像在公安人像识别系统中的应用研究[J].中国人民公安大学学报(自然科学版). 2020,26(03)
[6]姚丽莎,张军委,房波,张绍雷,周欢,赵凤.基于LBP和SVM的人脸表情识别系统的设计与实现[J].贵州师范大学学报(自然科学版). 2020,38(01)

【人脸表情识别】基于matlab GUI微表情识别系统【含Matlab源码 1852期】相关推荐

  1. 【运动学】基于matlab GUI三体运动模拟【含Matlab源码 871期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[运动学]基于matlab GUI三体运动模拟[含Matlab源码 871期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  2. 【音乐播放】基于matlab GUI动感音乐播放【含Matlab源码 778期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[音乐播放]基于matlab GUI动感音乐播放[含Matlab源码 778期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  3. 【雷达通信】基于matlab GUI相控阵雷达方向图【含Matlab源码 1048期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[雷达通信]基于matlab GUI相控阵雷达方向图[含Matlab源码 1048期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  4. 【数据分析】基于matlab GUI齿轮箱振动数据分析【含Matlab源码 2122期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数据分析]基于matlab GUI齿轮箱振动数据分析[含Matlab源码 2122期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  5. 【光学】基于matlab GUI维达尔之眼计算【含Matlab源码 2545期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI维达尔之眼计算[含Matlab源码 2545期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  6. 【光学】基于matlab GUI双孔干涉【含Matlab源码 2119期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI双孔干涉[含Matlab源码 2119期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

  7. 【光学】基于matlab GUI双缝干涉和牛顿环【含Matlab源码 2165期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI双缝干涉和牛顿环[含Matlab源码 2165期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...

  8. Matlab GUI/APP 浅谈(附计算器源码)

    Matlab GUI/APP 浅谈(附计算器源码) 今天没有什么段子,也没有心灵鸡汤.毒鸡汤啥的,纯粹聊一聊这些年从有关MATLAB GUI/APP开发中悟出的一点道理,顺便把计算器的源代码给大家. ...

  9. 基于JAVA高铁在线购票系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA高铁在线购票系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA高铁在线购票系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  10. 基于JAVA网上体育用品销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA网上体育用品销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA网上体育用品销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

最新文章

  1. 第四章 python的turtle库的运用
  2. 最新BERT相关论文汇总
  3. tomcat-users.xml 配置(转的)
  4. ThreadLocal 和神奇的数字 0x61c88647
  5. DNS 网关 路由 交换机 网桥 协议 服务器 这些都是什么关系?
  6. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
  7. 动态规划各类问题分析——LeetCode习题精讲
  8. vue项目如何打包扔向服务器 - Hi-Sen - 博客园
  9. 3d翻转 ios_iOS自定义转场详解04——实现3D翻转效果
  10. 一种用javascript实现的比较兼容的回到顶部demo + 阻止事件冒泡
  11. Kafka相关面试真题整理( 持续更新... ... )
  12. “硬件极客”:树莓派Raspberrypi安装Kali Linux保姆教程(通过树莓派安装ARM Kali教程)
  13. 含泪推荐四款超级好用的电脑软件,值得收藏
  14. ffmpeg 中av_rescale_rnd 与av_rescale ()(AVRounding结构体)
  15. C++输出流cout的执行顺序问题
  16. android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录
  17. 全球PM25实时可视化
  18. css记录div渐变背景设置border-radius圆角显示不完整
  19. 利用stylecloud制作更酷炫的词云图
  20. Google Earth Engine(GEE)对比显示不同城市的地表温度

热门文章

  1. 双绞线连接布线方案(计算机网络)
  2. Dota2 比赛匹配
  3. C语言——将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
  4. 支付宝 android sdk 调用h,支付宝 iOS SDK 的简单使用
  5. 兜兜转转,又回到了这里
  6. golang学习之五:error、painc、recover
  7. Flink单机部署,slots为0,TaskExecutor akka.tcp://xxx has no more allocated slots for job
  8. C语言小技巧之如何求平均数
  9. as_completed和wait源码分析
  10. 玲听 | 蚂蚁金服布局区块链核心3问