一种面向嵌入式硬件的人脸检测方法

文档序号:27612306发布日期:2021-11-29 11:57阅读:104来源:国知局
一种面向嵌入式硬件的人脸检测方法

1.本发明涉及一种面向嵌入式硬件的人脸检测方法,属于人脸检测的技术领域。


背景技术:

2.神经网络作为深度学习的一类典型方法,已经在诸多计算机视觉领域取得了很大的成功,从基本的大规模图像分类任务到高级计算机视觉应用都能见到神经网络的踪影。神经网络在人脸识别领域的应用也很多,近年来人脸识别成为近年来生物特征识别领域一个非常热门的研究方向。
3.目前实用的人脸检测系统中,基于pc平台的人脸检测系统占了大多数。但是随着电子技术的发展及社会的需求变化,硬件处理平台朝着微型化、低功耗、便携式的方向发展,并且pc平台具有体积大、功耗高、便携性差等缺点,限制了人脸检测的广泛应用与普及。嵌入式硬件平台具有体积小、功耗低、便携性强等特点。
4.随着技术的发展,嵌入式平台的运算速度越来越快,使得在开发便携式的人脸检测系统成为可能。因此,开发具有更广阔应用领域的嵌入式人脸检测系统成为可能。


技术实现要素:

5.为了克服现有的大部分人脸检测算法都针对服务器环境下通用的并行计算硬件开发,具有体积大、功耗高、便携性差的缺点,本发明提供一种面向嵌入式硬件的人脸检测方法,具备较高的准确性和实时性,为人脸检测提供高效的检测方法。
6.本发明具体采用以下技术方案解决上述技术问题:
7.一种面向嵌入式硬件的人脸检测方法,包括模型训练过程和模型部署应用过程;
8.其中,所述模型训练过程包括以下步骤:
9.获取包含人脸的图像按比例分为数据集和验证集,并对数据集和验证集的图像进行人脸标注;将已标注人脸的图像数据集和验证集转换成符合yolov5网络模型的数据格式;
10.修改yolov5网络模型中的激活层函数为relu,修改训练的分类数和名称;
11.将格式转换后的数据集和验证集的图像输入yolov5网络模型进行训练,得到训练结果并获得模型权重文件;
12.其中,模型部署应用过程包括以下步骤:
13.将训练后的yolov5网络模型换成onnx格式,再将onnx格式的网络模型转换成硬件设备支持的格式;
14.将硬件设备支持格式的网络模型进行量化,再将量化后的网络模型部署在边缘设备上,并加载量化后的网络模型;
15.将待预测的图像输入量化后的网络模型,利用量化后的网络模型对待预测的图像进行预处理,再对预处理后的图像进行推理预测,并加载训练得到的模型权重文件,由量化后的网络模型得到输出结果,将输出结果相应的矩形坐标在原图像上表示,即可得到可视
化的预测结果。
16.进一步地,作为本发明的一种优选技术方案,所述模型训练过程中采用的relu激活函数的公式为:f(x)=max(0,x)。
17.进一步地,作为本发明的一种优选技术方案,所述模型训练过程中获得模型权重文件采用yolov5网络模型的损失函数为glou
loss

