一种基于热成像仪测量人体脸部温度校准方法与流程

文档序号:22749657发布日期:2020-10-31 09:42阅读:来源:国知局

技术特征:

1.一种基于热成像仪测量人体脸部温度校准方法,其特征在于,包含以下顺序的步骤:

s1、红外热像仪每次采集的温度像素点阵是二维数组pixel;

s2、遍历温度像素数组pixel,寻找温度像素数组pixel中包含32℃-45℃范围的所有数据赋值给一维数组filter;

s3、按递增顺序排序一维数组filter;

s4、从排序后的filter中取3/4分位点的数据做为基准,从一维数组filter中取第q3个元素作为基准数,得到基准温度s=filter[q3];

其中,

s5、从二维数组pixel中寻找所有符合s±diff的像素位置标1,不符合s±diff的像素位置标0,赋值给二维数组pixel_bin,并且从二维数组pixel_bin找出值为1的边界并且居中在最大的正方形赋值给二维数组face;

其中,diff是指基准温度误差范围,二维数组pixel_bin的宽高与二维数组pixel相同,二维数组face的宽高不会超过二维数组pixel的宽高;

s6、二维数组face为人脸温度的轮廓,二维数组face的顶部数据为额头部位数据,额头部位数据中所有元素为1对应的温度像素数组pixel元素的值的平均值是额头表面温度temperature;

s7、额头表面温度拟合成体内温度,经过实验得出拟合函数:

body_temperature=0.7797×temperature+9.7271;

其中,body_temperature是人体体内温度。

2.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s1中,所述二维数组pixel已经经过距离拟合、额头表面温度换算为人体温度。

3.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s2中,所述一维数组filter的数组长度范围由pixel决定;如果pixel是32×32的二维数组则filter的最大长度为32×32=1024,其他依此类推。

4.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s1中,所述二维数组pixel为32×32的温度像素点阵:

5.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s2中,所述一维数组filter为:

6.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s3中,所述按递增顺序排序一维数组filter为:

7.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s4中,所述一维数组filter的长度为20,基准温度s=filter[q3]=36.5。

8.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s5中,假设所述diff=0.7,则寻找二维数组pixel所有元素值在36.5±0.7范围的像素位置标1,其它标为0;

从二维数组pixel_bin中找出值为1的边界并且居中在最大的正方形;

在二维数组pixel_bin中值为1横跨3列5行,所以最大的正方形是5×5,将5×3数组居中放进5×5的正方形中,得到二维数组face;

能够看出以上二维数组face是人脸温度的轮廓,第1行是额头部位,第2、3、4行是眼睛到嘴巴的部位,第5行是脖子部位。

9.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,步骤s5中,所述二维数组face第1行[01100]每个元素分别对应二维数组pixel中[p9,8p9,9p9,10p9,11p9,12]元素,求二维数组face第1行所有元素为1对应的温度像素数组pixel元素的值的平均值是额头表面温度:

temperature=average(p9,9,p9,10)。

10.根据权利要求1所述基于热成像仪测量人体脸部温度校准方法,其特征在于,所述二维数组face还用于判断人脸是否被遮挡物遮挡,具体包括训练模型与模型识别两部分:

一、训练模型部分:

1、数学模型定义:

(1)学习率k=0.1;

(2)输入层神经元数:input_num=100;将二维数组face压缩或者放大成10×10二维数组,然后将每行按顺序排列成长度为100的一维数组,所以input_num=100;

(3)输出层神经元数:output_num=1;由于输出结果要么是被遮挡要么不被遮挡,所以只要输出1个数就能够表示是否被遮挡,接近0表示不被遮挡,接近1表示被遮挡;

(4)隐藏层神经元数:hide_layout_num=10;

(5)激活函数使用因为sigmoid函数将变量映射到0,1之间刚好能够表示接近0表示不被遮挡,接近1表示被遮挡,sigmoid函数的导数函数为sigmoid(z)'=sigmoid(z)(1-sigmoid(z));

(6)误差函数为其中,cj是第j个face样本实际值与输出值的平方误差,ej是第j个face样本的实际值与输出值的差;

