基于Transformer的非接触式心率测量方法转让专利

申请号 : CN202110960664.2

文献号 : CN113408508B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 葛国敬朱贵波王金桥

申请人 : 中国科学院自动化研究所

摘要 :

本发明机器视觉、数据识别领域,具体涉及了一种基于Transformer的非接触式心率测量方法、系统及设备,旨在解决现有的对人脸心率测试中测量结果精度低、计算成本高的问题。本发明包括:获取设定时间段内包含人脸信息的待测视频帧序列;基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取设定时间段内的心率序列。本发明提高现有技术中对人脸心率测试的测量结果的精度,并降低计算成本。

权利要求 :

1.一种基于Transformer的非接触式心率测量方法,该方法包括以下步骤:步骤S10,获取设定时间段内包含人脸信息的待测视频帧序列;

步骤S20,基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;

步骤S30,对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取设定时间段内的心率序列;

其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;

所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;

所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;

所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构建;

所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;

所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同;

“对所述人脸感兴趣区域图像序列的预处理”其方法为:基于所述人脸感兴趣区域图像序列,按时间顺序均匀采集F张图像作为待处理采样帧;

“通过训练好的端到端Transformer模型获取所述设定时间段内的心率序列”,其方法为:

步骤S31,对F张所述待处理采样帧进行预处理,获得F个嵌入式向量,包括:将所述待处理采样帧分为F×N个大小为P×P的采样块,其中,每张待处理采样帧对应N个采样块;

将每个采样块拉成一个向量获得待处理向量,基于待处理向量,通过线性映射获得待处理嵌入式向量;

将对应于同一张待处理采样帧的待处理嵌入式向量进行堆叠,获得F个嵌入式向量;

步骤S32,基于所述嵌入式向量,通过空间Transformer模块获取F个第一待处理输出向量;

步骤S33,基于所述第一待处理输出向量,通过位置编码、堆叠获得第一输出向量;所述第一输出向量为F×D的矩阵,其中D为空间Transformer模块输出的维度;

步骤S34,基于所述第一输出向量,通过时间Transformer模块获取第二输出向量;

步骤S35;基于所述第二输出向量,通过全连接层,获得设定时间段内的心率序列。

2.根据权利要求1所述的基于Transformer的非接触式心率测量方法,其特征在于,所述多头注意力层的每个头所采用的注意力机制为,将多头注意力子模块内的归一化层的输出与权重矩阵相乘得到q、k、v;

其中, 表示第 个多头注意力子模块的输入, 表示多头注意力子模块内的归一化层所作的层归一化操作, 表示第 个多头注意力子模块的第 个头; 表示权重矩阵;

将q与k点积计算,对点积计算所得的结果依次经过激活函数层和Dropout层后作为系数与v相乘;

对相乘所得的结果经过线性层和归一化层后进行输出。

3.根据权利要求1所述的基于Transformer的非接触式心率测量方法,其特征在于,所述训练好的端到端Transformer模型,其训练方法为:步骤A10,获取训练视频帧序列,基于训练视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;将训练视频帧序列所对应的人脸感兴趣区域图像序列及其标准心率序列作为训练样本,构建训练样本集;

步骤A20,对所述训练样本集中的人脸感兴趣区域图像序列进行预处理,预处理后输入至端到端Transformer模型中,得到预测的设定时间段内的心率序列;

步骤A30,基于端到端Transformer模型输出的设定时间段内的心率序列、标准心率序列,计算损失值,并调整所述端到端Transformer模型参数;

步骤A40,循环执行步骤A20‑A30,直至得到训练好的端到端Transformer模型。

4.根据权利要求3所述的基于Transformer的非接触式心率测量方法,其特征在于,所述训练好的端到端Transformer模型在训练过程中,所采用的损失函数为 ;

