一种远红外热成像人脸关键点的定位方法与流程

文档序号:20491468发布日期:2020-04-21 22:04阅读:746来源:国知局
一种远红外热成像人脸关键点的定位方法与流程

本发明涉及一种定位方法,尤其涉及一种远红外热成像人脸关键点的定位方法。



背景技术:

传统人脸检测方法如asm(activeshapemodel)等方法在运行效率与方法的泛化能力都低于先进的深度学习方法。但是红外热像的人脸图像没有成熟的公开数据集,也没有成熟的人脸关键点制定规则,直接采用自然图像中的人脸关键点定位方法难以达到较好的效果。



技术实现要素:

为了解决上述技术所存在的不足之处,本发明提供了一种远红外热成像人脸关键点的定位方法。

为了解决以上技术问题,本发明采用的技术方案是:一种远红外热成像人脸关键点的定位方法,包括以下步骤:

步骤一、构建数据集:通过自有数据构建远红外人脸数据集,自主对图像中人脸关键点进行标注,图像尺寸为384*288;

步骤二、搭建网络模型:在深度学习框架pytorch上搭建基于深度学习的远红外人脸关键点定位网络;基础网络结构为编码器解码器结构,采用两个子网络级联的形式组成整体网络;

步骤三、制作标签:通过在空白图像中不同channel中关键点对应位置放置高斯核形成关键点热图来制作标签,即在空白图像中画高斯核的方式形成回归用的标签,loss函数采用l2loss;

loss函数:

其中,x代表每个像素,f(x)为网络的输出值,y(x)代表标签真值;

高斯核函数:

其中,ji和ki代表第i个关键点在图像中的x和y的坐标,σx,σy分别代表高斯核在x和y方向的标准差;

步骤四、数据增强与图像预处理:

数据增强:训练时对图像做一种或者多种变换,图像变换后标签的真值也会随变换改变,数据增强可以提升模型的泛化能力;

图像预处理:在图像输入网络之前,将图像归一化到0~1之间。

步骤五、训练模型:采用均方误差作为损失函数训练模型,采用adam优化策略训练关键点定位网络;参数采用xavier初始化,批次大小设置为64,初始学习率0.001,每迭代50个周期学习率衰减一次,衰减率为0.1,经过200个周期迭代后效果达到最佳;其中,前50个周期采用半径为7个像素为半径放置高斯核作为标签真值,后150个周期采用半径为3个像素为半径放置高斯核作为标签真值;

步骤六、模型推理:模型训练好之后,通过模型推算关键点需要将数据进行步骤四中的图像预处理归一化到0~1之间,将预处理之后的图像送进模型前传生成预测热图heatmap;取出预测热图中每个channel中最大值所在位置,即为该通道预测关键点所在位置;

pi=argmax(heatmapi),

其中,p为关键点坐标,heatmap为预测热图。

进一步地,步骤一中关键点标注数据为在图中标注左眼,右眼,鼻尖,左嘴角,右嘴角五个关键点的位置。

进一步地,步骤二中:两个子网络中,子网络一为修改后的u-net网络,子网络二为hourglass网络;子网络一的输入为图像,子网络二的输入为图像拼接上子网络一最后一层的特征图;子网络二网络结构为原始hourglass结构。

进一步地,步骤四中,图像预处理的具体方法为:①将图像所有像素从小到大排列,取前12%的像素的最大值记为img_min;②图像中的最大值,记为img_max;③将图像中所有小于img_min的值重置为img_min;④以img_max和img_min为上下界,将图像归一化到0~1之间,具体为:x=(x-img_min)/(img_max-img_min),x为图像。

进一步地,步骤四中,数据增强的变换包含方式包括:旋转:15°~-15,裁切拉伸:x:0.8~1.2,y:0.8~1.2,剪切变换,分段仿射变换。

