1 简介

表情识别的研究目标是让计算机能够自动识别出人的表情信息,从而更进一步地增强人机交互的友好性及智能性.但是由于人脸表情识别涉及图像处理,计算机视觉,应用数学等学科的融合,正是由于这种多学科交叉的复杂性和特殊性,使得表情识别相对比较困难,当前人们仍面临着许多亟待解决的问题.作为一个典型的模式识别系统,人脸表情识别主要包括以下三个方面:人脸检测,人脸表情特征的提取,人脸表情分类.本文以人脸表情为主要研究对象,以人脸表情识别算法为主要研究目的,对人脸表情特征提取以及人脸表情特征分析等问题进行了较深入的研究.

Gabor 滤波器是一个由二维高斯函数衍生而来的复数域正弦曲线函数[10],相当于一组带通滤波器,其方向、基频带宽及中心频率均可调节. 不同参数的 Gabor 滤波器组能够捕捉图像中对应于不同空间频率、空间位置以及方向选择性等局部结构信息,且对于亮度和人脸姿态的变化不敏感.不同的表情行为特征具有不同的尺度. 例如,惊讶表情行为会使人脸器官在较大范围移动,需要对其进行大尺度分析,而微笑表情行为造成的人脸器官变化较小,应用小尺度分析. 本文先进行多尺度的 Gabor 变换以提取局部特征,再对其进行融合.

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_图像处理

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_图像处理_02

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_matlab代码_03

2 部分代码

function S = GetTrainData()
clc; clear all;
load S.mat
% 1 中性脸 A neutral face NE
% 2 高兴 happy HA
% 3 悲伤 sad SA
% 4 惊奇 surprise SU
% 5 愤怒 anger AN
% 6 厌恶 disgust DI
% 7 恐惧 fear FE
num = length(S);
% 生成训练数据
for i = 1 : num
temp = S(i).filename;
if strfind(temp, 'NE')
v = 1;
end
if strfind(temp, 'HA')
v = 2;
end
if strfind(temp, 'SA')
v = 3;
end
if strfind(temp, 'SU')
v = 4;
end
if strfind(temp, 'AN')
v = 5;
end
if strfind(temp, 'DI')
v = 6;
end
if strfind(temp, 'FE')
v = 7;
end
G = S(i).G;
data = [v G(:)'];
S(i).data = data;
end
save(fullfile(pwd, 'S.mat'),'S')

3 仿真结果

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_matlab代码_04

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_表情识别_05

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_表情识别_06

4 参考文献

[1]胡建国. 基于局部Gabor二值化特征的实时表情识别系统[J]. 信息化研究, 2015(3):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【表情识别】基于Gabor特征实现微表情识别系统含Matlab源码_matlab代码_07