其中,γ为权重系数, 为总损失值, 为时域损失, 为频域损失,X为端到端Transformer模型输出的设定时间段内的心率序列,Y为设定时间段内的标准心率序列,T为待测视频帧序列所对应的视频信号的长度,  为基于端到端Transformer模型输出的设定时间段内的心率序列所计算得到的功率谱密度, 为基于设定时间段内的标准心率序列所计算得到的功率谱密度,CE为交叉熵损失。

5.根据权利要求4所述的基于Transformer的非接触式心率测量方法,其特征在于,在步骤A10中,所构建的训练样本集包括人脸感兴趣区域图像序列及对人脸感兴趣区域图像序列进行样本扩增后所获得的扩增人脸感兴趣区域图像序列,其中,样本扩增方法为:基于所述人脸感兴趣区域图像序列,通过裁剪和仿射变换的方法获取不同尺度的人脸图片集;

基于所述不同尺度的人脸图片集,通过部分区域擦除和左右翻转的方法进行样本扩增获得扩增人脸图片集,并将扩增人脸图片集按时间排序生成扩增的人脸感兴趣区域图像序列。

6.一种基于Transformer的非接触式心率测量系统,其特征在于,所述系统包括:图像获取单元、人脸提取单元和心率提取单元;

所述图像获取单元,配置为获取设定时间段内包含人脸信息的待测视频帧序列;

所述人脸提取单元,配置为基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;

所述心率提取单元,配置为对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取所述设定时间段内的心率序列;

其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;

所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;

所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;

所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构建;

所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;

所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同;

“对所述人脸感兴趣区域图像序列的预处理”其方法为:基于所述人脸感兴趣区域图像序列,按时间顺序均匀采集F张图像作为待处理采样帧;

“通过训练好的端到端Transformer模型获取所述设定时间段内的心率序列”,其方法为:

步骤S31,对F张所述待处理采样帧进行预处理,获得F个嵌入式向量,包括:将所述待处理采样帧分为F×N个大小为P×P的采样块,其中,每张待处理采样帧对应N个采样块;

将每个采样块拉成一个向量获得待处理向量,基于待处理向量,通过线性映射获得待处理嵌入式向量;

将对应于同一张待处理采样帧的待处理嵌入式向量进行堆叠,获得F个嵌入式向量;

步骤S32,基于所述嵌入式向量,通过空间Transformer模块获取F个第一待处理输出向量;

步骤S33,基于所述第一待处理输出向量,通过位置编码、堆叠获得第一输出向量;所述第一输出向量为F×D的矩阵,其中D为空间Transformer模块输出的维度;

步骤S34,基于所述第一输出向量,通过时间Transformer模块获取第二输出向量;

步骤S35;基于所述第二输出向量,通过全连接层,获得设定时间段内的心率序列。

7. 一种电子设备,其特征在于,包括:至少一个处理器;以及

与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现权利要求1‑5任一项所述的基于Transformer的非接触式心率测量方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现权利要求1‑5任一项所述的基于Transformer的非接触式心率测量方法。

说明书 :

基于Transformer的非接触式心率测量方法

技术领域

[0001] 本发明属于机器视觉、数据识别领域,具体涉及了一种基于Transformer的非接触式心率测量方法、系统及设备。

背景技术