本发明通过级联两个不同的网络结构,第一个网络为改进的unet,提取充足的纹理特征,第二个网络为hourglass可以提取更高级的特征以及关键点之间的相互关系,通过特殊的训练技巧(先采用大的高斯核,后采用小的高斯核制作label),可以在人脸红外图像的小数据集上达到较佳的关键点检测精度。

本发明基于深度学习算法,通过全卷积神经网络(fullyconvolutionalnetworks,fcn)生成关键点热图,通过热图定位关键点。通过精心设计的网络结构,专门定制的数据增强方法,经过调优的模型优化算法,以及精确标注的数据,形成了整套远红外热成像人脸关键点定位技术。

本发明可以实现远红外图像中人脸关键点定位,从而通过关键点定位获得人脸不同区域的温度。远红外热图像是可以反映物体温度的图像,广泛应用于在医药卫生、安防、消防、地质等多个方面。本发明通过对远红外图像中人脸的关键点定位可获得人脸不同区域的温度分布,可作为通过人脸温度分布评估人的健康状态、疲劳状态、精神紧张程度等的方法的基础。

附图说明

图1为本发明的整体流程图。

图2为子网络一模型网络结构示意图。

图3为hourglass网络结构图。

图4为残差模块和中间监督学习过程示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示的一种远红外热成像人脸关键点的定位方法,包括以下步骤:

步骤一、构建数据集:通过自有数据构建远红外人脸数据集,自主对图像中人脸关键点进行标注,图像尺寸为384*288;

自有数据:数据集为招募志愿者后进行采集得到的大量人脸红外图像。

自主标注:根据说明文档,对每一张红外人脸图像的关键点(眼,鼻,嘴角等)位置进行标注。其中,关键点标注数据为在图中标注左眼,右眼,鼻尖,左嘴角,右嘴角、眉心关键点所在位置。

图像的尺寸(分辨率)为固定值,高384像素,宽288像素。

步骤二、搭建网络模型:在深度学习框架pytorch上搭建基于深度学习的远红外人脸关键点定位网络;基础网络结构为编码器解码器结构,采用两个子网络级联的形式组成整体网络;

pytorch框架是基于torch框架的深度学习/机器学习框架,其底层和torch框架一样,但是使用python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了python接口。pytorch框架是一个以python优先的深度学习框架,不仅能够实现强大的gpu加速,同时还支持动态神经网络。

两个子网络中,如图2所示,子网络一为修改后的u-net网络,子网络二为hourglass网络;子网络一的输入为图像,子网络二的输入为图像拼接上子网络一最后一层的特征图;子网络二网络结构为原始hourglass结构。

u-net网络常用于小样本量的学习,具有较强的纹理特征提取能力。子网络一采用改进后的u-net,增加了低层级卷积的堆叠,进一步提升子网络一对纹理信息的提取。hourglass网络相对于u-net更注重空间定位和高级特征的提取,子网络二采用hourglass网络,进一步提升网络检测特征的准确性和泛化能力。两者配合使用,可以在较小的数据集上获得较好特征点检测表现。

如图3所示,hourglass结构即沙漏模块网络结构:输入图像分成四路处理,第一路图片size保持不变(hxwxc),第二路进行下采样图片size为(h/2xw/2xc),第三路也进行下采样图片size为(h/4xw/4xc),第四路进行下采样图片siz为(h/8xw/8xc)。

整个网络结构是呈中心对称,每次降采样之前,分出上半路保留原尺度信息,每次升采样之后,和上一个尺度的数据相加,对称的输出图像逐元素相加,完成相加的操作之后,再进行上采样,上采样使用deconvolution的方式。两次降采样之间,使用三个residual模块提取特征,两次相加之间,使用一个residual模块提取特征。

如图4所示,图(a)是在网络中使用的残差模块(residual)的详解图,图(b)说明网络中间结果的监督内容是如何作用的,其中蓝色标示的heatmaps与真值进行误差计算,利用1×1的conv层对heatmaps进行处理得到heatmap(蓝色)之后的中间特征图以保证和输入下一个hourglass的特征图的通道数一致可以加和然后再输入到下一个hourglass中。

