基于脉搏信号的身份识别系统
2022-05-22张文涛丑永新
张文涛,丑永新*,李 鑫,丁 凯,杨 苗,2
(1.常熟理工学院 电气与自动化工程学院, 江苏 苏州 215500;2.兰州理工大学 电气工程与信息工程学院,甘肃 兰州 730050)
0 引言
身份识别作为一种信息安全技术,已经广泛地应用到安防、支付、社交等多个领域。依据密码、证件、钥匙等传统身份识别技术存在易被复制、窃取或者遗忘等缺陷,已不能满足信息安全的应用需求。人体生物特征具有唯一性,指纹[1-3]、人脸[4-6]、虹膜等生物特征已广泛用于身份识别。然而,人体指纹可以被复制,人脸随着年龄增长会不断变化,虹膜需要近距离采集,这些问题在身份识别应用中日益凸显,识别精度有待提高。
心脏收缩与舒展的驱动下,血液在心血管系统中往复循环,在人体皮肤的浅表脉管处(如指端、耳垂、桡动脉等处)获取的脉搏信号,可以间接反映心血管系统的运行规律。人体心血管系统结构具有唯一性,其运行规律具有很强的稳定性,因此,脉搏信号可用于身份识别。
到目前为止,已有学者尝试研究基于脉搏信号的身份识别方法。有学者从脉搏信号时域波形中提取主波间期、波谷、重搏波和波峰等特征进行身份识别[7];有学者从脉搏主波间期的一阶和二阶导数中提取特征点,基于KNN等方法进行身份识别[8];也有学者直接对分割后的脉搏波通过径向基函数网络、贝叶斯分类器、卷积神经网络等机器学习算法分类,实现身份识别[9-11],这些研究成果表明脉搏信号可用于身份识别。然而,从脉搏信号时域波形和主波间期中提取的特征主观性较强,泛化性能差,直接基于脉搏波进行智能识别的算法运算量大,且准确性有待提高。近年来,有学者提出脉搏信号解析建模技术,对人体脉搏信号变化进行量化分析,已广泛用于性别[12]、年龄[13]和心血管疾病[14]识别等领域。成硕等人提出一种基于脉搏信号解析建模的身份识别技术[15],为本研究工作的开展奠定了理论基础和科学依据。
因此,本研究提出一种基于脉搏信号的身份识别系统设计方法。系统由上位机和下位机组成,下位机进行脉搏信号的采集和无线发送;上位机实现脉搏信号的处理和分析,并得出识别结果。同时,为了验证系统的可靠性,设计试验对所研制系统的准确性进行评估。
1 系统方案设计及硬件实现
1.1 身份识别系统总体设计
所研制系统的总体设计如图1所示。系统由上位机和下位机组成,上下位机之间通过WiFi连接,进行数据通信和无线传输。下位机以STM32单片机为核心,实现脉搏信号的采集、打包和无线远传;在PC端基于LabVIEW软件开发人机交互界面,对接收的脉搏信号进行接收、滤波、分割、解析建模和身份智能识别,并给出识别结果。
图1 系统总体设计Fig.1 Scheme of system
1.2 下位机系统设计与实现
下位机由脉搏传感器、信号采集模块、无线通信模块和电源模块组成。其中,脉搏传感器获取模拟脉搏信号,信号采集模块实现模拟脉搏信号的AD转换和数据打包,由无线通信模块将打包后的数据发送至上位机。
1.2.1 脉搏传感器
采用医用透射式光电容积脉搏传感器HKG-07B拾取指尖处脉搏信号。该传感器由光源和光电变换器组成,光源发射的光线会透过指尖,由于脉搏的搏动,使得光的透光率发生变化,光电变换器将这一变化转换为电压的变化并将其放大后输出,传感器实物图及接口说明如图2所示。
图2 HKG-07B及接口说明Fig.2 HKG-07B ang its interface
1.2.2 信号采集模块
以STM32单片机为核心搭建信号采集模块,如图3所示,为其最小系统电路图。STM32单片机内部集成了3个μs级的A/D转换器(16通道)和2通道12位的D/A转换器,将脉搏传感器的输出端与单片机的ADC_IN9(19脚)相连。在单片机中,采用定时中断的方式对模拟脉搏信号进行采样,采样频率为500 Hz,得到数字脉搏信号。
图3 STM32单片机最小系统电路图Fig.3 Minimum system of STM32
在得到数字脉搏信号后,在单片机中对其进行打包,送往无线通信模块,无线传输模块将数据无线传输至上位机。为了保证上位机接收到的脉搏数据正确性,下位机在发送数据时以帧头、脉搏数据、帧尾的固定格式发送,上位机接收到数据后,需要对数据进行解析,通过这种方式可以有效提高数据传输的稳定性,数据帧格式如表1所示。
表1 数据帧格式Tab.1 Data format for frames
1.2.3 无线通信模块
为了提高系统的便携性,采用无线的方式实现上下位机的通信,选择ESP8266 WiFi模块实现无线通信。该模块与单片机的连接如图4所示,将该模块的TX和RX引脚与STM32单片机的21和22脚相连,单片机可通过对ESP8266串口发送AT指令来配置WiFi、连接服务器和数据发送。
图4 ESP8266模块电路图Fig.4 Circuit of ESP8266 module
首先,配置ESP8266的WiFi模式为STA模式并连接路由器;然后,配置为单路连接模式并开启WiFi透传,连接TCP服务器并进入透传模式;最后,STM32单片机将打包的数据通过DMA发送到串口,由ESP8266 WiFi模块发送至上位机。
1.2.4 电源模块
电源模块采用5 V、1 A可充电锂电池。由于STM32单片机和HKG-07B传感器需要3.3 V电压供电,所以添加了稳压电路的设计,稳压电路采用SPX3819稳压芯片,将锂电池输入的5 V电压转为3.3 V的稳定电压。为了消除在电流传递途中因布线等问题造成的电磁干扰,对稳压后的电路另外添加去耦电容电路,可有效消除在电流传递过程中产生的高频电磁干扰,同时还能起到蓄能的作用,削弱因电流变化导致的对采集电路的干扰。
稳压电路如图5所示。电流从5V处输入,经过C1和C2两个电容对输入的电流进行滤波,使输入更加平滑,经过SPX3819稳压芯片后,芯片输出端为3.3 V的稳定电压,同时在输出端并联C3和C4两个电容以确保器件的稳定。
图5 稳压电路图Fig.5 Circuit of Voltage Regulator
去耦电容电路如图6所示。C8、C9、C10和C11并联后接在稳压芯片输出端3.3 V和GND两端,可有效消除在电流传递过程中产生的高频电磁干扰。
图6 去耦电容电路图Fig.6 Circuit of decoupling capacitor
1.2.5 下位机实物
下位机实物如图7所示,由可充电锂电池、HKG-07B脉搏传感器、ESP8266 WiFi模块和STM32电路板构成。预留出锂电池DC插头、传感器接口、WiFi模块接口和程序下载接口。锂电池可通过插入DC插头给下位机系统供电,HKG-07B脉搏传感器通过3.5 mm的耳机座从单片机中获取电能,同时输出采集到的脉搏信号,使用J-Link实现程序的下载与调试。
(a) 下位机PCB电路
(b) 下位机整体实物图
2 上位机软件设计与实现
2.1 基于LabVIEW的上位机人机交互界面
在PC端基于LabVIEW软件开发了人机交互界面,如图8所示。该界面主要包括:信息提示区、系统控制区、数据处理结果显示区、身份识别结果显示区。
图8 上位机人机交互界面Fig.8 Human-computer interface in master module
信息提示区位于界面中间区域,用黄色标识。显示系统当前所处的状态,包括“TCP连接成功”“数据采集”“脉搏波分割”“解析建模”“识别成功/失败”5种状态。
系统控制区包含“开始采集”“存储数据”“识别纠正”“退出系统”4个按键。其中,在系统学习阶段,系统的识别率较低,设置了“识别纠正”功能。当识别错误后,弹出图9所示的信息输入界面,重新输入采集对象信息,系统会根据采集对象信息整合数据,重新识别。
图9 信息输入界面Fig.9 Information input interface
数据处理结果显示区主要显示系统运行中数据的处理过程,让数据可视化。该区域主要包括4个数据显示图:原始的脉搏信号、滤波后的脉搏信号、信号分割的数据和解析建模的脉搏波。
身份识别结果显示区主要显示身份识别的结果,包含识别者信息、标签和识别率三部分,识别率在70%以上为识别成功。
2.2 上位机身份识别算法设计与实现
上位机实现基于脉搏信号的身份识别,主要流程如图10所示。首先,对WiFi模块发送的数据进行接收和解析。然后,对脉搏信号进行滤波、脉搏波分割、模型求解和智能识别,并给出识别结果。
图10 身份识别主流程图Fig.10 Main flow chart of identityauthentication
2.2.1 脉搏信号滤波
接收到的脉搏信号中,含有基线漂移、工频干扰和肌电干扰。设计低通滤波器滤除肌电干扰,设计陷波器滤除基线漂移和工频干扰。低通滤波器的传递函数为:
(1)
式中,M=fs/f0,n为滤波器的阶数,f0为低通滤波器的截止频率。本系统的采样频率为500 Hz,经过试验,n=1,f0=60 Hz,即M=500/60≈8时,滤波效果最佳。
陷波滤波器的传递函数为:
(2)
式中,Q表示滤波器的增益记,R为滤波器传递函数的分子阶数,P为滤波器传递函数的分母阶数,n为滤波器的阶数。M=fs/f0,Q=R/P,f0表示带阻滤波器的第一个截止频率。由于采样频率为500 Hz,经过试验测得到当f0=50,P=10,Q=32,R=320,n=2时,系统的滤波效果最佳。
本系统使用MathScript节点与自带的IIR滤波器实现脉搏信号的低通滤波器和陷波器,如图11所示。
图11 滤波器的编程实现Fig.11 Filter programmingin Lab VIEW
2.2.2 脉搏波分割
心脏收缩导致的波称为脉搏信号的主波,而心脏舒张产生脉搏信号的降支,直至达到最低点,称为波谷,该点也被定义为脉搏波的起点。主波为脉搏波中最突出的波,容易检测,因此,寻找到两个主波的位置,然后求出两波峰的最小值点便是波谷点。脉搏波分割流程如图12所示。首先,将存储的脉搏数据读取出来,求取该数据的最大值和平均值,将最大值与平均值之和的0.3倍作为最终的阈值。然后,将数据中大于阈值的点置1,将小于阈值的点置0,得到一个新的数组X,再用读取的原数据与X点乘就得到了大于阈值的曲线。对数组X进行差分,值为-1的点便是大于阈值曲线的起点和终点,求出两点间的最大值点就是P波的峰值点。
图12 脉搏波分割流程Fig.12 Pulse wave segmentation process
2.2.3 脉搏信号建模与特征提取
脉搏信号建模与特征提取的流程如图13所示。首先,根据分割得到的波谷计算出脉搏主波间期PPI,PPI(i)表示第i个脉搏波的宽度,BG则是读取的波谷点位置。计算公式为:
图13 脉搏信号建模与特征提取流程图Fig.13 Pulse signal modeling and feature extraction flowchart
PPI(i)=BG(i+1)-BG(i)。
(3)
然后,对脉搏波进行归一化,降低幅值差异的影响。采样了Min-Max归一化方法,将数据统一缩放到区间[0,1]上。Min-Max归一化公式如下:
(4)
在此基础上,使用“spline”三次样条插值归一化的方法,将所有的脉搏波通过插值的方式将每个脉搏波的长度固定为1 000个点,来消除脉搏宽度的影响。
在对脉搏波进行解析建模之前,计算脉搏波基线的公式为:
(5)
式中,yi(1)表示第i个脉搏波的起点,ki表示第1个脉搏波基线斜率,bi为第i个脉搏波的纵截波,yi(PPI(i))表示第i个脉搏波的终点,PPI(i)表示第i个脉搏波的宽度,xit表示第i个时间点。
从脉搏波中减去基线,并采用非线性最小二乘法求解三高斯模型的参数[13],将得到9个特征值,加上前面求解的PPI和脉搏基线函数,一共获得12个特征值,特征点集如下:
(6)
P=[PPI,K,B,A1,B1,C1,A2,B2,C2,A3,B3,C3]。
(7)
2.2.4 基于脉搏信号的身份识别
对于建模得到的特征向量集,采用随机森林法以采集对象为单位进行身份智能识别。随机森林采用随机的方式来创建,其包含多个决策树的集成分类器。随机森林的核心思想可以看做是两个关键词,一个是“随机”,一个是“森林”。本采用Matlab自带的 ‘randomforest-matlab’工具箱设计分类器,其中用于构建随机森林分类器训练的函数为:model_RF = classRF_train(P_train,T_train,ntree);函数中参数P_train表示训练集的输入样本矩阵,T_train表示为训练集的输出样本向量,ntree为随机森林决策树的个数。
对训练好分类器进行测试的函数为:Results=classRF_predict(P_test,model_RF);函数的参数中P_test表示待预测样本的输入矩阵,model_RF为创建好的随机森林分类器。在LabVIEW软件,采用Matlab Script节点内嵌Matlab程序实现身份识别。
3 系统准确性测试
为了评估系统身份识别的准确性,在实验室招募20名采集对象进行系统测试。每名同学采集90 s的脉搏数据,并对其进行标签分配,第一名对象标签是1,最后一个的标签则是20,以此类推,标签与提取的特征建立对应关系。每个采集对象的识别概率如表2所示,可以看出,最高的是10号,概率为95.89%;最低的是13号,概率为32.74%(识别失败)。大多数的测试者都能成功识别身份,以70%作为判别识别结果成功与否的阈值,则只有一名采集对象没有识别,身份识别的准确率为19/20=95%。
表2 试验结果Tab.2 Experimental Results
4 结论
脉搏信号含有人体心血管系统丰富的生理和病理信息,不同个体心血管系统的特异性使得脉搏信号可用于身份识别。本文设计了一种基于脉搏信号的身份识别系统,该系统可采集脉搏信号,并对脉搏信号采用解析建模的方法进行量化分析,最后通过随机森林的方法实现身份智能识别。实验结果取得了较高的准确率,但是多数对象的识别概率较低,这是由于采集对象较少和脉搏信号采样长度过短导致的。未来,将招募更多实验对象,建立数据库,对所提出的系统进行训练,提高准确率。