[0002] Transformer网络结构在自然语言领域已经处于统治地位,在很多任务上超出了其他的方法,如机器翻译、文本生成等。如今越来越多的研究人员正在尝试将 Transformer 
模型强大的建模能力应用到计算机视觉领域。
[0003] 心率在很多场合是需要被测量的一个重要指标,特别是在健康领域。传统的设备中,监测心跳速率和心脏活动是由测量电生理讯号与心电图或者是光体积变化描记图法完
成,电生理讯号与心电图需要将电极连接到身体来测量,接触式的设备让被测试的人感觉
不舒服,特别是对于疫情期间远程医疗的猛增,最近几年通过人脸测心率的技术获得了工
业界和学术界广泛的研究。首先解释为什么可以通过摄像头来测量人的心率:皮肤的光吸
收会随着血容量脉冲周期性变化,真皮和皮下层微血管中的诸如血红蛋白之类的染色体吸
收了不成比例的光,因此当血液通过下面的静脉和动脉泵出时,颜色会发生微小变化。虽然
人眼看不见,但嵌入可穿戴设备中的RGB传感器可以轻松捕获,这是通过人脸获取心率的理
论依据。
[0004] 在早期的远程心率测量研究中,许多传统的方法通过两个阶段完成这个任务,首先从检测或者跟踪到的人脸关键区域中获取rPPG的信号,然后从频域中分析得到心率值。
一方面,一些传统方法分析脸部区域的微妙的颜色变化用以做心率测量:Verkrussysse首
先发现rPPG信号可以使用从自然光下抽取的绿色通道得到心率信号;Poh使用独立成分分
析去除噪声;Li提出一种跟踪定义好的人脸关键区域的方法通过光线较正和非刚体的运动
消除来做粗rPPG信号的恢复;Tulyakov提出自适应矩阵分解的方法做心率估计。另一方面,
CHROM和POS使用颜色子空间变换的方法用来做皮肤像素的心率测量。
[0005] 基于一些传统方法的先验知识,通过人脸测心率这个任务被设计成非端到端的方式。通过传统的CHROM方法抽取了rPPG信号,对于获取到的rPPG信号,经过时域滤波、主成分
分析、信号选择、心率估计然后得到心率值。
[0006] 近年来,一些基于深度学习的非端到端的通过人脸测试心率的方法发展起来,Spetik提出一个两阶段的方法,首先通过一个二维的卷积神经网络获取rPPG信号,然后通
过另外的一维卷积神经网络回归得到心率值。也有一些端到端的通过人脸测心率的方法最
近被提出来,Niu在RhythmNet提出一种端到端的方法。比如输入人脸视频帧序列,直接得到
人脸的实时心率或者是一段时间内(比如10s)心率的平均值。
[0007] 深度学习是近年来机器学习领域一个热门研究方向,已经在计算机视觉、自然语言处理等领域获得了巨大的成功。现有的通过人脸测试心率的方法尚有以下不足:首先,现
有的数据集不足够大,这样我们只能采用浅层神经网络,学习的模型比较容易过拟合;其
次,在时空序列的所有的3D特征图上应用注意力是计算昂贵的;最后,不同的损失函数对结
果影响也比较大。

发明内容