步骤三、制作标签(label):通过在空白图像中不同channel(通道)中关键点对应位置放置高斯核形成关键点热图来制作标签,即在空白图像中画高斯核的方式形成回归用的标签,关键点的位置存在一定的模糊性,通过高斯核制作标签可以体现这种模糊性,降低模型回归的虚警。

loss函数采用l2loss;loss函数:

其中,x代表每个像素,f(x)为网络的输出值,y(x)代表标签真值;n代表公式中求和算式中的x的总数。

高斯核函数:

其中,ji和ki代表第i个关键点在图像中的x和y的坐标,σx,σy分别代表高斯核在x和y方向的标准差;

步骤四、数据增强(dataaugmentation)与图像预处理:

数据增强:训练时对图像做一种或者多种变换,图像变换后标签的真值也会随变换改变,数据增强可以提升模型的泛化能力;

数据增强的变换包含方式包括:旋转:(15°~-15),裁切拉伸:(x:0.8~1.2,y:0.8~1.2),剪切变换,分段仿射变换。

图像预处理:在图像输入网络之前,将图像归一化到0~1之间。

图像预处理的具体方法为:①将图像所有像素从小到大排列,取前12%的像素的最大值记为img_min;②图像中的最大值,记为img_max;③将图像中所有小于img_min的值重置为img_min;④以img_max和img_min为上下界,将图像归一化到0~1之间,具体为:x=(x-img_min)/(img_max-mg_min),x为图像。

数据增强可以增加数据量,提升模型的泛化能力;数据预处理可以减少数据的外部差异,凸显数据的有效特征。

步骤五、训练模型:采用均方误差(mse)作为损失函数(lossfunction)训练模型,采用adam优化策略训练关键点定位网络;参数采用xavier初始化,批次(batchsize)大小设置为64,初始学习率0.001,每迭代50个周期(epoch)学习率衰减一次,衰减率为0.1,经过200个周期(epoch)迭代后效果达到最佳;其中,前50个周期(epoch)采用半径为7个像素为半径放置高斯核作为标签真值,后150个周期(epoch)采用半径为3个像素为半径放置高斯核作为标签真值;先用大高斯核,相对小高斯核关键点的定位更加模糊,也更容易训练,梯度回传的视野也更大。后用小高斯核,小高斯核回归出的关键点定位精度更高。

adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重。adam算法和传统的随机梯度下降不同。随机梯度下降保持单一的学习率(即alpha)更新所有的权重,学习率在训练过程中并不会改变。而adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。“xavier”初始化方法是一种很有效的神经网络初始化方法。

步骤六、模型推理(inference):模型训练好之后,通过模型推算关键点需要将数据进行步骤四中的图像预处理归一化到0~1之间,将预处理之后的图像送进模型前传生成预测热图heatmap;取出预测热图中每个通道(channel)中最大值所在位置,即为该通道预测关键点所在位置;

pi=argmax(heatmapi),

其中,p为关键点坐标,heatmap为预测热图。

本发明使用高斯函数形成关键点热图,采用均方误差(mse)作为损失函数(lossfunction)训练模型,adam优化方法训练模型。采用两段训练方法,第一阶段采用较大高斯核形成热图训练模型,加速收敛,第二阶段采用较小高斯核形成热图训练模型,提高模型关键点定位精度。

本设计全卷积神经网(fcn)用于远红外图像中人脸关键点定位,全卷积神经网(fcn)是一个大的概念,没有全连接(fullyconnected)层的卷积神经网络(cnn)可以叫做全卷积神经网(fcn)。本发明采用的所有卷积神经网络(cnn)均为全卷积神经网络(fcn)。

上述实施方式并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的技术方案范围内所做出的变化、改型、添加或替换,也均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1