发明内容
针对上述问题,本发明提供一种基于人脸图像的血压预测方法及手机,能够携带方便,测量自觉进行,能够让使用者容易并快速了解其血压趋势的变化,有助于使用者自行调整其生活习性,并提供这类信息给医师作为诊断的辅助参考,帮助恢复到正常的血压值。
为实现上述目的,本发明采取如下技术方案:
由于血压能从人脸的变化中反映出来,例如大部分高血压患者都出现面红升火的表现,并常伴有情绪不稳,容易激动症状,目前已有通过人脸来预测情感的方法,那么本发明采用人脸图像来预测血压,作为高血压的预警机制,提醒患者迅速到医院就诊断。
本发明为一种基于人脸图像的血压预测方法,其特征在于该方法包括以下步骤:
1)采集人脸图像
2)构造人脸图像特征向量
3)利用血压回归预测模型预测该人脸图像对应的血压值
其中血压回归预测模型是通过机器学习获得的,包括以下步骤
1)采集N个人脸图像及对应的血压值
2)构造每个人脸图像的特征向量
3)构造训练数据,以人脸图像特征向量为输入,其对应的血压值为输出,构成训练样本
4)基于训练样本集合,学习最小二乘支持向量机血压预测模型
5)以M倍交叉验证方式选择最小二乘支持向量机血压预测模型的最佳参数,进而获得对应的最小二乘支持向量机血压预测模型。
本发明还涉及一种基于人脸图像的血压预测手机,其特征在于,所述的手机包括:一个血压标准数据库;一个训练样本数据库;一个血压档案数据库。手机还包含:
手机摄像头控制模块,人脸图像采集模块,人脸图像的特征向量构造模块,血压回归预测模块,血压显示模块,短信发送模块,异常血压预警模块,血压档案管理模块,血压回归预测模型的学习模块。其中手机摄像头控制模块的输出与人脸图像采集模块的输入连接;人脸图像采集模块的输出与人脸图像的特征向量构造模块的输入连接;人脸图像的特征向量构造模块的输出与血压回归预测模块的输入连接;血压回归预测模型学习模块的输出与血压回归预测模块的输入连接;血压回归预测模块的输出与异常血压预警模块的输入连接;异常血压预警模块的输出与血压显示模块的输入连接;血压显示模块的输出与短信发送模块的输入连接;短信发送模块的输出与血压档案管理模块的输入连接。
有益效果
本发明由于采用如上的技术方案,具有以下优点:
1)方法预测精度好。
2)手机通过采集人脸图像来预测血压,简单易用。
3)因为经常使用手机,能够在用户使用手机时自动采集人脸图像,预测血压,并就异常血压报警,从而防止忘记测量血压,耽误治疗等带来的问题。
4)手机能将血压的预警信息自动发布到用户和指定手机的短信箱,这样能提醒用户随时了解用户血压情况,能提供信息给医师作为诊断的辅助参考,不需要用户去独立运行程序和查看结果。
具体实施方式
本发明提出的一种基于人脸图像的血压预测方法,结合附图和实施例说明如下。如图1所示,为一种基于人脸图像的血压预测方法,其特征在于该方法包括以下步骤:
[1]人脸图像的采集与检测
[2]抽取人脸图像特征,形成人脸图像的特征向量
[3]利用血压回归预测模型预测人脸图像对应的血压值
其中血压回归预测模型是通过机器学习获得的,包括以下步骤
[1]采集1000个人脸图像及对应的血压值
[2]抽取每个人脸图像的特征向量
[3]构造训练数据,以人脸图像特征向量为输入,其对应的血压值为输出,构成训练样本集合
[4]利用训练样本集合,训练最小二乘支持向量机,获得血压回归预测模型
[5]以10倍交叉验证方式选择最小二乘支持向量机的合适参数,进而获得对应的最小二乘支持向量机血压回归预测模型
本实施案例中,人脸图像处理采用Android OpenCV提供的API函数实现,AndroidOpenCV是OpenCV在Android手机上的移植版。血压预测模型采用最小二乘支持向量机。
人脸采集与检测方法
首先是人脸图像的采集,通过摄像头等图像捕捉工具获取人脸的静态图像,然后完成图像预处理,包括图像的大小和灰度的归一化,头部姿态的矫正,和人脸图像的检测等
人脸检测算法采用Viola-Jones的级联分类器算法,它是现在的一个比较优秀的人脸检测算法。这种算法使用基于Haar特征的级联分类器策略,可快速且有效地找到多种姿态和尺寸的人脸图像。在OpenCV上有一个该算法的实现。OpenCV是Intel开源计算机视觉库(Computer Version),由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括300多个C函数的跨平台的中、高层API。OpenCV对非商业应用和商业应用都是免费的。同时OpenCV提供了对硬件的访问,可以直接访问摄像头,因而我们利用OpenCV编程实现人脸图像的采集和检测,从而获得人脸图像。包括两个步骤。第1步是图片预处理,从摄像头中获得一个帧(一张图片)后,先对这张图片进行一些预处理:将图片从RGB模式转为灰度图,然后进行灰度图直方图均衡化操作,这步在OpenCV中的实现非常简单。第2步,检测并标记人脸目标,在OpenCV中,对于人脸检测的模型已经建立为一个XML文件,其中包含了上面提到的Haar特征的分类器的训练结果,我们直接使用这个结果,将待检测的人脸图像和级联分类器模型一同传递给OpenCV的目标检测算法即得到一个检测到的人脸图像。
人脸图像的特征向量构造方法
常用图像特征有颜色特征、纹理特征、形状特征、空间关系特征等。本实施案例采用颜色特征。国际标准MPEG-7中建议了一种描述符颜色布局,它表达了颜色的空间分布信息。在颜色布局描述符中,对分割好的8×8的图像取每一块图像的颜色平均值,形成一个颜色平均值矩阵,然后对其用二维离散余弦进行变换,取低频分量作为颜色特征。本实施案例具体提取方法如下:
[1]将整幅图像分成8×8块,计算每一块中所有象素RGB三个颜色通道的颜色平均值,并以此作为该块的代表颜色(主颜色)。
[2]将各块的颜色平均值进行离散余弦变换(DCT),得到DCT系数矩阵。DCT是一种离散变换,是国际静止图像压缩标准JPEG的基础。由于大多数图像 的高频分量较小,相应于图像高频分量的系数经常为零,加上人眼对高频成分的失真不太敏感,所以只利用部分DCT系数作为特征向量。
[3]对DCT系数矩阵进行之字形扫描和量化,得到DCT系数。
[4]对于R、G、B三个通道,分别从DCT系数中取出4个低频分量,形成12个参数,共同构成该图像的颜色特征向量。最后将颜色特征向量作为人脸图像的特征向量。
本实施案例采用OpenCV提供的API函数来实现图像特征向量的构造。
血压回归预测方法
本实施案例的血压回归预测模型采用最小二乘支持向量机(Least Squares Support Vector Machine,LSSVM)。支持向量机(Support Vector Machine,SVM)是近几年刚发展起来的一种预测方法.它基于结构风险最小化原则,具有良好的泛化能力。最小二乘支持向量机是标准SVM的一个变形,它将SVM求解二次规划问题转换成求解线性方程组,避免了不敏感损失函数,大大降低了计算的复杂性,求解速度大大加快,而且预测精度较好,这是我们采用LSSVM的原因。
支持向量机属于统计学习方法,是一种新的,很有潜力的数据分类和回归工具。我们首先解决线性回归问题。假定已知一组训练集(x1,y1),…,(xl,yl),x∈Rn,y∈R,确定一个基于训练集的函数:
f(x)=w·x+b
来逼近未知的回归函数。把回归估计问题定义为对一个损失函数进行风险最小化的问题,利用SVM进行风险最小化时,最优的回归函数是在一定的约束条件下最小化目标函数:
其中:c是惩罚参数,它决定了经验误差和模型复杂度之间的一种折中;是松弛变量。常采用ε不敏感损失函数为:
目标函数的最小化约束条件为:
最小二乘支持向量机利用SVM构造了下面的最小化目标函数:
式中,γ为正则化参数,同时将SVM的不等式约束条件转化为等式约束条件:
对最小二乘支持向量机问题,Lagrange函数定义为:
式中,αi为Lagrange乘子。通过分别求L(w,b,e,a)对w、b、e、α的偏微分,可以Lagrange函数的最优条件
我们解这个线性方程组求得b和α,进而求得LSSVM的回归预测函数为
对于非线性问题,可以通过非线性变换将输入向量映射到高维特征空间,转化为类似的线性回归问题加以解决,方法是采用核函数,使得LSSVM的回归预测函数变为:
常用的核函数有:
多项式核k(xi,xj)=(xi·xj+1)d
径向基核函数(RBF):k(xi,xj)=exp{-||xi-xj||2/2α2}
Sigmoid核函数k(xi,xj)=tanh[b(xi·xj)+c]等
本实施案例选择径向基核函数RBF作为核函数。采用径向基核函数的最小二乘支持向量机回归预测函数的主要参数是正则化参数γ和核函数宽度Gamma,本实施案例以预测性能为准则,以10倍交叉验证方式选择合适的γ和Gamma的组合,进而获得对应的最小二乘支持向量机血压预测模型。
本发明还提出一种基于人脸图像的血压预测手机,结合附图和实施例说明如下。如图3所示,为一种基于人脸图像的血压预测手机,其特征在于,所述的手机包括:
血压预测学习样本数据库310,用以储存多个人脸图像的特征向量和对应的血压数据;标准血压数据库311,储有标准血压范围;使用者血压档案数据库312,用以储存血压档案数据,其中每一血压数据包含人脸的特征向量,血压值,和时间。
手机还包含:手机摄像头控制模块301,人脸图像采集与检测模块302,人脸图像的特征向量构造模块303,血压回归预测模块305,血压回归预测模型学习模块304,异常血压预警模块306,血压显示模块307,短信发送模块308,血压档案管理模块309。其中手机摄像头控制模块301的输出与人脸图像采集与检测模块302的输入连接;人脸图像采集与检测模块302的输出与人脸图像的特征向量构造模块303的输入连接;人脸图像的特征向量构造模块303的输出与血压回归预测模块305的输入连接;血压回归预测模型学习模块304的输出与血压回归预测模块305的输入连接;血压回归预测模块305的输出与异常血压预警模块306的输入相连;异常血压预警模块306的输出与血压显示模块307的输入连接;血压显示模块307的输出与短信发送模块308的输入连接;短信发送模块308的输出与血压档案管理模块309的输入连接。
1)手机摄像头控制模块301,通过控制手机的照相机对人脸照相,获得采集的人脸图像。
2)人脸图像采集与检测模块302,对手机摄像头控制模块301采集的人脸图像进行预处理,去除背景,获得人脸图像。
3)人脸图像的特征向量构造模块303,负责将检测的人脸图像抽取特征,转化为人脸图像的特征向量表示。
4)血压回归预测模块305,采用血压回归预测模型对人脸图像的特征向量进行血压预测,获得血压的预测值。
5)血压回归预测模型学习模块304,通过血压预测学习样本库310中的学习样本集,训练最小二乘支持向量机预测模型,获得血压回归预测模型。
6)异常血压预警模块306,根据预测的血压值,参照标准血压数据库311,对超过正常血压的用户发出警告,并选择合适的推荐内容。推荐内容来源事先保存在标准血压数据库中,由领域专家针对不同的血压区间预先准备合适的推荐内容,例如判定用户的血压为极度高血压的,推荐内容为用户时到医院就诊。
7)血压显示模块307,将预测的血压值及推荐内容,以及以往的血压曲线,显示在手机屏上。
8)短信发送模块308,将预测的血压值及推荐内容,直接写入到用户手机的短信箱,并发送到预先设置的亲友手机,以便用户阅读。
9)血压档案管理模块309,将预测的血压值及推荐内容,预测血压的日期等信 息保存到血压档案数据库312,并能查询血压档案数据库312的历史记录。
本实施案例中的手机采用Android智能手机。Android平台提供了应用程序框架,提供了SQL数据库用于结构化数据存储,提供了对音频、视频和图片等媒体的支持,可采集和保存人脸图像及特征向量数据,采用Android的SDK来编写采集人脸图像的照相程序,用SQL数据库来编写血压档案管理程序。人脸图像处理则采用Android OpenCV提供的API函数实现,Android OpenCV是OpenCV在Android手机上的移植版。
本领域的普通技术人员应当理解,本发明的技术方案可以进行修改,变形或等同变换,而不脱离本发明技术方案的本质和范围,均覆盖在本发明的权利要求范围之中。