[0008] 为了解决现有技术中的上述问题,即为了解决现有的对人脸心率测试中测量结果精度低、计算成本高的问题,本发明提供了一种基于Transformer的非接触式心率测量方
法,该方法包括以下步骤:
[0009] 步骤S10,获取设定时间段内包含人脸信息的待测视频帧序列;
[0010] 步骤S20,基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;
[0011] 步骤S30,对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取设定时间段内的心率
序列;
[0012] 其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;
[0013] 所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;
[0014] 所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;
[0015] 所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构
建;
[0016] 所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机
子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;
[0017] 所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同。
[0018] 在一些优选的实施方式中,所述多头注意力层的每个头所采用的注意力机制为,
[0019] 将多头注意力子模块内的归一化层的输出与权重矩阵相乘得到q、k、v;
[0020]
[0021]
[0022]
[0023] 其中,  表示第 个多头注意力子模块的输入, 表示多头注意力子模块内的归一化层所作的层归一化操作, 表示第 个多头注意力子模块的第 个头; 表示权重
矩阵;
[0024] 将q与k点积计算,对点积计算所得的结果依次经过激活函数层和Dropout层后作为系数与v相乘;
[0025] 对相乘所得的结果经过线性层和归一化层后进行输出。
[0026] 在一些优选的实施方式中,“对所述人脸感兴趣区域图像序列的预处理”其方法为:基于所述人脸感兴趣区域图像序列,按时间顺序均匀采集F张图像作为待处理采样帧。
[0027] 在一些优选的实施方式中,“通过训练好的端到端Transformer模型获取所述设定时间段内的心率序列”,其方法为:
[0028] 步骤S31,对F张所述待处理采样帧进行预处理,获得F个嵌入式向量,包括:将所述待处理采样帧分为F×N个大小为P×P的采样块,其中,每张待处理采样帧对应N个采样块;
[0029] 将每个采样块拉成一个向量获得待处理向量,基于待处理向量,通过线性映射获得待处理嵌入式向量;
[0030] 将对应于同一张待处理采样帧的待处理嵌入式向量进行堆叠,获得F个嵌入式向量;
[0031] 步骤S32,基于所述嵌入式向量,通过空间Transformer模块获取F个第一待处理输出向量;
[0032] 步骤S33,基于所述第一待处理输出向量,通过位置编码、堆叠获得第一输出向量;所述第一输出向量为F×D的矩阵,其中D为空间Transformer模块输出的维度;
[0033] 步骤S34,基于所述第一输出向量,通过时间Transformer模块获取第二输出向量;
[0034] 步骤S35;基于所述第二输出向量,通过全连接层,获得设定时间段内的心率序列。
[0035] 在一些优选的实施方式中,所述训练好的端到端Transformer模型,其训练方法为:
[0036] 步骤A10,获取训练视频帧序列,基于训练视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;将训练视频帧序列所对应的人脸感兴趣区域图像序列及其标准
心率序列作为训练样本,构建训练样本集;
[0037] 步骤A20,对所述训练样本集中的人脸感兴趣区域图像序列进行预处理,预处理后输入至端到端Transformer模型中,得到预测的设定时间段内的心率序列;
[0038] 步骤A30,基于端到端Transformer模型输出的设定时间段内的心率序列、标准心率序列,计算损失值,并调整所述端到端Transformer模型参数;
[0039] 步骤A40,循环执行步骤A20‑A30,直至得到训练好的端到端Transformer模型。
[0040] 在一些优选的实施方式中,所述训练好的端到端Transformer模型在训练过程中,所采用的损失函数为 ;
[0041]
[0042]
[0043]
[0044] 其中,γ为权重系数, 为总损失值, 为时域损失, 为频域损失,X为端到端Transformer模型输出的设定时间段内的心率序列,Y为设定时间段内的标准心率序列,T
为待测视频帧序列所对应的视频信号的长度,  为基于端到端Transformer模型输
出的设定时间段内的心率序列所计算得到的功率谱密度, 为基于设定时间段内
的标准心率序列所计算得到的功率谱密度,CE为交叉熵损失。
[0045] 在一些优选的实施方式中,在步骤A10中,所构建的训练样本集包括人脸感兴趣区域图像序列及对人脸感兴趣区域图像序列进行样本扩增后所获得的扩增人脸感兴趣区域
图像序列,其中,样本扩增方法为:
[0046] 基于所述人脸感兴趣区域图像序列,通过裁剪和仿射变换的方法获取不同尺度的人脸图片集;
[0047] 基于所述不同尺度的人脸图片集,通过部分区域擦除和左右翻转的方法进行样本扩增获得扩增人脸图片集,并将扩增人脸图片集按时间排序生成扩增的人脸感兴趣区域图
像序列。
[0048] 本发明的另一方面,提出了一种基于Transformer的非接触式心率测量系统,该系统包括图像获取单元、人脸提取单元和心率提取单元;
[0049] 所述图像获取单元,配置为获取设定时间段内包含人脸信息的待测视频帧序列;
[0050] 所述人脸提取单元,配置为基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;
[0051] 所述心率提取单元,配置为对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取所
述设定时间段内的心率序列;
[0052] 其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;
[0053] 所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;
[0054] 所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;
[0055] 所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构
建;
[0056] 所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机
子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;
[0057] 所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同。
[0058] 本发明的第三方面,提出了一种电子设备,包括:
[0059] 至少一个处理器;以及
[0060] 与至少一个所述处理器通信连接的存储器;其中,
[0061] 所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的基于Transformer的非接触式心率测量方法。
[0062] 本发明的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的基于
Transformer的非接触式心率测量方法。
[0063] 本发明的有益效果:
[0064] 本发明解决现有的对人脸心率测试中测量结果精度低、计算成本高的问题。
[0065] (1)本发明使用端到端Transformer模型从人脸序列图像中端到端地自动学习丰富且具有判别力的特征,并对心率进行预测;在使用过程中,本端到端Transformer模型只
使用二维的卷积核,无需使用三维的卷积核,从而可以有效的提升算法精度,解决了在比较
差的硬件平台上端侧部署的问题。
[0066] (2)本发明通过构建空间Transformer模块和时间Transformer模块,对时间和空间维度进行分解,可以大幅减少计算量,使得时空注意力计算代价相对能负担得起。对于空
间Transformer模块,在同一待处理采样帧的不同采样块之间应用空间注意力机制,可以更
好的抓取图像的空间位置信息;对于时间Transformer模块,对空间Transformer模块的输
出采用时间注意力机制,可以更好的抓取微表情之间的位移信息等。由于时间Transformer
模块在更高的维度来进行,使得时间Transformer模块相对于空间Transformer模块的附加
成本可以忽略不计。
[0067] (3)本发明基于频域损失和时域损失同时监督的方式来使得网络得到更好的泛化能力和精度。

