发明内容
本发明要解决的技术问题是:目前缺乏对人类情感健康的自动监控方法和设备。
本发明涉及一种基于人脸图像的情感健康监控方法,其特征在于该方法包括以下步骤:
[1]自动采集用户的人脸图像
[2]构造人脸图像的特征向量
[3]利用人脸识别模型完成用户的身份验证,若身份验证不通过,则结束
[4]利用人脸情感分类模型预测用户的情感状态
[5]根据情感状态,判断用户情感的健康情况,完成情感健康预警
[6]将健康情况,人脸图像采集时间和健康预警信息发送到预先指定的设备,完成情感健康的监控。
其中人脸识别模型的获取过程包含以下步骤:
(a)采集N个人脸图像及其对应的身份类别
(b)构造每个人脸图像的特征向量
(c)构造训练数据,以人脸图像的特征向量为输入,其对应的身份类别为输出,构成训练样本集合
(d)采用训练样本集合,学习人脸识别模型
(e)以M倍交叉验证方式选择人脸识别模型的合适参数,进而获得对应参数的人脸识别模型。
其中人脸情感分类模型的获取过程包含以下步骤:
(a)采集N个人脸图像及其对应的情感类别
(b)构造每个人脸图像的特征向量
(c)构造训练数据,以人脸图像的特征向量为输入,其对应的情感类别为输出,构成训练样本集合
(d)采用训练样本集合,学习人脸情感分类模型
(e)以M倍交叉验证方式选择人脸情感分类模型的合适参数,进而获得对应参数的人脸情感分类模型。
本发明一种基于人脸图像的情感健康监控手机,其特征在于使用了本发明所述的方法,其特征在于手机包括:人脸情感训练样本数据库,人脸识别训练样本数据库,情感健康档案数据库。用户手机在用检测模块,手机摄像头控制模块,人脸图像采集模块,人脸图像特征向量构造模块,人脸识别模块,人脸情感分类模块,情感健康预警模块,预警信息发送模块,情感健康档案管理模块,人脸情感分类模型学习模块,人脸识别模型学习模块。其中用户手机在用检测模块的输出与手机摄像头控制模块的输入连接,手机摄像头控制模块的输出与人脸图像采集模块的输入连接,人脸图像采集模块的输出与人脸图像特征向量构造模块的输入连接,人脸图像特征向量构造模块的输出与人脸识别模块和人脸情感分类模块的输入连接,人脸识别模型学习模块的输出与人脸识别模块的输入连接,人脸识别模块和人脸情感分类模型学习模块的输出与人脸情感分类模块的输入连接,人脸情感分类模块的输出与情感健康预警模块的输入连接,情感健康预警模块的输出与预警信息发送模块的输入连接,预警信息发送模块的输出与情感健康档案管理模块的输入连接。其中人脸表情分类模型学习模块和人脸识别模型学习模块是离线独立运行的。
有益效果
与现有技术相比,本发明的一种基于人脸图像的情感健康监控方法及手机具有以下优点:
[1]在用户使用手机时,自动采集人脸图像,不需要用户特别关注,这样采集的人脸表情更自然,情感健康状态的评价更真实。
[2]仅使用日用手机就能对用户的情感健康状态监控,情感健康的监控更方便和易用。
[3]能主动让使用者随时了解其情感状态,从而防止忘记自己情感状态的变化,
耽误预防和治疗等带来的问题,同时能为医师提供辅助诊断的参考。
具体实施方式
本发明提出的种基于人脸图像的情感健康监控方法及手机,结合附图和实施例说明如下。
如图1所示,为一种基于人脸图像的情感健康监控方法的流程图,其特征在于该方法包括以下步骤:
[1]当用户在使用带有照相功能的设备例如智能手机时,自动采集用户的人脸图像,并以采集人脸图像时的时间为文件名将人脸图像保存为JPEG格式的图片文件。
[2]提取人脸图像的JPEG格式图片文件的图像特征,形成一个人脸图像的特征向量。
[3]采用支持向量机人脸识别模型对人脸图像的特征向量进行身份识别,当识别的身份不是情感健康的监控对象时,则结束。
[4]采用支持向量机情感分类模型对人脸图像的特征向量分类,分类的情感类别为愤怒,高兴,悲伤,惊讶,厌恶,恐惧和平静。
[5]根据情感类别判断用户情感的健康情况。若情感状态为愤怒,悲伤,厌恶,和恐惧之一,则情感属于不健康状态,否则属于正常情况。同时生成健康情况的预警信息。
[6]将健康情况,人脸图像采集时间,和健康预警信息发送到预先指定的手机,完成情感健康的监控。
其中支持向量机人脸识别模型的获取过程包含以下步骤:
(a)采集1000个人脸图像及其对应的身份类别
(b)构造每个人脸图像的特征向量
(c)构造训练数据,以人脸图像的特征向量为输入,其对应的身份类别为输出,构成训练样本集合
(d)采用训练样本集合,训练支持向量机,获得支持向量机人脸识别模型
(e)以10倍交叉验证方式选择支持向量机人脸识别模型的合适参数,进而获得对应参数的支持向量机人脸识别模型。
其中支持向量机情感分类模型的获取过程包含以下步骤:
(a)采集1000个人脸图像及其对应的情感类别
(b)构造每个人脸图像的特征向量
(c)构造训练数据,以人脸图像的特征向量为输入,其对应的情感类别为输出,构成训练样本集合
(d)采用训练样本集合,训练支持向量机,获得支持向量机情感分类模型
(e)以10倍交叉验证方式选择支持向量机情感分类模型的合适参数,进而获得对应参数的支持向量机情感分类模型。
本实施案例中,人脸识别和人脸情感分类中的相同步骤采用相同的方法实现,包括人脸检测,人脸特征向量构造,和支持向量机分类方法。实现技术采用Android OpenCV提供的API函数实现,Android OpenCV是计算机上OpenCV在Android手机上的移植版。
人脸图像的检测
本实施案例对人脸识别和人脸情感识别采用相同的人脸检测方法。首先是人脸图像的采集,通过摄像头等图像捕捉工具获取人脸的静态图像,然后完成图像预处理,包括图像的大小和灰度的归一化,头部姿态的矫正,和人脸图像的检测等人脸检测算法采用Viola-Jones的级联分类器算法,它是现在的一个比较优秀的人脸检测算法。这种算法使用基于Haar特征的级联分类器策略,可快速且有效地找到多种姿态和尺寸的人脸图像。在Android OpenCV上有一个该算法的实现。Android OpenCV是Intel开源计算机视觉库(Computer Version),由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。Android OpenCV拥有包括300多个C函数的跨平台的中、高层API。Android OpenCV对非商业应用和商业应用都是免费的。同时Android OpenCV 提供了对硬件的访问,可以直接访问摄像头,因而利用Android OpenCV编程实现人脸图像的采集和检测,从而获得人脸图像。包括两个步骤。第1步是图片预处理,从摄像头中获得一个帧(一张图片)后,先对这张图片进行一些预处理:将图片从RGB模式转为灰度图,然后进行灰度图直方图均衡化操作。第2步,检测并标记人脸目标,在Android OpenCV中,对于人脸检测的模型已经建立为一个XML文件,其中包含了上面提到的Haar特征的分类器的训练结果,本实施案例直接使用这个结果,将待检测的人脸图像和级联分类器模型一同传递给Android OpenCV的目标检测算法即得到一个检测到的人脸图像。
人脸图像的特征向量构造
本实施案例对人脸识别和人脸情感识别采用相同的人脸图像特征向量构造方法。提取人脸图像的特征有两类:第1类,先利用二维离散小波在不明显损失图像信息的基础上对表情图像进行变换,变换后的图像数据量大大减少,再利用离散于余弦变换变换提取代表原图像绝大部分能量的数据作为表情特征矢量。第2类,首先对人脸情感图像进行分割、消噪处理,然后对其作标准化处理,包括尺度归一化和灰度均衡化。对标准化处理后的图像使用固定像素的网格进一步分割,对每一个网格进行Gabor小波变换,取Gabor变换后的小波系数模的均值、方差作为该网格的情感特征向量。最后将两类特征向量串接为一个特征向量作为人脸图像的特征向量。
本实施案例利用Android OpenCV提供的多种API函数来构造人脸图像的特征向量。
人脸识别和人脸情感识别
人脸识别和人脸情感识别都面临相同的问题,例如数据中处理的类别较多,而每个类的样本则很少,因此本实施案例采用相同的识别方法-支持向量机(Support Yectcr Machine,SVM)。
支持向量机是近几年刚发展起来的一种分类方法,它基于结构风险最小化原则,具有良好的泛化能力。给定训练样本{(x1,y1),(x1,y1),...,(xN,yN)}集,其中
为输入向量,为对应的类别,SVM在特征空间中寻找能将两类样本正确分开的最优分界超平面。对于输入空间中的向量x,假如使用z=Φ(x)表示其在特征空间中对应的特征向量,则最优分界超平面表示为w·z+b=0。相应的决策方程为f(x)=sign(w·z+b)。在任何情况下,SVM并不要求知道映射φ。引入核函数k(·),特征空间中向量间的点积能在输入空间中通过核函数表示为
训练SVM等价于求解如下最优化问题:
这是正定的二次规划问题,目标方程由拉格朗日乘子向量a决定。一旦向量a已知,决策方程中的权重向量w和阈值b能够通过KKT条件容易地计算出来。KKT条件是上述二次规划问题的充分必要条件。定义
则KKT条件为
其中ai不为零对应的样本就是支持向量,它们通常只是全体样本中的少部分。计算出支持向量后,便得到决策函数
其中S为支持向量集合。决策函数中的常用核函数有:
多项式核
径向基核函数(RBF):
Sigmoid核函数 等。
本实施案例选择径向基核函数RBF作为核函数,以预测性能为准则,以10倍交叉验证方式选择SVM的合适参数,进而获得对应的支持向量机分类模型。
本实施案例利用Android OpenCV提供的SVM分类器完成人脸识别和人脸情感识别。
如图2所示,为一种基于人脸图像的情感健康监控手机实施案例的结构图,其特征在于,所述的手机包括:一个人脸识别训练样本数据库211,一个人脸情感训练样本数据库212,一个情感健康档案数据库213,用以储存推荐的信息及对应情感状态的档案数据,其中每个记录包含推荐的信息内容,人脸表情的特征向 量,人脸表情对应的情感状态,和时间。
手机还包括模块:用户手机在用检测模块200,手机摄像头控制模块201,人脸图像采集模块202,人脸图像特征向量构造模块203,人脸识别模型的学习模块204,人脸识别模块205,人脸情感分类模型学习模块206,人脸情感分类模块207,情感健康预警模块208,预警信息发送模块209,情感健康档案管理模块210。其中用户手机在用检测模块200的输出与手机摄像头控制模块201的输入连接,手机摄像头控制模块201的输出与人脸图像采集模块202的输入连接,人脸图像采集模块202的输出与人脸图像特征向量构造模块203的输入连接,人脸图像特征向量构造模块203的输出与人脸识别模块205和人脸情感分类模块207的输入连接,人脸识别模型学习模块204的输出与人脸识别模块205的输入连接,人脸识别模块205和人脸情感分类模型学习模块206的输出与人脸情感分类模块207的输入连接,人脸情感分类模块207的输出与情感健康预警模块208的输入连接,情感健康预警模块208的输出与预警信息发送模块209的输入连接,预警信息发送模块209的输出与情感健康档案管理模块210的输入连接。其中人脸识别模型的学习模块204和人脸情感分类模型的学习模块206是离线独立在计算机上运行,然后将两个模块的输出下载到手机上的。
1)用户手机在用检测模块200,检测用户是否在使用手机,为采集其人脸图像做准备
2)手机摄像头控制模块201,通过控制手机的照相机对人脸照相,采集人脸图像。
3)人脸图像采集模块202,对手机摄像头控制模块201采集的人脸图像进行预处理,去除背景,获得预处理后的人脸图像。
4)人脸图像的特征向量构造模块203,负责将检测的人脸图像抽取特征,转化为人脸图像的特征向量表示。
5)人脸识别模型学习模块204,采用人脸识别训练样本数据库211中的数据训练支持向量机分类器,获得人脸识别的支持向量机分类模型。
6)人脸识别模块205,采用人脸识别的支持向量机分类模型对人脸图像分类,获得身份识别,以便验证监控对象的身份,确保采集的人脸图像与情感健康监控的对象是一致的。
7)人脸情感分类模型学习模块206,通过人脸表情训练样本数据库212中的学习样本集,训练支持向量机分类器,获得人脸情感支持向量机分类模型。
8)人脸情感分类模块207,采用人脸情感支持向量机分类模型对人脸图像的特征向量进行情感分类,获得情感类别。
9)情感健康预警模块208,根据情感状态,判断用户情感的健康情况。若情感状态为愤怒,悲伤,厌恶,和恐惧之一,则情感属于不健康状态,否则属于正常情况。同时生成健康情况的预警信息。
10)预警信息发送模块209,将健康情况,采集人脸图像时的时间和针对健康情况的预警信息发送到预先指定的手机,完成情感健康的监控。
11)情感健康档案管理模块210,将情感的健康状态,预警信息,时间等信息保存到情感健康档案数据库213,并支持用户查询情感健康档案数据库213的历史记录。
图2所述的实施案例中的手机采用Android智能手机。Android平台提供了应用程序框架,提供了传感器、语音识别、桌面组件开发、Android游戏引擎设计、Android应用优化等各类开发工具,提供了对音频、视频和图片等多媒体的支持,提供了用于结构化数据存储的关系型数据库SQLite3。采用Android OpenCV实现人脸图像的采集、人脸图像的处理、人脸识别、人脸情感分类等,采用Android的SQLite3管理数据库。
如图3所示,为另一种基于人脸图像的情感健康监控手机实施案例的结构图,其特征在于,所述的手机安装了手机客户端,负责人脸图像的采集。模块包括用户手机在用检测模块300,手机摄像头控制模块301,人脸图像采集模块302,其中用户手机在用检测模块300的输出与手机摄像头控制模块301的输入连接,手机摄像头控制模块301的输出与人脸图像采集模块302的输入连接,人脸图像采集模块302的输出与服务器上的人脸图像特征向量构造模块303的输入连接。服务器则对接收到的人脸图像进行处理。服务器包括:一个人脸识别训练样本数据库311,一个人脸情感训练样本数据库312,一个情感健康档案数据库313。服务器还包括模块:人脸图像特征向量构造模块303,人脸识别模型的学习模块304,人脸识别模块305,人脸情感分类模型的学习模块306,人脸情感分类模块307,情感健康预警模块308,预警信息发送模块309,情感健康档案管理模块310。其中,人脸图像特征向量构造模块303的输出与人脸识别模块305和人脸情感分类模块307的输入连接,人脸识别模型学习模块304的输出与人脸识别模块305的输入连接,人脸识别模块305和人脸情感分类模型学习模块306的输出与人脸情感分类模块307的输入连接,人脸情感分类模块307的输出与情感健康预警模块308的输入连接,情感健康预警模块308的输出与预警信息发送模块309的输入连接,预警信息发送模块309的输出与情感健康档案管理模块310的输入连接。其中人脸识别模型的学习模块304和人脸情感分类模型的学习模块 306是离线独立在服务器上运行的。
图3所述的实施案例中的手机采用Android智能手机,采用Android OpenCV实现人脸图像的采集,实施案例中的服务器则采用J2EE平台,采用OpenCV编写程序实现人脸图像的处理、人脸识别、人脸情感分类等,采用MYSQL数据库实现数据库管理。
本领域的普通技术人员应当理解,本发明的技术方案可以进行修改,变形或等同变换,而不脱离本发明技术方案的本质和范围,均覆盖在本发明的权利要求范围之中。