发明内容
为克服相关技术中存在的问题,本公开的目的是提供一种人脸姿态确定方法、装置、存储介质和电子设备。
为了实现上述目的,根据本公开实施例的第一方面,提供一种人脸姿态确定方法,所述方法包括:
从原始图像中获取包含目标人脸的区域图像;
通过所述区域图像和训练好的区间估计模型确定所述目标人脸在每个转动方向上所处的目标角度区间;
通过所述区域图像和所述目标角度区间对应的训练好的角度估计模型,确定所述目标人脸在每个所述转动方向上的姿态角度,作为所述目标人脸的人脸姿态信息。
可选的,在所述从原始图像中获取包含目标人脸的区域图像之前,所述方法还包括:
将目标转动方向的角度范围划分为多个角度区间,所述目标转动方向为多个所述转动方向中的任一转动方向;
通过所述目标转动方向对应的第一训练数据集对预设的区间估计模型进行训练,以获取所述目标转动方向对应的训练好的区间估计模型;其中,所述第一训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在所述目标转动方向上所处的角度区间;
通过每个所述角度区间对应的第二训练数据集对预设的角度估计模型进行训练,以获取每个所述角度区间对应的训练好的角度估计模型;其中,所述第二训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在所述目标转动方向上的姿态角度,所述第二训练数据集中的多个人脸图像对应的姿态角度处于相同的角度区间。
可选的,所述通过所述区域图像和训练好的区间估计模型确定所述目标人脸在每个所述转动方向上所处的目标角度区间,包括:
针对于多个所述转动方向中的任一转动方向,将所述区域图像作为目标区间估计模型的输入,以获取所述目标区间估计模型输出的所述目标人脸针对于该转动方向上的每个角度区间的权重值,所述目标区间估计模型为该转动方向对应的训练好的区间估计模型;
获取该转动方向上的具备最大权重值的多个角度区间,作为多个所述目标角度区间。
可选的,所述通过所述区域图像和所述目标角度区间对应的训练好的角度估计模型,确定所述目标人脸在每个所述转动方向上的姿态角度,作为所述目标人脸的人脸姿态信息,包括:
针对于多个所述转动方向中的任一转动方向,将所述区域图像作为目标角度估计模型的输入,以获取所述目标角度估计模型输出的所述目标人脸在该转动方向上的姿态角度估计值,所述目标角度估计模型为每个所述目标角度区间对应的训练好的角度估计模型;
根据每个所述目标角度区间对应的权重值,将多个所述姿态角度估计值的加权平均值作为所述目标人脸在该转动方向上的姿态角度;
综合所述目标人脸在多个所述转动方向上的姿态角度,以获取所述人脸姿态信息。
根据本公开实施例的第二方面,提供一种人脸姿态确定装置,所述装置包括:
图像获取模块,用于从原始图像中获取包含目标人脸的区域图像;
角度区间确定模块,用于通过所述区域图像和训练好的区间估计模型确定所述目标人脸在每个转动方向上所处的目标角度区间;
姿态确定模块,用于通过所述区域图像和所述目标角度区间对应的训练好的角度估计模型,确定所述目标人脸在每个所述转动方向上的姿态角度,作为所述目标人脸的人脸姿态信息。
可选的,所述装置还包括:
角度区间划分模块,用于将目标转动方向的角度范围划分为多个角度区间,所述目标转动方向为多个所述转动方向中的任一转动方向;
第一模型训练模块,用于通过所述目标转动方向对应的第一训练数据集对预设的区间估计模型进行训练,以获取所述目标转动方向对应的训练好的区间估计模型;其中,所述第一训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在所述目标转动方向上所处的角度区间;
第二模型训练模块,用于通过每个所述角度区间对应的第二训练数据集对预设的角度估计模型进行训练,以获取每个所述角度区间对应的训练好的角度估计模型;其中,所述第二训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在所述目标转动方向上的姿态角度,所述第二训练数据集中的多个人脸图像对应的姿态角度处于相同的角度区间。
可选的,所述角度区间确定模块,用于:
针对于多个所述转动方向中的任一转动方向,将所述区域图像作为目标区间估计模型的输入,以获取所述目标区间估计模型输出的所述目标人脸针对于该转动方向上的每个角度区间的权重值,所述目标区间估计模型为该转动方向对应的训练好的区间估计模型;
获取该转动方向上的具备最大权重值的多个角度区间,作为多个所述目标角度区间。
可选的,所述姿态确定模块,用于:
针对于多个所述转动方向中的任一转动方向,将所述区域图像作为目标角度估计模型的输入,以获取所述目标角度估计模型输出的所述目标人脸在该转动方向上的姿态角度估计值,所述目标角度估计模型为每个所述目标角度区间对应的训练好的角度估计模型;
根据每个所述目标角度区间对应的权重值,将多个所述姿态角度估计值的加权平均值作为所述目标人脸在该转动方向上的姿态角度;
综合所述目标人脸在多个所述转动方向上的姿态角度,以获取所述人脸姿态信息。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本公开实施例第一方面提供的人脸姿态确定方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开实施例第一方面提供的人脸姿态确定方法的步骤。
通过上述技术方案,本公开能够从原始图像中获取包含目标人脸的区域图像;通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间;通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。能够通过包含两层模型的结构,在对每个角度估计模型进行角度区间约束后,再通过角度区间对应的角度估计模型确定图像中人脸的姿态信息,在提高人脸姿态检测的适用范围和灵活性的同时,避免人脸姿态检测中出现角度值抖动的问题,提高人脸姿态检测的精确度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种人脸姿态确定方法的流程图,如图1所示,该方法包括:
步骤101,从原始图像中获取包含目标人脸的区域图像。
示例地,可以通过现有的人脸识别算法,例如,SeetaFace人脸识别引擎或MTCNN(Multi-task Cascaded Convolutional Networks,多任务层级卷积网络)算法等,确定该原始图像中的该目标人脸,再将该目标人脸所处的方形图片区域提取出来,作为该区域图像。该原始图像可以为图片,或者视频中的一帧图像。
步骤102,通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间。
示例地,该区间估计模块为预先训练好的用于对该目标人脸所处的角度区间进行分析的机器学习模型。通常,人脸的姿态角度随着头部的移动可以在三个方向(即三个转动方向)上变化,包括向左右两个方向转头、向上或向下点头以及向左右两个方向偏头。在本公开实施例中,可以分别针对每个转动方向训练出一个该区间估计模型和多个下列步骤103中的角度估计模型,进而通过这些模型对该目标人脸在每个转动方向上的姿态角度进行确定。具体地,该区间估计模型实际输出的是该区域图像中的目标人脸针对于某一转动方向中的每个角度区间的权重值,该权重值可以认为用于表征该目标人脸与每个角度区间的匹配度。
步骤103,通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。
示例地,可以将如上所述的三个转动方向中的任一转动方向的角度范围划分为多个角度区间,并针对每个角度区间建立角度估计模型,进而结合该目标角度区间的权重值和该角度估计模型输出的姿态角度估计值,获取确定该目标人脸在上述每个转动方向上的姿态角度。可以理解的是,在上述三个转动方向上确定的三个姿态角度可以组成该目标人脸的人脸姿态信息。
综上所述,本公开能够从原始图像中获取包含目标人脸的区域图像;通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间;通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。能够通过包含两层模型的结构,在对每个角度估计模型进行角度区间约束后,再通过角度区间对应的角度估计模型对图像中人脸的姿态角度进行检测,进而得到人脸姿态信息,在提高人脸姿态检测的适用范围和灵活性的同时,避免人脸姿态检测中出现角度值抖动的问题,提高人脸姿态检测的精确度。
图2是根据图1所示实施例示出的另一种人脸姿态确定方法的流程图,如图2所示,在上述步骤101之前,该方法还包括:
步骤104,将目标转动方向上的角度范围划分为多个角度区间。
其中,该目标转动方向为多个转动方向中的任一转动方向。
示例地,由于在每个转动方向上建立模型和姿态角度确定的过程相同,因此在本公开实施例中仅以在一个转动方向(该目标转动方向)上进行角度区间划分、模型建立和姿态角度确定的过程对人脸姿态确定方法进行说明。具体地,基于人体的生理构造,人脸在各个转动方向上能够转动的角度范围都大约为180度,可以根据人脸姿态检测的精确度需求,确定将该180度的角度范围划分为多个角度区间。例如,可以每隔30度划分一个区间,则该角度范围被划分为6个角度区间。
步骤105,通过该目标转动方向对应的第一训练数据集对预设的区间估计模型进行训练,以获取该目标转动方向对应的训练好的区间估计模型。
其中,该第一训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在该目标转动方向上所处的角度区间。
示例地,该区间估计模型可以为预先确定的神经网络模型,在上述步骤101之前,可以将一个人脸图像的图像数据和该人脸图像中的人脸在该目标转动方向上的姿态角度所处的角度区间作为一个训练样本数据(即第二训练数据集中的一个训练数据)。通过多个训练样本数据对该神经网络模型进行训练,以得到能够确定图像中人脸针对于每个角度区间的权重值的区间估计模型。或者,在另一种实现方式中,也可以训练出能够直接确定图像中人脸对应的角度区间的区间估计模型。
步骤106,通过上述每个角度区间对应的第二训练数据集对预设的角度估计模型进行训练,以获取上述每个角度区间对应的训练好的角度估计模型。
其中,该第二训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在该目标转动方向上的姿态角度,该第二训练数据集中的多个人脸图像对应的姿态角度处于相同的角度区间。
示例地,该角度估计模型也可以为预先确定的神经网络模型,在步骤106,可以将一个人脸图像的图像数据和该人脸图像中的人脸在该目标转动方向上的姿态角度作为一个训练样本数据(即第二训练数据集中的一个训练数据)。需要说明的是,一个角度区间对应一个第二训练数据集,该第二训练数据集中的多个人脸图像对应的姿态角度处于相同的角度区间。如此,训练出的多个区间估计模型即可以和多个角度区间一一对应。例如,上述的180度的角度范围被划分为6个角度区间。此时可以选取6个相同或不同的神经网络模型,通过6组不同的训练数据集对这6个神经网络模型进行训练。在训练之后,即可以获取到6个对应于不同角度区间的角度估计模型。
图3是根据图2所示实施例示出的一种确定人脸所处的角度区间的方法的流程图,如图3所示,上述步骤102,包括:
步骤1021,针对于多个转动方向中的任一转动方向,将该区域图像作为目标区间估计模型的输入,以获取该目标区间估计模型输出的该目标人脸针对于该转动方向上的每个角度区间的权重值。
其中,该目标区间估计模型为该转动方向对应的训练好的区间估计模型。
步骤1022,获取该转动方向上的具备最大权重值的多个角度区间,作为多个目标角度区间。
依然以上述的180度的角度范围被划分为6个角度区间为例,在将该区域图像输入训练后的区域估计模型后,该目标区间估计模型会输出6个权重值,每个权重值对应于一个角度区间。可以根据该权重值从6个角度区间中选出预设数量的,例如3个,权重值最大的角度区间(即目标角度区间)。如此,也就可以确定在后续的处理过程中通过这3个角度区间对应的角度估计模型对该目标人脸的姿态角度进行检测。
图4是根据图2所示实施例示出的一种确定人脸姿态信息的方法的流程图,如图4所示,上述步骤103,包括:
步骤1031,针对于多个转动方向中的任一转动方向,将该区域图像作为目标角度估计模型的输入,以获取该目标角度估计模型输出的该目标人脸在该转动方向上的姿态角度估计值。
其中,该目标角度估计模型为上述每个目标角度区间对应的训练好的角度估计模型。
步骤1032,根据上述每个目标角度区间对应的权重值,将多个姿态角度估计值的加权平均值作为该目标人脸在该转动方向上的姿态角度。
示例地,在步骤102确定了预设数量的,例如3个,角度估计模型后,可以将该区域图像输入至每个角度估计模型,进而得到这3个角度估计模型输出的3个姿态角度估计值。再将输出该姿态角度估计值的模型对应的角度区间的权重值作为该姿态角度估计值的权重,计算3个姿态角度估计值的加权平均值,该加权平均值即为该目标人脸在一个转动当向上的姿态角度。
步骤1033,综合该目标人脸在多个转动方向上的姿态角度,以获取该人脸姿态信息。
示例地,综合通过上述步骤1031和1032确定的多个,例如三个,转动方向上的三个姿态角度,即可以得到该目标人脸的人脸姿态信息。
综上所述,本公开能够从原始图像中获取包含目标人脸的区域图像;通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间;通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。能够通过包含两层模型的结构,在对每个角度估计模型进行角度区间约束后,再通过多个角度区间对应的角度估计模型对图像中人脸的姿态角度进行检测,并根据角度区间的权重对多个姿态角度进行融合,进而得到人脸姿态信息,在提高人脸姿态检测的适用范围和灵活性的同时,避免人脸姿态检测中出现角度值抖动的问题,提高人脸姿态检测的精确度。
图5是根据一示例性实施例示出的一种人脸姿态确定装置的框图,如图5所示,该模块500可以包括:
图像获取模块510,用于从原始图像中获取包含目标人脸的区域图像;
角度区间确定模块520,用于通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间;
姿态确定模块530,用于通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。
图6是根据图5所示实施例示出的另一种人脸姿态确定装置的框图,如图6所示,该装置500还包括:
角度区间划分模块540,用于将目标转动方向的角度范围划分为多个角度区间,该目标转动方向为多个转动方向中的任一转动方向;
第一模型训练模块550,用于通过该目标转动方向对应的第一训练数据集对预设的区间估计模型进行训练,以获取该目标转动方向对应的训练好的区间估计模型;其中,该第一训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在该目标转动方向上所处的角度区间;
第二模型训练模块560,用于通过上述每个角度区间对应的第二训练数据集对预设的角度估计模型进行训练,以获取上述每个角度区间对应的训练好的角度估计模型;其中,该第二训练数据集中的每个训练数据用于表征每个人脸图像中的人脸在该目标转动方向上的姿态角度,该第二训练数据集中的多个人脸图像对应的姿态角度处于相同的角度区间。
可选的,该角度区间确定模块520,用于:
针对于多个转动方向中的任一转动方向,将该区域图像作为目标区间估计模型的输入,以获取该目标区间估计模型输出的该目标人脸针对于该转动方向上的每个角度区间的权重值,该目标区间估计模型为该转动方向对应的训练好的区间估计模型;
获取该转动方向上的具备最大权重值的多个角度区间,作为多个目标角度区间。
可选的,该姿态确定模块530,用于:
针对于多个转动方向中的任一转动方向,将该区域图像作为目标角度估计模型的输入,以获取该目标角度估计模型输出的该目标人脸在该转动方向上的姿态角度估计值,该目标角度估计模型为上述每个目标角度区间对应的训练好的角度估计模型;
根据上述每个目标角度区间对应的权重值,将多个姿态角度估计值的加权平均值作为该目标人脸在该转动方向上的姿态角度;
综合该目标人脸在多个转动方向上的姿态角度,以获取该人脸姿态信息。
综上所述,本公开能够从原始图像中获取包含目标人脸的区域图像;通过该区域图像和训练好的区间估计模型确定该目标人脸在每个转动方向上所处的目标角度区间;通过该区域图像和该目标角度区间对应的训练好的角度估计模型,确定该目标人脸在上述每个转动方向上的姿态角度,作为该目标人脸的人脸姿态信息。能够通过包含两层模型的结构,在对每个角度估计模型进行角度区间约束后,再通过多个角度区间对应的角度估计模型对图像中人脸的姿态角度进行检测,并根据角度区间的权重对多个姿态角度进行融合,进而得到人脸姿态信息,在提高人脸姿态检测的适用范围和灵活性的同时,避免人脸姿态检测中出现角度值抖动的问题,提高人脸姿态检测的精确度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702,多媒体组件703,输入/输出(I/O)接口704,以及通信组件705。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的人脸姿态确定方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的人脸姿态确定方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的人脸姿态确定方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。