附图说明

[0068] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0069] 图1是本发明一种实施例的基于Transformer的非接触式心率测量方法的流程示意图;
[0070] 图2是本发明一种实施例的端到端Transformer模型的结构示意图;
[0071] 图3是本发明一种实施例的第一处理模块和第二处理模块的结构示意图;
[0072] 图4是本发明一种实施例的多头注意力层的每个头所采用的注意力机制的示意图;
[0073] 图5是本发明一种实施例的端到端Transformer模型的训练过程的流程示意图。

具体实施方式

[0074] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不
是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前
提下所获得的所有其他实施例,都属于本发明保护的范围。
[0075] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便
于描述,附图中仅示出了与有关发明相关的部分。
[0076] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0077] 本发明的基于Transformer的非接触式心率测量方法,如图1所示,该方法包括以下步骤:
[0078] 步骤S10,获取设定时间段内包含人脸信息的待测视频帧序列;
[0079] 步骤S20,基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;
[0080] 步骤S30,对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取设定时间段内的心率
序列;
[0081] 其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;
[0082] 所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;
[0083] 所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;
[0084] 所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构
建;
[0085] 所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机
子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;
[0086] 所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同。
[0087] 为了更清晰地对本发明基于Transformer的非接触式心率测量方法进行说明,下面结合图对本发明实施例中各步骤展开详述。
[0088] 在下述实施例中,先对端到端Transformer模型的构建及训练过程进行详述,再对基于Transformer的非接触式心率测量方法获取待测视频帧序列的设定时间段内的心率序
列的过程进行详述。
[0089] 1、端到端Transformer模型的构建及训练,如图5所示
[0090] 步骤A10,获取训练视频帧序列,基于训练视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;将训练视频帧序列所对应的人脸感兴趣区域图像序列及其标准
心率序列作为训练样本,构建训练样本集;其中,心率序列中的数值表示不同时间点所对应
的心率值。且需要说明的是,对人脸感兴趣区域图像序列的获取也可以基于人脸检测模型
和人脸关键点模型来进行。
[0091] 在本实施例中,所构建的训练样本集包括训练视频帧序列所对应的人脸感兴趣区域图像序列及对该人脸感兴趣区域图像序列进行样本扩增后所获得的扩增人脸感兴趣区
域图像序列,其中,样本扩增方法为,
[0092] 基于所述人脸感兴趣区域图像序列,通过裁剪和仿射变换的方法获取不同尺度的人脸图片集;
[0093] 基于所述不同尺度的人脸图片集,通过部分区域擦除和左右翻转的方法进行样本扩增获得扩增人脸图片集,并将扩增人脸图片集按时间排序生成扩增的人脸感兴趣区域图
像序列。
[0094] 步骤A20,对所述训练样本集中的人脸感兴趣区域图像序列进行预处理,预处理后输入至端到端Transformer模型中,得到预测的设定时间段内的心率序列;
[0095] 在本实施例中,预处理为,基于所述人脸感兴趣区域图像序列,按时间顺序均匀采集F张图像作为待处理采样帧,每张图像与其相邻图像之间的时间间隔相同,如:对于30s的
视频所对应的人脸感兴趣区域图像序列,按时间顺序均匀采集16张、32张或者更多的图像
作为待处理采样帧;将预处理后得到的人脸感兴趣区域图像序列输入至端到端
Transformer模型中,以得到预测的设定时间段内的心率序列。
[0096] 其中,关于端到端Transformer模型的结构及工作过程,详述如下:
[0097] (1)、关于端到端Transformer模型的结构,如图2所示
[0098] 所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;
[0099] 所述空间Transformer模块包括顺次连接的N个第一处理模块,在本实施例中,N优选为12;所述空间Transformer模块中第1个第一处理模块的输入为经过处理后的端到端
Transformer模型中线性层的输出,所述空间Transformer模块中第2个至第12个第一处理
模块的输入为其前一个第一处理模块的输出;
[0100] 所述时间Transformer模块包括顺次连接的M个第二处理模块,在本实施例中,M优选为6;所述时间Transformer模块中第1个第二处理模块的输入为经过处理后的所述空间
Transformer模块的输出,所述时间Transformer模块中第2个至第6个第二处理模块的输入
为其前一个第二处理模块的输出。且需要强调的是,所述第二处理模块与第一处理模块结
构相同。
[0101] (2)、关于端到端Transformer模型的工作过程
[0102] 所述端到端Transformer模型获取基于人脸感兴趣区域图像序列所采集到的F张待处理采样帧,并对F张所述待处理采样帧进行预处理,以获得F个嵌入式向量;具体地,该
预处理的过程如下:
[0103] 将F张待处理采样帧分为F×N个大小为P×P的采样块,其中,每张待处理采样帧的大小为H×W,且每张待处理采样帧对应N个采样块, ;
[0104] 将每个采样块拉成一个向量获得待处理向量,基于待处理向量,通过端到端Transformer模型中的线性层进行线性映射以获得F×N个待处理嵌入式向量;需要说明的
是,端到端Transformer模型中的线性层数量与待处理嵌入式向量的数量相对应设置,即不
同的待处理嵌入式向量分别输入至不同的线性层中进行线性映射,在本实施例中,端到端
Transformer模型中的线性层数量为F×N个。
[0105] 将F×N个待处理嵌入式向量中对应于同一张待处理采样帧的待处理嵌入式向量进行堆叠,以获得F个嵌入式向量,由此实现将F张所述待处理采样帧转换为F个嵌入式向
量。
[0106] 之后,将获得的F个嵌入式向量分别输入至不同的空间Transformer模块内的第一个第一处理模块中,通过空间Transformer模块对每一张待处理采样帧所对应的不同采样
块之间计算空间注意力,以更好的抓取图像的空间位置信息,并输出F个第一待处理输出向
量;需要说明的是,所述空间Transformer模块数量与嵌入式向量(也即待处理采样帧)的数
量相对应设置,在本实施例中,空间Transformer模块的数量为F个。同时需要补充的是,对
应于同一张待处理采样帧的线性层连接至相同的空间Transformer模块,对应于不同待处
理采样帧的线性层连接至不同的空间Transformer模块。对空间Transformer模块所输出的
第一待处理输出向量进行位置编码,并将位置编码后的第一待处理输出向量进行堆叠,以
获得第一输出向量;所述第一输出向量为F×D的矩阵,其中D为空间Transformer模块输出
的维度;
[0107] 之后,将获得的第一输出向量输入至时间Transformer模块内的第一个第二处理模块中,通过时间Transformer模块对每一张待处理采样帧之间计算时间注意力,以更好的
抓取微表情之间的位移信息等,并输出第二输出向量;
[0108] 最后,将所述Transformer模块输出的第二输出向量输入至全连接层内,通过全连接层,获得设定时间段内的预测心率序列。
[0109] 更进一步地,所述第一处理模块和第二处理模块均基于顺次连接的多头注意力子模块、多层感知机子模块构建。下面以第一处理模块为例,对第一处理模块和第二处理模块
的结构进行详述,如图3所示。
[0110] 具体地,所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;所述第一处理模块的输入即为所述多头注意力子模块的输入,所述多头注意力子模块的输入
和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出。
此外,需要说明的是,图3中的输入所指为第一处理模块的输入。
[0111] 所述多头注意力层内设置有若干头,其中,如图4所示,每个头所采用的注意力机制为,
[0112] 将多头注意力子模块内的归一化层的输出与权重矩阵相乘得到q、k、v;
[0113]                    (1)
[0114]                    (2)
[0115]                    (3)
[0116] 其中, 表示第 个多头注意力子模块的输入, 表示多头注意力子模块内的归一化层所作的层归一化操作, 表示第 个多头注意力子模块的第 个头, 表示权重
矩阵;对于所述空间Transformer模块,的取值范围为1‑12,对于所述时间Transformer模
块,的取值范围为1‑8。在本实施例中,若所述多头注意力子模块的输入的维度为768,且多
头注意力子模块内设置有12头,则设定 ,以使得多头注意力子
模块中每个头均获得维度为64的q、k、v;
[0117] 将q与k点积计算,对点积计算所得的结果依次经过激活函数层和Dropout层后作为系数与v相乘;
[0118] 对相乘所得的结果经过线性层和归一化层后进行输出,即为多头注意力层中的单个头的输出。此外,需要说明的是,图4中的输入所指为多头注意力子模块的输入,输出所指
为多头注意力层中的单个头的输出。
[0119] 将多头注意力层中的每个头的输出进行集成,以构成多头注意力层的输出,其中,所述多头注意力层的输出与多头注意力子模块的输入的维度保持一致。
[0120] 所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多头注意力子模块的输出即为所述多层感知机子模块的输入,且所述多头注意力子模块的输
出和所述多层感知机子模块内多层感知机结构的输出相加构成所述多层感知机子模块的
输出。
[0121] 所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构建,所述多头注意力子模块的输出经过归一化层进行层归一化操作后,输
入至多层感知机结构内,由于多层感知机结构内的全连接层参数量比较大,容易过拟合,所
以在全连接层后面连接Dropout层以减少过拟合,增大泛化能力。
[0122] 步骤A30,基于端到端Transformer模型输出的设定时间段内的心率序列、标准心率序列,计算损失值,并调整所述端到端Transformer模型参数;
[0123] 在本实施例中,对端到端Transformer模型训练时,根据端到端Transformer模型输出的设定时间段内的心率序列与设定时间段内的标准心率序列计算损失值,并依据损失
值更新端到端Transformer模型,以获得最优端到端Transformer模型。具体地,端到端
Transformer模型在训练过程中,所采用的损失函数为 ,其中,
[0124]                             (4)
[0125]           (5)
[0126]                   (6)
[0127] 其中,γ为权重系数, 为总损失值, 为时域损失, 为频域损失,X为端到端Transformer模型输出的设定时间段内的心率序列,Y为设定时间段内的标准心率序列,T
为待测视频帧序列所对应的视频信号的长度; 为基于端到端Transformer模型输出
的设定时间段内的心率序列所计算得到的功率谱密度, 为基于设定时间段内的
标准心率序列所计算得到的功率谱密度,CE为交叉熵损失。
[0128] 在现有技术中,通常是将训练视频帧序列所对应的人脸感兴趣区域图像序列及其标准平均心率值作为训练样本,并通过交叉熵损失函数来计算损失,而对于有些训练来说,
比如是用于测量健身后的心率,平均心率值并不能很好的度量这个人在设定时间内的心率
结果,因此,基于皮尔逊相关损失,采用标准心率序列替换标准平均心率值作为训练样本,
与端到端Transformer模型输出的心率序列进行计算,可以比较好的度量向量之间的相关
性,这样能更好的反传。同时,基于交叉熵损失函数,采用功率谱密度来计算频域损失,可以
更好的度量心率情况,从而实现对计算精度的提升。
[0129] 步骤A40,循环执行步骤A20‑A30,直至得到训练好的端到端Transformer模型。
[0130] 在本实施例中,通过反传梯度方法调整端到端Transformer模型参数直至时域损失和频域损失之和小于预设的第一阈值或迭代至预设的次数,以获得训练好的端到端
Transformer模型。
[0131] 2、基于Transformer的非接触式心率测量方法,如图1所示
[0132] 步骤S10,获取设定时间段内包含人脸信息的待测视频帧序列;
[0133] 步骤S20,基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;
[0134] 在本实施例中,参考步骤A10中的所采用的人脸关键点模型对所述待测视频帧序列进行处理,以获取人脸感兴趣区域图像序列;
[0135] 步骤S30,对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取所述设定时间段内的
心率序列;
[0136] 在本实施例中,参考步骤A20中的预处理方法对步骤S20中的人脸感兴趣区域图像序列进行预处理,以输入至步骤A40中所保存的训练好的端到端Transformer模型中,从而
得到对应的设定时间段内的心率序列。
[0137] 上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,
其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之
内。
[0138] 本发明第二实施例的基于Transformer的非接触式心率测量系统,如2所示,该系统包括:图像获取单元、人脸提取单元和心率提取单元;
[0139] 所述图像获取单元,配置为获取设定时间段内包含人脸信息的待测视频帧序列;
[0140] 所述人脸提取单元,配置为基于所述待测视频帧序列,通过人脸关键点模型获取人脸感兴趣区域图像序列;
[0141] 所述心率提取单元,配置为对所述人脸感兴趣区域图像序列进行预处理,并基于预处理后的所述人脸感兴趣区域图像序列,通过训练好的端到端Transformer模型获取所
述设定时间段内的心率序列;
[0142] 其中,所述端到端Transformer模型基于顺次连接的线性层、空间Transformer模块、时间Transformer模块和全连接层构建;
[0143] 所述空间Transformer模块包括N个第一处理模块;所述第一处理模块基于多头注意力子模块、多层感知机子模块构建;
[0144] 所述多头注意力子模块基于顺次连接的归一化层、多头注意力层构建;
[0145] 所述多层感知机子模块基于顺次连接的归一化层、多层感知机结构构建;所述多层感知机结构基于顺次连接的全连接层、激活函数层、Dropout层、全连接层和Dropout层构
建;
[0146] 所述多头注意力子模块的输入和所述多头注意力子模块内多头注意力层的输出相加构成所述多头注意力子模块的输出;所述多头注意力子模块的输出和所述多层感知机
子模块内多层感知机结构的输出相加构成所述多层感知机子模块的输出;
[0147] 所述时间Transformer模块包括M个第二处理模块,所述第二处理模块与第一处理模块结构相同。
[0148] 所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0149] 需要说明的是,上述实施例提供的基于端到端Transformer模型的非接触式心率测量系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上
述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组
合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完
成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为
了区分各个模块或者步骤,不视为对本发明的不当限定。
[0150] 本发明第三实施例的一种电子设备,包括:
[0151] 至少一个处理器;以及
[0152] 与至少一个所述处理器通信连接的存储器;其中,
[0153] 所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的基于Transformer的非接触式心率测量方法。
[0154] 本发明第四实施例的一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的基于Transformer的非
接触式心率测量方法。
[0155] 所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,
在此不再赘述。
[0156] 本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对
应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编
程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介
质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地
描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术
方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法
来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0157] 术语“第一”、 “第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
[0158] 术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的
其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
[0159] 至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本
发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些
更改或替换之后的技术方案都将落入本发明的保护范围之内。