18.进一步地,作为本发明的一种优选技术方案,所述模型训练过程还包括对yolov5网络模型训练得到的训练结果进行误差校正。
19.进一步地,作为本发明的一种优选技术方案,所述模型训练过程中误差校正采用非极大值抑制法nms筛选掉重合度超出的预测结果。
20.进一步地,作为本发明的一种优选技术方案,所述模型训练过程中采用的yolov5网络模型,包括:
21.backbone部分:利用卷积神经网络处理输入图像,生成深层的特征图,用来抽象提取图片的特征;
22.neck部分:将提取的图像特征以不同的尺寸进行输出,以用于检测不同尺寸的目标;
23.head部分:对输出的不同尺寸的图像特征进行预测,生成边界框并预测类别信息。
24.进一步地,作为本发明的一种优选技术方案,所述模型部署应用过程中将硬件设备支持格式的网络模型进行量化,包括:
25.将网络模型中的float32数据类型转成uint8数据类型量化,并计算float32数据类型的缩放因子s和uint8数据类型的平移因子z:
[0026][0027][0028]
其中,x
max
和x
min
表示浮点数的最大值和最小值;r表示浮点数,q表示量化后的uint8类型数据,round表示做四舍五入处理,及函数clamp表示:
[0029][0030]
其中,clamp函数是将随机变化的数值限制在一个给定的区间,a,b表示常数,x表示一个变量。
[0031]
本发明采用上述技术方案,能产生如下技术效果:
[0032]
本发明提出一种面向嵌入式硬件的人脸检测方法,现有的yolov5网络模型是一种通用的目标检测模型,而本发明在其基础上改进了激活函数形成改进的yolov5网络模型,针对人脸检测问题进行训练,得到专用的人脸检测的yolov5网络模型;然后对改进的yolov5网络模型进行格式的转换、量化操作,在保证准确度的前提下,减小模型的体积,提高模型的可移植性,便于部署在边缘设备上;最终采用嵌入式硬件对模型的推理进行加速,具有较高的实用性。在不同数据集上的实验结果表明,本发明提出的人脸检测方法具有较高的准确性、便携性、实时性,加速了嵌入式领域人脸检测系统的发展,可为人脸检测提供高效的检测方法。
附图说明
[0033]
图1为本发明面向嵌入式硬件的人脸检测方法的流程示意图。
具体实施方式
[0034]
下面结合说明书附图对本发明的实施方式进行描述。
[0035]
如图1所示,本发明涉及一种面向嵌入式硬件的人脸检测方法,该方法主要包括模型训练过程和模型部署应用过程,具体如下:
[0036]
步骤1、所述模型训练过程,包括以下步骤:
[0037]
步骤1

1、获取包含人脸的图像按比例分为数据集和验证集,并对数据集和验证集的图像进行人脸标注;将已标注人脸的图像数据集和验证集转换成符合yolov5网络模型的数据格式。
[0038]
步骤1

2、修改yolov5网络模型中的激活层函数为relu,修改训练的分类数和名称;神经网络的激活函数的作用主要是提供网络的非线性建模能力。加入非线性激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。其中,采用的relu激活函数的公式为:f(x)=max(0,x),它的优点有:克服梯度消失的问题;加快训练速度。
[0039]
步骤1

3、将格式转换后的数据集和验证集的图像输入yolov5网络模型进行训练,得到训练结果并获得模型权重文件。
[0040]
在本发明中,输入yolov5网络模型的是图像,可以看成一个矩阵,所述yolov5网络模型的输出为(x,y,w,h,c),分别表示预测框在图像坐标系上的x、y坐标,矩形宽高,以及置信度。本质上是一个矩阵,通过上面三部分组成的网络,得到了另一个输出矩阵。为了保证目标都被检测到,还会尽可能输出多个目标,再靠后期的误差矫正来去除错误的预测结果。
[0041]
进一步的,在本发明中,训练过程中,还包括对yolov5网络模型训练得到的训练结果进行误差校正。所述yolov5网络模型的输出本质上是一个矩阵,为了保证目标都被检测到,还会尽可能输出多个目标,再靠后期的误差矫正来去除错误的预测结果,即所述yolov5网络模型输出多个目标,并对多个目标进行误差校正,误差校正采用的方法为非极大值抑制法nms,使用非极大值抑制的方法筛选掉重合度较高的预测结果。
[0042]
对于yolov5网络模型的训练,需要找尽可能多的作为训练样本图像的数据集和验证集,并做好标注,格式仍然可表示为(x,y,w,h,1),其中x,y,w,h均为真值,将置信度设置为1。将标注好人脸的图像的数据集和验证集投入yolov5网络模型进行训练,得到权重文件。接受训练后的神经网络会赋予它认为重要的输入信息更高的权重值,而那些不重要的输入信息权重值则会相对较小。这些权重信息就组成了所需要的人脸检测的权重文件。
[0043]
由权重参数是通过损失函数来决定的,损失函数是关于模型输出和样本标签值之差的函数,可以通过对误差函数求导来调节权重参数。本发明中yolov5网络模型采用的损失函数为glou
loss
,使用相交尺度衡量的方式计算损失。giou
loss
的计算公式为:
[0044][0045]
其中,iou即交并比,计算的是预测的边框和真实的边框的交集和并集的比值,c表示标签给定的真实的边框与模型给出的预测的边框两者的最小外接矩形,c

