一种图像识别方法、存储介质及终端设备
文献发布时间:2023-06-19 11:52:33
技术领域
本发明涉及图像处理技术领域,特别涉及一种图像识别方法、存储介质及终端设备。
背景技术
3D人脸重建是计算机视觉中非常重要的任务,它在解决大姿态人脸识别和关键点定位等问题提供了可行的解决方案。目前普遍使用的3D人脸重建方法是基于3DMM(3DMorphable Model)模型,通过靠重建特殊点(如,人脸关键点及局部特征等)与3D均值几何结构之间关系,然后利用非线性优化函数来回归3DMM系数,然而上述方法均需要依赖于人脸关键点等特色点的检测,进而影响了3D人脸重建的效果。
然而随着深度学习的发展,许多研究开始利用CNN估计3DMM系数来重建单张人脸对应的3D信息。目前普遍使用的利用CNN估计3DMM系数来重建单张人脸对应的3D信息的方法普遍为基于回归的级联卷积神经网络和位置映射回归网络。上述方法虽然可以获取到三维人脸图像,然而,上述两种方法仅能获取到三维人脸图像,但是在需要获取三维人脸特征点集时,还需要对三维人脸图像进行识别来得到三维人脸特征点,而三维人脸图像在重建过程中会丢失部分图像细节特征,这使得在对三维人脸图像进行三维人脸特征点进行识别时,无法基于待人脸图像的全部图像特征,从而会降低三维人脸特征点的精度。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种图像识别方法、存储介质及终端设备。
本发明所采用的技术方案如下:
一种图像识别方法,述图像识别方法:
获取待处理人脸图像,并将所述待处理人脸图像输入至图像识别模型,其中,所述待处理人脸图像为二维图像,所述图像识别模型为基于训练样本训练的,所述训练样本集中的每一训练样本组均包括人脸图像、真实人脸参数以及真实三维人脸特征点集;
通过所述图像识别模型确定所述待处理人脸图像对应的人脸参数以及三维人脸特征点集。
所述的图像识别方法,其中,所述方法还包括:
根据所述人脸参数以及所述预设人脸三维模型生成所述待处理人脸图像对应的三维人脸图像;
将所述三维人脸特征点集中各人脸特征点标记于所述三维人脸图像上。
所述的图像识别方法,其中,所述待处理人脸图像对应的人脸参数包括所述待处理人脸图像中人脸对应的对齐参数以及预设人脸三维模型的模型参数;所述根据所述人脸参数以及所述预设人脸三维模型生成所述待处理人脸图像对应的三维人脸图像具体包括:
根据所述模型参数以及所述预设人脸三维模型生成候选三维人脸图像;
根据所述对齐参数对所述候选三维人脸图像进行调整,以得到所述三维人脸图像。
所述的图像识别方法,其中,所述对齐参数包括旋转系数以及平移系数,所述模型参数包括人脸脸型系数以及人脸表情系数。
所述的图像识别方法,其中,所述图像识别模型的训练过程具体包括:
预设网络模型根据训练样本集中的人脸图像,生成所述人脸图像对应的预测人脸参数以及预测三维人脸特征点集;
所述预设网络模型根据所述人脸图像对应的真实人脸参数和所述人脸图像对应的预测人脸参数,以及所述人脸图像对应的真实三维人脸特征点集以及预测三维人脸特征点集对所述预设网络模型的模型参数进行修正;
所述预设网络模型继续执行根据训练样本集中的下一组训练样本中的人脸图像,生成所述人脸图像对应的预测人脸参数以及预测三维人脸特征点集的步骤,直至所述预设网络模型的训练情况满足预设条件,以得到所述图像识别模型。
所述的图像识别方法,其中,在所述预设网络模型根据训练样本集中的人脸图像,生成所述人脸图像对应的预测人脸参数以及预测三维人脸特征点集,之前,所述方法还包括获取所述训练样本集;
所述获取所述训练样本集具体包括:
选取初始数据集,其中,所述初始数据集包括多组初始数据,每组初始数据包括人脸图像以及所述人脸图像的二维人脸特征点集;
针对于所述初始数据集中的每张人脸图像,根据该人脸图像对应二维人脸特征点集确定该人脸图像对应的真实三维人脸特征点集;
将所述三维人脸特征点集与所述预设三维人脸模型拟合以得到真实人脸参数,并将该人脸图像、所述真实人脸参数以及所述真实三维人脸特征点集作为一训练样本组。
所述的图像识别方法,其中,所述预设网络模型包括卷积模块、池化模块以及全连接模块;所述预设网络模型根据训练样本集中的人脸图像,生成所述人脸图像对应的预测人脸参数具体包括:
将所述人脸图像输入至所述卷积模块,通过所述卷积模型输出所述人脸图像的第一特征图像;
将所述第一特征图像输入至池化模块,通过所述池化模块输出所述人脸图像的第二特征图像;
将所述第二特征图像输入至全连接模块,通过所述全连接模块输出所述预测人脸参数以及预测三维人脸特征点集。
所述的图像识别方法,其中,所述卷积模块包括依次堆叠的六个卷积层,各卷积层的卷积核均为3*3。
所述的图像识别方法,其中,所述预设网络模型根据所述人脸图像对应的真实人脸参数和所述人脸图像对应的预测人脸参数,以及所述人脸图像对应的真实三维人脸特征点集以及预测三维人脸特征点集对所述预设网络模型的模型参数进行修正具体包括:
根据所述真实三维人脸特征点集和所述预测三维人脸特征点集计算第一损失值,并根据所述真实人脸参数和所述预测人脸参数确定第二损失值;
根据所述第一损失值以及所述第二损失值计算总损失值,并根据所述总损失值对所述预设网络模型的模型参数进行修正。
所述的图像识别方法,其中,所述根据所述第一损失值以及所述第二损失值计算总损失值,并根据所述总损失值对所述预设网络模型的模型参数进行修正具体为:
根据预设权重参数集、所述第一损失值和第二损失值计算总损失值;
根据所述总损失值对所述预设网络模型的模型参数进行修正。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的图像识别方法中的步骤。
一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的图像识别方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种图像识别方法、存储介质及终端设备,所述方法采用图像识别模型获取待处理人脸图像的人脸参数以及三维人脸特征点集,所述图像识别模型为基于训练样本训练的,所述训练样本集中的每一训练样本组均包括人脸图像以及该人脸图像对应的真实人脸参数以及三维人脸特征点集,所述真实人脸参数包括对齐参数以及预设人脸三维模型的模型参数,这样通过所述图像识别模型可以同步用于生成三维人脸图像的人脸参数以及三维人脸特征点集,在获取过程中用于生成三维人脸图像的人脸参数与三维人脸特征点集可以相互验证,提高了三维人脸图像以及三维人脸特征点集的准确性。同时,对于任何姿态的人脸图像,均可以获取到该人脸图像对应的对齐参数和模型参数,根据所述模型参数生成三维人脸图像,再根据所述对齐参数对三维人脸图像进行调整,实现了任何姿态人脸的三维图像重建,提高了三维人脸重建的实时性,给用户的使用带来方便。
附图说明
图1为本发明提供的图像识别方法的流程图。
图2为本发明提供的图像识别方法的流程示意图。
图3为本发明提供的图像识别方法中预设网络模型的工作流程图。
图4为本发明提供的终端设备的结构原理图。
具体实施方式
本发明提供一种图像识别方法、存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
发明人经过研究发现,然而随着深度学习的发展,许多研究开始利用 CNN估计3DMM系数来重建单张人脸对应的3D信息。目前普遍使用的利用 CNN估计3DMM系数来重建单张人脸对应的3D信息的方法普遍为基于回归的级联卷积神经网络和位置映射回归网络。上述方法虽然可以获取到三维人脸图像,但是,上述两种方法仅能获取到三维人脸图像,而在需要获取三维人脸特征点集时,通过对重建的三维人脸图像进行识别,以得到三维人脸图像对应的三维人脸特征点,这样三维人脸特征点的精度依赖于重建的三维人脸图像精度,进而无法保证三维人脸特征点的精度。
为了实现可以同步获取三维人脸图像以及三维人脸特征点集,在本发明实施例中,采用图像识别模型获取待处理人脸图像的人脸参数以及三维人脸特征点集,所述图像识别模型为基于训练样本训练的,所述训练样本集中的每一训练样本组均包括人脸图像以及该人脸图像对应的真实人脸参数以及三维人脸特征点集,所述真实人脸参数包括对齐参数以及预设人脸三维模型的模型参数,这样通过所述图像识别模型可以同步用于生成三维人脸图像的人脸参数以及三维人脸特征点集,在获取过程中用于生成三维人脸图像的人脸参数与三维人脸特征点集可以相互验证,提高了三维人脸图像以及三维人脸特征点集的准确性。同时,对于任何姿态的人脸图像,均可以获取到该人脸图像对应的对齐参数和模型参数,根据所述模型参数生成三维人脸图像,再根据所述对齐参数对三维人脸图像进行调整,实现了任何姿态人脸的三维图像重建,提高了三维人脸重建的实时性,给用户的使用带来方便。
举例说明,本发明实施例可以应用到终端设备中,在应用到终端设备的场景中,首先,终端设备可以预先存储有图像识别模型,终端设备可以采集待处理图像,并将所述待处理图像输入图像识别模型,通过所述图像识别模型获取所述待处理人脸图像对应的真实人脸参数以及三维人脸特征点集,以便于根据所述真实人脸参数确定三维人脸图像。
可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述为全部有终端设备执行的,但是在实际应用中这些动作也可以部分由终端设备执行、部分由服务器执行,或者完全由服务器执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
此外,值得说明的是,所述图像识别模型可作为一个人脸识别功能模块配置于具有成像系统(如,摄像头)的终端设备,当具有成像系统(如,摄像头)的终端设备拍摄到人脸照片时,启动所述人脸识别功能模块,通过所述人脸识别功能模块对该照片进行识别,以得到该人脸照片对于人脸参数以及三维人脸特征点集,便于根据所述人脸参数生成三维人脸图像,使得终端设备可以根据拍摄得到的人脸照片实时生成三维人脸图像以及三维人脸特征点。
需要注意的是,上述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施提供了一种图像识别方法,如图1和2所示,所述方法包括:
S10、获取待处理人脸图像,并将所述待处理人脸图像输入至图像处理模型。
具体地,所述待处理人脸图像为二维图像,其可以是通过成像系统(例如,摄像头)拍摄得到的人脸图像,其也可以是通过网络(如,百度)获取的人脸图像,其还可以是通过其他外部设备(如,智能手机)发送的人脸图像。在本实施例的一个可能实现方式中,所述待处理人脸图像是通过具有成像系统的终端设备拍摄的,并且该终端设备配置有图像识别模型,通过该图像识别模型可以直接确定该待处理人脸图像对应的人脸参数以及三维人脸特征点集,以便根据所述人脸参数确定该待处理人脸图像对应的三维人脸图像。其中,所述待处理图像为二维人脸图像,所述三维人脸图像为二维人脸图像对应三维图像。这样终端设备在获取到待处理人脸图像时,获取到该待处理人脸图像对应用于生成三维人脸图像的人脸参数以及三维人脸特征点集,提高了提取用于生成三维人脸图像的人脸参数以及三维人脸特征点的实时性。此外,所述三维人脸特征点集包括各人脸特征点在待处理人脸图像中的位置信息以及人脸特征点的深度信息,其中,所述深度信息用于表示人脸特征点到相机x、y平面的距离。
进一步,所述图像识别模型为基于预设的训练样本集训练得到的,该训练样本集包括多组具有不同图像内容的训练样本组,每一组训练样本组均包括人脸图像、真实人脸参数以及三维人脸特征点集,其中,真实人脸参数用于基于预设三维人脸模型生成三维人脸图像,其中,所述真实人脸参数为所述预设三维人脸模型的一组模型参数值。所述真实人脸参数包括真实对齐参数以及真实三维模型参数。所述三维模型参数为预设三维人脸模型对应的模型参数,当将所述三维模型参数输入至所述预设三维人脸模型后,以通过所述预设三维人脸模型生成候选三维人脸图像。所述对齐参数为将候选三维人脸图像与所述人脸图像齐全的参数,通过采用所述对齐参数对所述候选三维人脸图像进行调整,可以得到所述人脸图像对应的三维人脸图像,其中,所述三维人脸图像中的人脸图像的人脸朝向与人脸图像中相应人脸图像的人脸朝向相同。
进一步,所述预设三维人脸模型包括平均脸参数,以及人脸形状和人脸表情差异的线性组合,并且所述预设三维人脸模型可以表示为平均脸参数与人脸形状和人脸表情差异的线性组合的和,其中,所述平均脸参数为基于人脸数据库构造一个平均人脸形变模型,其为预先获取的已知量,记为S,所述人脸形状和人脸表情差异的线性组合中为人脸形状基与人脸表情基的线性组合,所述人脸形状基在该线性组合中的系数记为人脸脸型系数,人脸表情基在该线性组合中的系数记为人脸表情系数,所述人脸脸型系数和人脸表情系数为预设三维人脸模型的模型参数,即所述三维人脸模型的模型参数包括人脸脸型系数和人脸表情系数。此外,所述人脸脸型系数可以为3DMM形状模型的人脸脸型系数,所述人脸表情系数可以是3DMM形状模型的人脸表情系数,也可以是BlendShape表情模型的人脸表情系数。
在本实施例的一个可能实现方式中,所述预设三维人脸模型的人脸脸型系数为3DMM形状模型的人脸脸型系数,所述人脸表情系数为3DMM形状模型的人脸脸型系数,即所述预设三维人脸模型为3DMM形状模型。由此,所述预设三维人脸模型S可以表示为:
其中,
进一步,所述3DMM人脸形变模型是通过真实采集多张人脸图像,并对每张人脸图像进行PCA分析,以得到用于描述人脸形状的一组向量A
进一步,在本实施例的一个实现方式中,所述图像识别模型的训练过程可以包括:
H10、预设网络模型根据训练样本集中的人脸图像,生成所述人脸图像对应的预测人脸参数以及预测三维人脸特征点集。
具体地,所述该训练样本集包括多组具有不同图像内容的训练样本组,每一组训练样本组均包括人脸图像、真实人脸参数以及真实三维人脸坐标点集,其中,真实人脸参数包括对齐参数以及三维模型参数。此外,每组训练样本组中的人脸图像的图像内容不同,但各训练样本组的人脸图像图像尺寸以及图像类型均相同(例如,训练样本组A中人脸图像的图像尺寸为A*B的彩色图像,那么训练样本组B中人脸图像的图像尺寸也为A*B的彩色图像),这样可以使得各训练样本组中人脸图像均可以直接输入至预设网络模型,无需对人脸图像进行预处理,提高了预设网络模型的训练速度。例如,所述图像可以为120*120的彩色图像,其可以表示为120*120*3。当然,值得说明的,所述待处理人脸图像与所述训练样本中的人脸图像的图像尺寸与图像类型均相同,例如,当训练样本中人脸图像为120*120*3 图像时,所述待处理人脸图像也需要为120*120*3图像,由此,当待处理人脸图像不为120*120*3图像时,可以对所述待处理人脸图像进行预处理,以将该待处理人脸图像处理为120*120*3图像。
进一步,在本实施例的一个实现方式中,所述训练样本集的获取过程可以包括:
M10、选取初始数据集,其中,所述初始数据集包括多组初始数据,每组初始数据包括人脸图像以及所述人脸图像的二维人脸特征点集;
M20、针对于所述初始数据集中的每张人脸图像,根据该人脸图像对应二维人脸特征点集确定该人脸图像对应的真实三维人脸特征点集;
M30、将所述三维人脸特征点集与所述预设三维人脸模型拟合以得到真实人脸参数,并将该人脸图像、所述真实人脸参数以及所述真实三维人脸特征点集作为一训练样本组。
具体地,所述初始数据集包括多组初始数据,每组初始数据包括人脸图像以及所述人脸图像对应的二维特征点集,其中,所述二维特征点集用于确定所述人脸图像对应的三维人脸特征点集。在本实施例中,所述初始数据集为300W-LP数据集,所述300W-LP数据集包括AFW数据集、HELEN数据集、IBUG数据集以及ALFW数据集的图片。其中,AFW数据集是人脸关键点检测使用的数据集,其包含205个人脸图像以及473个标记的人脸,AFW 数据集中每一人脸均提供了方形边界框,6个关键点和3个姿势角度的标注。 Helen人脸数据库,发布于2012年,其包括训练集和测试集,测试集包含了330张人脸图片,训练集包括了2000张人脸图片,每张人脸图片均都被标注了68个特征点。IBUG,发布于2013年,其包含了135张人脸图片,每张人脸图片被标注了68个特征点。AFLW(Annotated Facial Landmarks in theWild)是一个包括多姿态、多视角的大规模人脸数据库,其包括21,997 张图,25,993张人脸,每张人脸标注21个关键点,同时还提供了矩形框和椭圆框的脸部位置标注以及人脸姿态角标注。此外,为了扩充所述初始数据集,在获取到初始数据集后,可以对于初始数据集中的每一张原始图像携带的人脸姿态进行连续变化以及镜像等操作,以扩充所述初始数据集,使得扩充后的初始数据集中包含多张人脸图像,并且多张人脸图像包含了人脸多种姿态,提高了初始数据集中人脸图像的人脸姿态分布的均匀性。此外,在实际应用中,所述初始数据集可以包括300W-LP数据集以及AFLW-3D 数据集等具有真实3D标注的数据集的全部数据或者部分数据,这样根据真实3D标注可以更准确地掌握网络训练的精度以及进度。
进一步,在对所述初始数据集进行扩充之后,对于每一张人脸图像,可以根据其对应的二维人脸特征点集确定该人脸图像对应的三维人脸特征点集,并且在确定到该人脸图像对应的三维人脸特征点后,将该三维人脸特征点与预设三维人脸模型进行拟合,以得到人脸图像对应的对齐参数、人脸脸型系数以及人脸表情系数,从而得到该人脸图像对应的真实人脸参数,最后将该真实人脸参数、真实三维人脸特征点集以及该人脸图像进行关联以形成一组训练样本组,其中,所述真实人脸参数为人脸图像对应的人脸参数标注,并基于所述真实人脸参数对预设网络模型输出的人脸参数进行衡量,所述真实三维人脸特征点集为人脸图像对应的三维人脸特征点集标注,并基于所述真实三维人脸特征点集对预设网络模型输出的三维人脸特征点集进行衡量。
进一步,在本实施例的一个实现方式中,所述将三维人脸特征点集与预设三维人脸模型进行拟合对三维人脸特征点集进行拟合运算,以得到预设三维人脸模型的脸型系数以及表情系数。所述拟合过程可以为:首先,采用3DMM模型的平均脸参数估计对齐参数,其中,每个对齐参数中的旋转系数的四元数q(q
进一步,在确定对齐参数的基础上,根据对齐参数确定预设三维人脸模型的脸型系数和表情系数具体可以为:通过调整人脸图像的表情参数β
其中,m
此外,对表情参数β
其中,f
可以理解地,求取β和T时同样可以采取类似的策略,用二次函数表达数据项E
E
E
其中,矩阵Q
进一步,在本实施例的一个实现方式中,如图3所示,所述预设网络模型包括卷积模块100、池化模块200以及全连接模块300,所述卷积模块 100的输出端与所述池化模块200的输入端相连接,所述池化模块200的输出端与所述全连接模块300的输入端相连接。由此,所述卷积模块100的输入项为人脸图像,输出项为池化模块200的输入项,池化模块200的输出项为全连接模块300的输入项。相应的,所述预设网络模型根据训练样本集中的人脸图像,生成所述人脸图像对应的预测人脸参数具体包括:
H11、将所述人脸图像输入至所述卷积模块,通过所述卷积模型输出所述人脸图像的第一特征图像;
H12、将所述第一特征图像输入至池化模块,通过所述池化模块输出所述人脸图像的第二特征图像;
H13、将所述第二特征图像输入至全连接模块,通过所述全连接模块输出所述预测人脸参数以及预测三维人脸坐标点集。
具体地,所述卷积模块用于提取人脸图像的图像特征,所述卷积模块包括若干依次堆叠的卷积层,若干卷积层中每一卷积层的输入项均为位于其前方的卷积层的输出项,位于最前方的卷积层的输入项为人脸图像。例如,位于最前方的第一卷积层的输入项为人脸图像,第一卷积层对该人脸图像进行特征提取,以得到该人脸图像对应的特征图像A,所述特征图像A 为位于第一卷积层后的第二卷积层的输入项,第二卷积层对所述特征图像A进行特征提取,以得到该人脸图像对应的特征图像B,依次类推直至最后卷积层,通过该最后卷积层输出该人脸图像对应的第一特征图像。在本实施例的一个可能实现方式中,所述卷积模块包括6个卷积层,每个卷积层的卷积核均为3*3,这样通过采用6层3*3卷积层的卷积模块,可以轻量化预设网络模型的的网络框架,在使用预设网络模型训练得到图像识别模型时,可以提高图像识别模型的处理速度,提高三维人脸重建的效率,保证了三维人脸重建的实时性。此外,所述池化模块采用平均池化层,所述全连接模块采用全连接层。其中,所述预测人脸参数为通过将所述人脸图像输出至预设网络模型得到的输出人脸参数,所述预测三维人脸坐标点集为通过将所述人脸图像输出至预设网络模型得到的输出三维人脸坐标点集。
H20、所述预设网络模型根据所述人脸图像对应的真实人脸参数和所述人脸图像对应的预测人脸参数,以及所述人脸图像对应的真实三维人脸特征点集以及预测三维人脸特征点集对所述预设网络模型的模型参数进行修正。
具体地,所述对所述预设网络模型进行修正指的是对所述预设网络模型的模型参数进行修正,所述模型参数是基于真实人脸参数与预测人脸参数,以及真实三维人脸特征点集以及预测三维人脸特征点集确定的总损失值进行修正。那么,在计算所述预设网络模型的总损失值时,可以分别计算真实人脸参数与预测人脸参数的第一损失值和真实三维人脸特征点集以及预测三维人脸特征点集的第二损失值,再根据所述第一损失值和所述第二损失值计算预设网络模型的总损失值。相应的,在本实施例的一个实现方式中所述预设网络模型根据所述人脸图像对应的真实人脸参数和所述人脸图像对应的预测人脸参数,对所述预设网络模型的模型参数进行修正具体包括:
H21、根据所述真实三维人脸特征点集和所述预测三维人脸特征点集计算第一损失值,并根据所述真实人脸参数和所述预测人脸参数确定第二损失值;
H22、根据所述第一损失值以及所述第二损失值计算总损失值,并根据所述总损失值对所述预设网络模型的模型参数进行修正。
具体地,所述真实三维人脸特征点集与预测三维人脸特征点集的第一损失值是根据三维人脸特征点集中每一特征点其对应的预测特征点的损失值确定,其中,所述预测特征点为预测三维特征点集中的特征点。所述第二损失值为根据旋转系数与预测旋转系数、平移系数与预测平移系数、人脸脸型系数与预测人脸脸型系数、以及人脸表情系数与预测人脸表情系数计算得到,这样通过将真实三维人脸特征点集与预测三维人脸特征点集的第一损失值与人脸参数与预测人脸参数第二损失值混合,可以三维人脸特征点与人脸参数可以相互补充,提高根据预设网络模型输出的真实人脸参数和三维人脸特征点集的准确性,进而可以提高预设网络模型的准确性。同时在提高根据预设网络模型输出的真实人脸参数和三维人脸特征点集的准确性的基础,可以提高预设网络模型的收敛速度,以提高预设网络模型的训练速度。
进一步,所述真实三维人脸特征点集与预测三维人脸特征点集的第一损失值是根据三维人脸特征点集中每一特征点其对应的预测特征点的损失值确定,其中,所述预测特征点为预测三维特征点集中的特征点。由此,所述第一损失值E
进一步,所述第二损失值为根据真实人脸参数与预测人脸参数计算得到,其中,所述真实人脸参数包括旋转系数、平移系数、人脸脸型系数和人脸表情系数。由此,所述第二损失值是根据旋转系数与预测旋转系数、平移系数与预测平移系数、人脸脸型系数与预测人脸脸型系数、以及人脸表情系数与预测人脸表情系数计算得到。相应的,所述第二损失值E
其中,E
进一步,所述预测三维人脸图像的顶点坐标及平移向量均与人脸图像对齐的,人脸脸型系数的取值范围和平移向量的取值范围均为[0,120],取值变化很大;而旋转角度四元数的取值范围及表情参数的取值变化均在 [0,1],取值变化比坐标变化小,从而若将它们同等对待,那么预设网络模型会优先优化人脸形状,导致旋转系数、表情参数预测不准。由此,在本实施例的一个实现方式中,可以为所述第一损失值和第二损失值分配权重值。相应的,所述根据所述第一损失值以及所述第二损失值计算总损失值,并根据所述总损失值对所述预设网络模型的模型参数进行修正具体为:
H221、根据预设权重参数集、所述第一损失值和第二损失值计算总损失值;
H222、根据所述总损失值对所述预设网络模型的模型参数进行修正。
具体地,所述预设权重参数集包括第一损失值的第一权重系数和第二损失值的第二权重系数集,所述第二权重系数集包括旋转系数权重、平移权重系数、人脸脸型系数权重以及人脸表情系数。其中,所述第一权重系数、旋转系数权重、平移权重系数、人脸脸型系数权重以及人脸表情系数权重均为预先配置的,例如,所述第一权重系数为1,旋转系数权重为100、平移系数权重为1、人脸脸型系数权重为50,以及人脸表情系数权重为50 等。由此,在实施例的一个可能实现方式中,所述总损失值的表达式可以为:
其中,w
进一步,在本实施例的一个实现方式中,在根据第一损失值和第二损失值计算中损失中,在获取到各真实三维人脸特征点与预测三维人脸特征点的损失值后,可以采用加权的方式计算第一损失值。由此,第一损失值可以为
H30、所述预设网络模型继续执行根据训练样本集中的下一组训练样本中的人脸图像,生成所述人脸图像对应的预测人脸参数以及预测三维人脸特征点集的步骤,直至所述预设网络模型的训练情况满足预设条件,以得到所述图像处理模型。
具体地,所述预设条件包括总损失值满足预设要求或者训练次数达到预设次数。所述预设要求可以是根据图像识别模型的精度来确定,这里不做详细说明,所述预设次数可以为预设网络模型的最大训练次数,例如, 2000次等。由此,在预设网络模型输出预测人脸参数后,根据所述预测人脸参数以及所述真实人脸参数、预测三维人脸特征点集以及真实三维人脸特征点集来计算预设网络模型的总损失值,在计算得到总损失值后,判断所述总损失值是否满足预设要求;若总损失值满足预设要求,则结束训练;若总损失值不满足预设要求,则判断所述预设网络模型的训练次数是否达到预测次数,若未达到预设次数,则根据所述总损失值对所述预设网络模型的网络参数进行修正;若达到预设次数,则结束训练。这样通过总损失值和训练次数来判断预设网络模型训练是否结束,可以避免因总损失值无法达到预设要求而造成预设网络模型的训练进入死循环。
进一步,由于对预设网络模型的网络参数进行修改是在预设网络模型的训练情况未满足预设条件(例如,总损失值未满足预设要求并且训练次数未达到预设次数)时,从而在根据总损失值对所述预设网络模型的网络参数进行修正后,需要继续对网络模型进行训练,即继续执行将训练图像集中的人脸图像输入预设网络模型的步骤。其中,继续执行将训练图像集中人脸图像输入预设网络模型中的人脸图像可以为未作为输入项输入过预设网络模型的人脸图像。例如,训练图像集中所有人脸图像均具有唯一图像标识(例如,图像编号),第一次训练输入预设网络模型的人脸图像的图像标识与第二次训练输入预设网络模型的人脸图像的图像标识不同,如,第一次训练输入预设网络模型的人脸图像的图像编号为1,第二次训练输入预设网络模型的人脸图像的图像编号为2,第N次训练输入预设网络模型的人脸图像的图像编号为N。当然,在实际应用中,由于训练图像集中的人脸图像的数量有限,为了提高图像识别模型的训练效果,可以依次将训练图像集中的人脸图像输入至预设网络模型以对预设网络模型进行训练,当训练图像集中的所有人脸图像均输入过预设网络模型后,可以继续执行依次将训练图像集中的人脸图像输入至预设网络模型的操作,以使得训练图像集中的训练图像组按循环输入至预设网络模型。需要说明的是,在将人脸图像输入预设网络模型训练的过程中,可以按照各个人脸图像的图像编号顺序输入,也可以不按照各个人脸图像的图像编号顺序输入,当然,可以重复使用同一张人脸图像对预设网络模型进行训练,也可以不重复使用同一张人脸图像对预设网络模型进行训练,在本实施例中,不对“继续执行将训练图像集中的人脸图像输入预设网络模型的步骤”的具体实现方式进行限定。
举例说明:设训练样本集包括73172张人脸图像,测试数据集包含24340 张人脸图像,验证数据集包含24170张人脸图像,训练集、测试集以及验证集的中人脸图像不重复。预设训练条件为初始学习率设置为0.0000005,第50、75、100、150、200、300个epcho的时候学习率变为之前的四分之一,训练批包含的训练样本的数据设置为96。
S20、通过所述图像处理模型确定所述待处理人脸图像对应的人脸参数以及三维人脸特征点集。
具体地,所述通过所述图像识别模型确定所述待处理人脸图像对应的人脸参数以及三维人脸特征点集指的是:将所述待处理人脸图像作为所述图像识别模型的输入项输入至所述图像识别模型中,通过所述图像识别模型输出所述待处理人脸图像的人脸参数以及三维人脸特征点集,其中,所述人脸参数包括对齐参数以及三维模型参数,所述对齐参数包括旋转参数以及平移参数,所述三维模型参数包括人脸脸型系数和人脸表情系数。所述对齐参数用于将根据真实人脸参数得到的重建三维人脸图像与其对应的待处理人脸图像进行对齐,以使得三维人脸图像的人脸朝向以及人脸部位与人脸图像的人脸超声以及人脸部位对应。
进一步,由所述图像识别模型的训练过程可以知道,所述图像识别模型包括卷积模型、池化模块以及全连接模块,从而在通过所述图像识别模型确定所述待处理人脸图像对应的人脸参数具体包括:
将所述待处理人脸图像输入至所述卷积模块,通过所述卷积模型输出所述人脸图像的第一特征图像;
将所述第一特征图像输入至池化模块,通过所述池化模块输出所述人脸图像的第二特征图像;
将所述第二特征图像输入至全连接模块,通过所述全连接模块输出所述待处理人脸图像对应的人脸参数以及三维人脸特征点集。
具体地,所述卷积模块提取输入的待处理人脸图像的图像特征以得到第一特征图像,并将第一特征图像输入至池化模块,所述池化模块提取输入的第一特征图像的特征以得到第二特征图像,并将第二特征图像输入至全连接模块,通过全连接模型得到待处理人脸图像对应的人脸参数。其中,所述卷积模块的结构与预设网络模型中的卷积模块的结构相同,具体可以参照预设网络模型中的卷积模块的结构的说明。所述图像识别模型的卷积模块、池化模块以及全连接模块对待处理人脸图像的处理过程与预设网络模型中的卷积模块、池化模块以及全连接模块对人脸图像的处理过程相同,从而具体可以参数上述步骤H10-H30,这里就不在赘述。
可以理解的是,图像识别模型在训练过程中对应的网络结构,与在应用过程(获取待处理人脸图像的人脸参数)中所对应的网络结构相同,并且所述图像识别图像在训练过程中的处理过程,与在应用过程中的处理过程也相同。例如,在训练的过程中,图像识别模型包括卷积模块、池化模块和全连接模块,那么相应地,在通过图像识别模型去除待处理人脸图像对应的人脸参数时,图像识别模型也包括卷积模块、池化模块和全连接模块。
综上,本实施例提供了一种图像识别方法所述方法采用图像识别模型获取待处理人脸图像的人脸参数以及三维人脸特征点集,所述图像识别模型为基于训练样本训练的,所述训练样本集中的每一训练样本组均包括人脸图像以及该人脸图像对应的真实人脸参数以及三维人脸特征点集,所述真实人脸参数包括对齐参数以及预设人脸三维模型的模型参数,这样通过所述图像识别模型可以同步用于生成三维人脸图像的人脸参数以及三维人脸特征点集,在获取过程中用于生成三维人脸图像的人脸参数与三维人脸特征点集可以相互验证,提高了三维人脸图像以及三维人脸特征点集的准确性。同时,对于任何姿态的人脸图像,均可以获取到该人脸图像对应的对齐参数和模型参数,根据所述模型参数生成三维人脸图像,再根据所述对齐参数对三维人脸图像进行调整,实现了任何姿态人脸的三维图像重建,提高了三维人脸重建的实时性,给用户的使用带来方便。
进一步,在本实施例的一个实现方式中,在获取到三维人脸特点集以及人脸参数后,可以单独使用该三维人脸特征点集,也可以单独使用人脸参数,也可以是同时使用三维人脸特征点集以及人脸参数,具体可以根据使用所述图像识别模型的功能(例如,应用程序)的需求确定。在本实施例的一个可能实现方式中,所述图像识别方法还包括:
S30、根据所述人脸参数以及所述预设人脸三维模型生成所述待处理人脸图像对应的三维人脸图像;
S40、将所述三维人脸特征点集中各人脸特征点标记于所述三维人脸图像上。
具体地,所述人脸参数包括对齐参数以及人脸系数,所述根据所述人脸参数以及所述预设三维人脸模型生成所述待处理人脸图像对应的三维人脸图像指的是根据人脸系数生成候选三维人脸图像,在根据对齐参数对候选三维人脸图像进行调整,以得到所述待处理人脸图像对应的三维人脸图像。此外,在获取到三维人脸图像后,可以将所述三维人脸特征点集与所述三维人脸图像进行匹配,以将所述三维人脸特征点集中各三维人脸特征点映射至三维人脸图像上,并在所述三维人脸图像中显示所述各三维人脸特征点,从而实现同步生成三维人脸图像以及在所述三维人脸图像上标记三维人脸特点。
进一步,在本实施例的一个实现方式中,所述根据所述人脸参数以及所述预设人脸三维模型生成所述待处理人脸图像对应的三维人脸图像具体包括:
S31、根据所述人脸系数以及所述预设人脸三维模型生成候选三维人脸图像;
S32、根据所述对齐参数对所述候选三维人脸图像进行调整,以得到所述待处理人脸图像对应的三维人脸图像。
具体地,所述根据所述模型参数以及所述预设人脸三维模型生成候选三维人脸图像指的是将所述模型参数输入至预设人脸三维模型,通过所述三维人脸模型生成候选三维人脸图像,其中,所述人脸系数包括人脸脸型系数以及人脸表情系数,当将所述人脸脸型系数以及人脸表情系数输入至预设人脸三维模型后,所述预设人脸三维模型可以基于所述人脸脸型参数以及人脸表情参数生成三维人脸图像。当然,值得说明的是,基于所述人脸脸型参数、人脸表情参数以及预设三维人脸模型生成三维人脸图像的过程与上述实施例中基于人脸参数生成三维人脸模型的过程相同,具体可以参数上述实施例。
进一步,所述候选三维人脸图像可能不与待处理人脸图像对齐,从而在获取到候选三维人脸图像后,可以根据旋转系数对所述候选三维人脸图像进行旋转,以使得旋转后的候选三维人脸图像的人脸朝向与待处理人脸图像的人脸朝向一致。同时,在获取到旋转后的候选三维人脸图像后,可以通过平移系数对旋转得到的三维人脸图像进行平移,使得所述三维人脸图像的人脸部位(例如,人脸五官)与待处理人脸图像的人脸部位对齐。
当然,
基于上述图像识别方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的图像识别方法中的步骤。
基于上述图像识别方法,本发明还提供了一种终端设备,如图3所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory) 22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种图像识别方法、存储介质及终端设备
- 一种全景图像的识别方法、装置、终端设备和存储介质