(7)隐藏层的权重w2是input_num×hide_layout_num的二维数组,偏置b2是长度为hide_layout_num的一维数组,神经元a2是长度为hide_layout_num的一维数组;

(8)输出层的权重w3是hide_layout_num×output_num的二维数组,偏置b3是长度为output_num的一维数组,神经元a3是长度为output_num的一维数组;

(9)神经元计算函数calc_cell(x,w,b)=sigmoid(x·w+b);其中,x·w是两个数组的内积,x是输入神经元的值,w是权重与每个x数组元素一一对应,b是偏置;

2、模型训练过程:

(1)随机初始化隐藏层的权重w2与偏置b2,输出层的权重w3与偏置b3;j为样本下标,max_j为样本数,input_val=[input_val1input_val2...input_valmax_j]为face样本数组,每个样本元素是长度为100的数组;

(2)定义w2、b2、w3、b3的偏导分别为dw2、db2、dw3、db3初始值为0;

(3)x=input_valj是input_val数组第j个数组压缩或放大成10×10二维数组后将每行按顺序排列成长度为100的一维数组x=[x1x2...x99x100];

(4)输入第j个样本计算隐藏层每个神经元的值:

其中,下标i是隐藏层第i个神经元,取值范围是1-10,循环计算第1至第10个隐藏层的神经元值,是隐藏层第i个神经元,是长度为100的一维数组是的所有输入权重,的偏置;

(5)输入所有隐藏层神经元样本计算输出层每个神经元的值:

a3=calc_cell(a2,w3,b3),

其中,a3是输出层神经元,w3是长度为10的一维数组是a3的所有输入权重,b3是a3的偏置;

(6)计算第j个样本的误差关于输出层神经元的偏导:

其中,a3为预测值,real_yj是第j个样本的实际值;

(7)计算第j个样本的误差关于隐藏层神经元的偏导:

其中,d3×w3是矩阵相乘;

(8)计算并累加第j个样本的误差关于输出层权重的偏导:

(9)计算并累加第j个样本的误差关于输出层偏置的偏导:

(10)计算并累加第j个样本的误差关于隐藏层权重的偏导:

其中,下标i是隐藏层第i个神经元,取值范围是1-10,循环计算第1至第10个隐藏层的神经元值;

(11)计算并累加第j个样本的误差关于隐藏层偏置的偏导:

其中,下标i是隐藏层第i个神经元,取值范围是1-10,循环计算第1至第10个隐藏层的神经元值;

(12)将j++继续第3步,直到j=max_j执行步骤(13);

(13)更新隐藏层、输出层的权重与偏置:

w3=w3+(-k×dw3),

b3=b3+(-k×db3),

w2=w2+(-k×dw2),

b2=b2+(-k×db2);

(14)将j=0继续第3步,直到的值非常小,训练参数完成;

二、模型计算过程:

1、x是实时采集到的二维数组face压缩或放大成10×10二维数组后将每行按顺序排列成长度为100的一维数组x=[x1x2...x99x100];

2、计算隐藏层每个神经元的值:

其中,下标i是隐藏层第i个神经元,取值范围是1-10,循环计算第1至第10个隐藏层的神经元值,是隐藏层第i个神经元,是长度为100的一维数组是的所有输入权重,的偏置;

3、输入所有隐藏层神经元样本计算输出层每个神经元的值:

a3=calc_cell(a2,w3,b3),

其中,a3是输出层神经元,w3是长度为10的一维数组是a3的所有输入权重,b3是a3的偏置;

4、如果a3大于或等于某一阈值,则判定人脸被被遮挡。


技术总结
本发明公开的一种基于热成像仪测量人体脸部温度校准方法,包含以下顺序的步骤:红外热像仪每次采集的温度像素点阵是二维数组pixel,并计算基准温度;计算出表征人脸温度轮廓的二维数组face;由二维数组face得出额头表面温度,最终拟合成体内温度。本发明可实现快速、精确找出人体头部的额头部位的像素温度,实现人体头部被遮挡也能够准确测量人体温度。

技术研发人员:林宇翔;陈果
受保护的技术使用者:广东品学软件开发有限公司
技术研发日:2020.04.29
技术公布日:2020.10.30
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1