a∪b即为c中没有覆盖a和b的面积,a∪b表示真实框与预测框的并集。
[0046]
步骤2、模型部署应用过程,包括以下步骤:
[0047]
步骤2

1、为了适配嵌入式硬件的特性,训练后的模型需要进行转换和量化操作。首先,将训练后的yolov5网络模型换成onnx格式,即open neural network exchange(,onnx,开放神经网络交换)格式;是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移,再将onnx格式的网络模型转换成硬件设备支持的格式。
[0048]
转换过程中默认将大尺寸的最大池化层等价替换成多个小尺寸的最大池化层,可以加速模型的推理速度。此外,转换过程中去掉尾端的转置层,便于模型的部署推理。转置层作用是将输入的维度按照给定模式进行重排。
[0049]
步骤2

2、将硬件设备支持格式的网络模型进行量化,再将量化后的网络模型部署在边缘设备上,并加载量化后的网络模型。
[0050]
所述量化采用的方式是uint8(非对称量化),在保证精度的前提下,模型量化可以有效的减小模型尺寸,减少存储空间,加快推理速度。
[0051]
将网络模型中的float32数据类型转成uint8数据类型量化,并计算float32数据类型的缩放因子s和uint8数据类型的平移因子z:
[0052][0053][0054]
其中,x
max
和x
min
表示浮点数的最大值和最小值;r表示浮点数,q表示量化后的uint8类型数据,round表示做四舍五入处理,及函数clamp表示:
[0055][0056]
其中,clamp函数是将随机变化的数值限制在一个给定的区间,a,b都为常数,x就是一个变量。
[0057]
然后,将量化后的网络模型部署在边缘设备上,并加载量化后的网络模型。
[0058]
步骤2

3、首先,将待预测的图像输入量化后的网络模型,利用量化后的网络模型对待预测的图像进行预处理,图像的预处理部分主要包括,输入图像的尺寸,通道顺序等操作,要按照模型的输入格式进行调整;模型的加载过程中可以设置查询每层的运行时间和节点名称,有利于结果分析。
[0059]
然后,利用量化后的网络模型对预处理后的图像进行推理预测,在进行预测时,加载上述训练得到的模型权重文件,由量化后的网络模型得到输出结果(x,y,w,h,c),将输出结果相应的矩形坐标在原图像上表示,即可得到可视化的预测结果,其中结果显示包括在原图像上显示人脸所在的区域并画出人脸框以及置信度。
[0060]
本发明中所采用的yolov5网络模型,其结构主要包括三个主要组件:
[0061]
backbone部分:利用卷积神经网络处理输入图像,生成深层的特征图,用于抽象提取图片的特征;
[0062]
neck部分:将提取的图像特征以不同的尺寸进行输出,以用于检测不同尺寸的目标,便于可以更好的检测不同尺寸的目标;
[0063]
head部分:对输出的不同尺寸的图像特征进行预测,生成边界框并预测类别信息。
[0064]
因此,模型中backbone和neck部分主要用于提取图像特征,图像特征即为输入图像预测框中各种人脸的特征。head部分用于特征检测和预测类别。
[0065]
所述yolov5网络模型在训练可以采用以下方式,yolov5网络模型可以使用上万张人脸图像进行训练,分类总数为1,分类名称为face。图片像素尺寸设置为416x416。将训练数据按9:1划分为训练集和验证集,载入yolov5网络模型,进行训练。加载训练得到的yolov5网络模型和模型的权重文件后,可以对带有人脸的图像给出预测结果。本实施例具备较高的准确率和实时性,具有较高的实际使用意义。
[0066]
综上,本发明的方法,基于改进激活函数的yolov5网络模型进行人脸检测,以对yolov5网络模型进行训练;然后对训练后的yolov5网络模型进行格式的转换、量化操作,在保证准确度的前提下,减小模型的体积,提高模型的可移植性;最终采用嵌入式硬件对模型的推理进行加速,具有较高的实用性。在不同数据集上的实验结果表明,本发明提出的人脸检测方法具有较高的准确性、便携性、实时性,加速了嵌入式领域人脸检测系统的发展。
[0067]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1