发明内容
本公开提出了一种视点预测方法及装置、电子设备和存储介质技术方案。
根据本公开的一方面,提供了一种视点预测方法,包括:
获取待预测的彩色图像及其对应的深度图像;
利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框;
利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像;
对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像;
利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息;
基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像进行视点预测。
优选地,所述利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像的方法,包括:
分别计算所述眼睛对应的左眼检测框及右眼检测框的第一对角线长度及第二对角线长度;
基于设定倍数,分别利用所述第一对角线长度及所述第二对角线长度,确定左眼区域及右眼区域;
分别基于所述左眼区域及所述右眼区域,从所述彩色图像中分别裁剪出左眼及右眼对应的眼睛图像;以及/或,
在所述对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像之前,还包括:
获取设定像素尺寸;
分别对左眼及右眼对应的眼睛图像进行像素调整,达到所述设定像素尺寸。
优选地,所述对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像的方法,包括:
分计算左眼或右眼对应的眼睛图像两侧与深度相机之间的第一轴向距离及第二轴向距离;
根据所述第一轴向距离及第二轴向距离,分别计算所述左眼或右眼对应的眼睛图像对应的透视变换比例;
根据所述左眼或右眼对应的眼睛图像对应的透视变换比例,分别对所述左眼或右眼对应的眼睛图像进行矫正,得到矫正后的眼睛图像。
优选地,所述预设视点预测模型,包括:第一特征提取之路及第二特征提取之路、分别与所述第一特征提取之路及所述第二特征提取之路连接的第一拼接层、与所述拼接层连接的用于特征压缩的全连接层、与所述全连接层连接的用于拼接所述位置和姿态信息的第二拼接层,及与所述第二拼接层连接的分类层;
利用所述第一特征提取之路及所述第二特征提取之路,分别对所述眼睛图像的左眼图像及右眼图像进行特征提取,得到第一特征图及第二特征图;
利用所述第一拼接层,对所述第一特征图及所述第二特征图进行拼接,得到拼接特征图;
利用所述全连接层,对所述拼接特征图进行特征压缩,得到压缩特征;
利用所述分类层及所述压缩特征,分别得到所述左眼及右眼的视点坐标,完成视点预测;以及/或,
所述第一特征提取之路,包括:第一卷积层及与其连接的第一池化层,与所述第一池化层连接的第一注意力机制模块、与所述第一注意力机制模块及所述第一池化层连接的第二卷积层及与其连接的第二池化层;
利用所述第一卷积层及与其连接的第一池化层,对所述眼睛图像中的左眼图像进行特征提取及池化,得到第一待处理特征图;
利用所述第一注意力机制模块,对所述第一待处理特征图进行注意力提取,得到对应的第一权重特征图;
根据所述第一待处理特征图及所述第一权重特征图,得到所述第一特征图;以及/或,
所述根据所述第一待处理特征图及所述第一权重特征图,得到所述第一特征图的方法,包括:对所述第一待处理特征图及所述第一权重特征图进行乘法操作,得到所述第一特征图;以及/或,
所述第一特征提取之路,包括:第三卷积层及与其连接的第三池化层,与所述第三池化层连接的第二注意力机制模块、与所述第二注意力机制模块及所述第三池化层连接的第四卷积层及与其连接的第四池化层;
利用所述第三卷积层及与其连接的第三池化层,对所述眼睛图像中的右眼图像进行特征提取及池化,得到第二待处理特征图;
利用所述第二注意力机制模块,对所述第二待处理特征图进行注意力提取,得到对应的第二权重特征图;
根据所述第二待处理特征图及所述第二权重特征图,得到所述第二特征图;以及/或,
所述根据所述第二待处理特征图及所述第二权重特征图,得到所述第二特征图的方法,包括:对所述第二待处理特征图及所述第二权重特征图进行乘法操作,得到所述第二特征图;以及/或,
其中,所述全连接层,包括:第一全连接层及与其连接的第二全连接层;
利用所述第一全连接层及与其连接的第二全连接层,对所述拼接特征图进行特征压缩,得到压缩特征;以及/或,
所述分类层配置为回归层。
优选地,在所述基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测之前,还包括:
利用训练集的矫正后眼睛图像及位置和姿态信息,按照预设训练规则对预设视点预测模型进行训练得到训练后的预设视点预测模型;
进而,基于训练后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测;以及/或
所述按照预设训练规则对预设视点预测模型进行训练得到训练后的预设视点预测模型的方法,包括:
获取设定训练次数;
当对预设视点预测模型进行训练的次数达到所述设定训练次数,则停止对所述预设视点预测模型进行训练,得到训练后的预设视点预测模型;以及/或
在基于训练后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测之前,还包括:
利用校准集的矫正后眼睛图像及位置和姿态信息,按预设校准规则对所述训练后的预设视点预测模型的输出层进行校准,得到校准的预设视点预测模型;
进而,基于校准后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测;以及/或
所述按预设校准规则对所述训练后的预设视点预测模型的输出层进行校准,得到校准的预设视点预测模型的方法,包括:
获取预设损失值
计算校准过程中得到的视点坐标及其对应的视点坐标标签的损失值;
当所述损失值达到所述预设损失值,则停止对所述预设视点预测模型进行校准,得到校准的预设视点预测模型。
优选地,所述的方法,还包括:确定用于训练和/或校准损失函数的方法,包括:
计算训练和/或校准过程中每次预测得到的视点坐标中X坐标与真实X坐标对应的第一范数;
计算训练和/或校准过程中每次预测得到的视点坐标中Y坐标与真实Y坐标对应的第二范数;
计算训练和/或校准过程中每次预测得到的视点坐标中Y坐标平方值与真实Y坐标平方值对应的第三范数;
计算训练和/或校准过程中每次预测得到的视点坐标与真实视点坐标对应的第第四范数;
基于所述第一范数及其对应的第一权重系数、所述第二范数及其对应的第二权重系数、所述第三范数及其对应的第三权重系数、所述第四范数及其对应的第四权重系数,确定用于训练和/或校准损失函数;以及/或
所述第一权重系数、所述第二权重系数、所述第三权重系数、所述第四权重系数分别配置为2、2、1、4。
优选地,所述的方法,还包括:对相邻设定帧数对应的所述视点预测的多个视点坐标进行滤波处理,得到最终的视点坐标;以及/或
所述对相邻设定帧数对应的所述视点预测的多个视点坐标进行滤波处理的方法,包括:
对所述相邻设定帧数对应的所述视点预测的多个视点坐标中的X坐标进行均值处理,得到最终的视点坐标中的X坐标;
对所述相邻设定帧数对应的所述视点预测的多个视点坐标中的Y坐标进行均值处理,得到最终的视点坐标中的Y坐标;以及/或,
所述利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息的方法,包括:将所述深度图像与所述彩色图像对齐;生成对齐后的所述深度图像对应的点云数组;基于所述点云数组中质心单元的索引及所述眼睛和嘴对应的检测框的中心确定眼睛及嘴对应的位置;基于所述眼睛及嘴对应的位置,计算所述眼睛及嘴所在平面的法向量,并将所述法向量转换为旋转向量,进而得到姿势信息。
根据本公开的一方面,提供了一种视点预测装置,包括:
获取单元,用于获取待预测的彩色图像及其对应的深度图像;
第一确定单元,用于利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框;
第二确定单元,用于利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像;
矫正单元,用于对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像;
第三确定单元,用于利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息;
预测单元,用于基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像进行视点预测。
根据本公开的一方面,提供了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行上述视点预测方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述视点预测方法。
在本公开实施例中,本公开提出了一种视点预测方法及装置、电子设备和存储介质技术方案,可提高基于外貌的视点预测的准确性和稳健性,而无需锁定头部,以解决目前基于外貌的视点预测的准确性及稳健性差,并需要进行头部锁定的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
可以理解,本公开提及的上述各个视点预测方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。
此外,本公开还提供了视点预测装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种视点预测方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图2示出根据本公开实施例的视点预测方法的流程图;图3示出根据本公开实施例的视点预测方法的具体实现流程图。其中,图3(a)为视点预测系统的部署或视点预测方法的具体实现流程图;图3(b)为通用注视点网络模型的训练;图3(c)为视点预测网络模型的校准。如图2及图3所示,所述视点预测方法,包括:步骤S101:获取待预测的彩色图像及其对应的深度图像;步骤S102:利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框;步骤S103:利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像;步骤S104:对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像;步骤S105:利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息;步骤S106:基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像进行视点预测。可提高基于外貌的视点预测的准确性和稳健性,而无需锁定头部,以解决目前基于外貌的视点预测的准确性及稳健性差,并需要进行头部锁定的问题。
步骤S101:获取待预测的彩色图像及其对应的深度图像。
在本公开的实施例及其他可能实施例中,可利用相机采集待预测的彩色图像及其对应的深度图像。例如,所述相机配置为深度相机,利用所述深度相机采集的彩色图像及及其对应的深度图像。
步骤S102:利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框。
在本公开的实施例及其他可能实施例中,所述预设目标检测模型配置可为YOLO目标检测模型配置或其他目标检测模型,例如YOLOv5目标检测模型。
在本公开的实施例及其他可能实施例中,如图3(a)所示,采用YOLO目标检测模型来定位和裁剪眼睛图像,同时利用深度相机来计算眼睛和嘴巴的三维空间位置(眼睛和嘴对应的检测框)。接下来,用一个多模态(眼睛图像/矫正后的眼睛图像及其对应的位置和姿态信息)视点预测网络模型来预测屏幕上的注视点(视点)。为了完成这个任务,我们需要收集并制作两个数据集:一个用于训练YOLO目标检测模型,另一个用于训练视点预测回归模型(视点预测模型Gaze-Point-Net)。
在本公开的实施例及其他可能实施例中,在所述利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框之前,对所述预设目标检测模型进行训练;并基于训练后的预设目标检测模型(增强YOLOv5模型),对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框。
在本公开的实施例及其他可能实施例中,在RGB图像(彩色图像)中定位和标记眼睛和嘴巴,在本研究中采用了YOLOv5作为目标检测模型。YOLOv5将图像划分为几个大小相等的网格,并为每个网格预测目标的位置和类别。该模型拥有快速的速度、高效率、良好的准确性以及检测多种物体类别的优势。此外,YOLOv5采用多尺度训练和测试来提高检测的准确性和速度,同时使用了SPP块和PAN等特殊技术。
在本公开的实施例及其他可能实施例中,对YOLOv5进行了改进,调整了大小并添加了先验框,以更好地完成眼睛和嘴巴的检测任务。具体敌地说,去掉了YOLOv5中大小为20×20的特征层,并添加了一个大小为160×160的特征层,以更好地适应小物体的检测。此外,添加了形状和大小与眼睛和嘴巴类似的先验框,以提高目标检测的性能和准确性。
在本公开的实施例及其他可能实施例中,所述对所述预设目标检测模型进行训练方法,包括:对训练图像进行了旋转,得到旋转图像;并对所述旋转图像调整至设定尺寸的图像,并利用设定像素值对所述设定尺寸的图像进行填充。例如,对已经进行过随机旋转的旋转图像按照设定角度进行进一步的逆时针旋转;其中,设定角度可配置为90度、180度或270度。然后,将这些图像调整为模型所需的正方形尺寸(设定尺寸的图像),并用黑色像素填充任何空白处,够覆盖所有可能旋转角度的分布。
在本公开的实施例及其他可能实施例中,所述对所述预设目标检测模型进行训练方法,还包括:对所述利用设定像素值对所述设定尺寸的图像进行填充后得到的填充图像添加噪声,得到对应的噪声图像。例如,引入了高斯噪声,这显著地增强了我们的模型在检测小物体方面的能力,特别是在眼睛检测方面。这是我们任务的一个亮点。
在本公开的实施例及其他可能实施例中,所述对所述预设目标检测模型进行训练方法,还包括:对所述利用设定像素值对所述设定尺寸的图像进行填充后得到的填充图像或所述噪声图像进行直方图均衡化,得到均衡化图像。例如,尽管训练数据集涵盖了大部分光照条件,但我们采用了直方图均衡化来处理光照差异对模型性能的任何残留影响。这种预处理技术有助于减小不同光照水平的影响,并进一步提高训练图像的整体质量。
在本公开的实施例及其他可能实施例中,所述对所述预设目标检测模型进行训练方法,还包括:对所述利用设定像素值对所述设定尺寸的图像进行填充后得到的填充图像或所述噪声图像或所述均衡化图像进行标准化或归一化,得到标准化或归一化图像。其中,所述标准化图像对应的均值为0,标准偏差为1,有助于更高效稳定的训练过程。
在本公开的实施例及其他可能实施例中,在训练过程中,采用了随机数据拆分技术,将数据集按照8:1:1的比例划分为训练集、验证集和测试集。随机梯度下降(SGD)被用作优化器,批次大小为16。初始学习率设为0.01,并在第二十个训练循环后按照0.9的比例动态降低,总共进行了1000个循环的训练。
在本公开的实施例及其他可能实施例中,所述利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框,包括:获取预测置信度阈值;基于所述预设目标检测模型对所述彩色图像进行目标检测得到的待处理检测框及所述预测置信度阈值,确定眼睛和嘴对应的检测框。
在本公开的实施例及其他可能实施例中,本领域技术人员可根据需要对所述预测置信度阈值进行配置。例如,所述预测置信度阈值配置为0.3。
在本公开的实施例及其他可能实施例中,所述基于所述预设目标检测模型对所述彩色图像进行目标检测得到的待处理检测框及所述预测置信度阈值,确定眼睛和嘴对应的检测框的方法,包括:确定所述待处理检测框中预测置信度大于或等于所述预测置信度阈值对应的阈值检测框;并对所述阈值检测框按照预测置信度对进行排序,将置信度最高的两个阈值检测框配置为眼睛对应的检测框,并将置信度最高的阈值检测框配置为嘴对应的检测框。
在本公开的实施例及其他可能实施例中,例如,在YOLOv5模型的部署阶段,将预测置信度阈值设置为0.3,并滤波每个图像的结果。并按预测置信度对眼睛和嘴巴的检测结果进行排序,并选择置信度最高的两个结果作为眼睛的检测结果,以及置信度最高的结果作为嘴巴的检测结果。
在本公开的实施例及其他可能实施例中,本公开实施例所使用的数据集包含超过10,000张面部分割图像。在应用数据增强技术后,成功地生成了超过70,000张符合YOLO目标检测算法及其数据集格式要求的图像。该数据集涵盖了各种不同的特征,如年龄、性别、发色、面部表情、服装颜色和背景颜色。这些图像以YOLO格式存储,适用于训练目标检测网络。
在本公开的实施例及其他可能实施例中,为了定位并确定相机拍摄图像中眼睛和嘴巴的边界框,设定目标检测模型需要一个训练数据集。本公开考虑使用面部关键点分割数据集来训练目标检测模型,使用公开可用的CelebA Mask-HQ和FASSEG数据集(训练图像)来达成这个目的。
在本公开的实施例及其他可能实施例中,所述训练图像配置有对应的标签。第一步是将这两个面部分割数据集(CelebA Mask-HQ和FASSEG数据集)转换成一个目标检测数据集(训练图像),其中包括原始图像和目标框参数(标签)。获得的面部分割数据集包含原始图像和二值化分割标签。CelebA Mask-HQ数据集的标注格式将每个对象类别(例如眼睛、嘴巴)的二值化分割标签单独存储,而FASSEG数据集则将标注数据存储在RGB彩色图像中,使用不同颜色区分不同的分割区域。为了统一标注数据的存储格式,使用不同分割区域的RGB值将分割标签分开,获得了眼睛和嘴巴的分割标签,从而将两个面部数据集的标签处理成了统一的格式。最终,得到了一个目标检测数据集(所述训练图像及其对应的标签)。
此外,本公开的实施例采用了以下数据增强方法。首先,随机将原始图像顺时针或逆时针旋转设定角度(例如,0至45度),得到旋转图像;并在旋转图像的空白处用设定值(例如,零)进行填充。接着,将填充后旋转图像/旋转图像缩小至设定倍数(例如,0.2至0.8倍)。最后,随机选择了设定数目(例如,七张)预先准备好的杂乱背景图像之一,并将杂乱背景图像粘贴到缩小至设定倍数图像/旋转图像/填充后旋转图像中背景的任意位置。同时,利用了旋转、缩放和平移操作来增强原始图像或将杂乱背景图像粘贴到缩小至设定倍数图像/旋转图像/填充后旋转图像中背景的任意位置后的图像。
步骤S103:利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像。
在本公开的实施例中,所述利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像的方法,包括:分别计算所述眼睛对应的左眼检测框及右眼检测框的第一对角线长度及第二对角线长度;基于设定倍数,分别利用所述第一对角线长度及所述第二对角线长度,确定左眼区域及右眼区域;分别基于所述左眼区域及所述右眼区域,从所述彩色图像中分别裁剪出左眼及右眼对应的眼睛图像。
在本公开的实施例中,在所述对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像之前,还包括:获取设定像素尺寸;分别对左眼及右眼对应的眼睛图像进行像素调整,达到所述设定像素尺寸。
在本公开的实施例及其他可能实施例中,本领域技术人员宁可根据实际需要对所述设定倍数及所述设定像素尺寸进行配置。例如,所述设定倍数及所述设定像素尺寸分别配置为2及36×60。
在本公开的实施例及其他可能实施例中,由于头部沿着相机(深度相机)轴向的旋转,会引入滚动角误差。因此,我们利用图像(深度相机采集的彩色图像)中两眼中心点的坐标来旋转图像(彩色图像),从而纠正图像(彩色图像)并使两眼对齐在同一水平线上。此外,我们使用了坐标旋转算法(公式1)来计算旋转后图像(彩色图像)中目标边界框(检测框)的中心点位置与边界框等信息。
x′=(x-cx)cosα-(y-cy)sinα+cx (1)
y′=(x-cx)sinα+(y-cy)cosα+cy
其中,cx和cy是深度相机采集的彩色图像旋转中心,x和y是原始图像(深度相机采集的彩色图像)中的像素位置,x′和y′是旋转后相应点的位置,α为深度相机采集图像的彩色的旋转角度。
在获取旋转后的图像(彩色图像)以及旋转后眼睛和嘴巴的检测信息(眼睛和嘴对应的检测框)后,我们根据眼睛对应的检测框的对角线长度,指定了与所述对角线长度设定倍数(例如,2倍)的两个长宽比为5:3的矩形区域。这些矩形区域是基于两只眼睛的中心定义的,作为它们各自的中心。每个矩形区域的对角线长度是预测的眼睛边界框对角线长度的两倍。因此,我们通过裁剪原始图像(彩色图像)中包含在这些矩形区域内的部分来提取眼睛图像(包括:右眼图像及右眼图像)。随后,我们调整裁剪后的两个图像(眼睛图像)的大小以满足模型所需的像素尺寸(36×60),以进行进一步处理。
步骤S104:对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像。
在本公开的实施例中,所述对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像的方法,包括:分计算左眼或右眼对应的眼睛图像两侧与深度相机之间的第一轴向距离及第二轴向距离;根据所述第一轴向距离及第二轴向距离,分别计算所述左眼或右眼对应的眼睛图像对应的透视变换比例;根据所述左眼或右眼对应的眼睛图像对应的透视变换比例,分别对所述左眼或右眼对应的眼睛图像进行矫正,得到矫正后的眼睛图像。
在本公开的实施例及其他可能实施例中,图5示出根据本公开实施例的眼睛图像透视变换原理图。如图5所示,在对眼睛图像(左眼及右眼对应的眼睛图像)进行水平透视变换时,我们可以将它们视为相机视点中水平倾斜的矩形。在右上方的示例中,代表来自相机(深度相机)视野的俯视图,由于右上方矩形(深度相机视野的俯视图)的左右两侧距离相机的不同,右上方矩形的左右两侧之间的轴向距离也不同。这个右上方矩形的左右两侧对应的距离差(D)可以由矩形水平边在深度相机轴向上的投影来表示,其数学关系为D=L×cos(α),其中α是头部姿态向量在水平平面上投影与深度相机轴向之间的角度,L是矩形水平边的长度。换句话说,我们得到了远侧和近侧与相机之间的轴向距离差异。
在本公开的实施例及其他可能实施例中,在上图的右下方,代表从相机拍摄视野的侧面视图,远端和近端边缘可视为两个矩形的边缘,即前侧和后侧。相机与左右两侧之间的不同距离导致视角不同,因此图像中这两侧的长度也不同。在相机的视角中,近侧具有更大的视角,因此在图像中显得更长。因此,我们只需要在图像中应用透视变换,使远侧延伸以匹配近侧的长度。根据透视原理,图像大小遵循视野中三角形的相似性。远侧和近侧的原始基线构成两个等腰三角形,它们的基线相等,但腿的长度不相等,如图5所示。基于透视三角形的相似性,图像中最远侧的黑色基线与近侧的原始基线长度相等。因此,通过利用透视变换,我们可以放大远侧边使其与黑色侧的长度相匹配,完成图像的透视变换。
在本公开的实施例及其他可能实施例中,裁剪出左眼或右眼对应的眼睛图像两侧(左侧及右侧)与深度相机之间的第一轴向距离及第二轴向距离分别为LN和LF。然而,由于本公开的实施例只获得了裁剪出左眼或右眼对应的眼睛图像的眼中心点的空间位置,因此我们利用眼中心点的空间位置结合远侧和近侧(裁剪出左眼或右眼对应的眼睛图像两侧)之间的距离差D以及深度相机的位置来计算LN和LF。最终,利用三角形的相似性,可以确定图像透视变换中远侧的放大比例,即最远侧的黑色侧和其相邻的侧长度之间的透视变换比例(方程式2)。透视变换的垂直方向过程与此相同。其中,Z表示深度相机与左眼或右眼对应的眼睛图像的空间轴向距离。
图6示出根据本公开实施例的眼睛图像透视转换过程示意图。如图6所示,展示了透视变换的过程,特别是在水平方向上,由实线和虚线表示。在从原始图像(深度相机采集的彩色图像)中提取基于预测边界框(检测框)的眼睛图像后,应用透视变换来校正远处边缘引起的畸变。这样就得到了校正后的图像(矫正后的眼睛图像)。随后,再次裁剪出一个特定大小的图像(裁剪出左眼和/或右眼对应的眼睛图像)(由黑色虚线框表示),以进行进一步的计算。校正后的图像(矫正后的眼睛图像)相当于从校正后的原始图像(深度相机采集的彩色图像)中裁剪出来。深度相机采集的彩色图像中的阴影表示眼睛和嘴巴所在平面的透视效果。
其中,图6中的左图显示了原始图像中的一个倾斜平面,眼睛连接线和嘴巴连接线不是水平的。相反,经过透视变换后的右图(矫正后的眼睛图像)描绘了一个平行平面,眼睛所在的平面和嘴巴所在的平面是平行的。因此,透视变换通过对齐面部平面有效消除了头部姿态。
步骤S105:利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息。
在本公开的实施例及其他可能实施例中,眼睛坐标配置为(x,y,z);其中,L表示左眼;R表示右眼。姿态信息配置为(α,γ);其中,α表示偏航角,γ表示俯仰角。其中,所述位置配置为眼睛位置,所述姿态配置为头部姿态。
在本公开的实施例及其他可能实施例中,将两只眼睛使用相同的分类标签,若在实验过程中所彩色图像中的头部旋转小于设定角度(例如,180度),将水平坐标的第一目标标记为左眼,将水平坐标的第二目标标记为右眼。其中,所述第一目标的水平坐标大于所述第二目标的水平坐标。
在本公开的实施例中,图4示出根据本公开实施例的计算眼睛和嘴巴的位置和姿势方法的具体实现流程图。如图4所示,所述利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息的方法,包括:将所述深度图像与所述彩色图像对齐;生成对齐后的所述深度图像对应的点云数组;基于所述点云数组中质心单元的索引及所述眼睛和嘴对应的检测框的中心确定眼睛及嘴(嘴巴)对应的位置;基于所述眼睛及嘴(嘴巴)对应的位置,计算所述眼睛及嘴(嘴巴)所在平面的法向量,并将所述法向量转换为旋转向量,进而得到姿势信息。
在本公开的实施例及其他可能实施例中,在获得眼睛和嘴巴检测结果(所述眼睛和嘴对应的检测框)后,将深度相机生成的深度图像与RGB图像(彩色图像)对齐,如图4所示,并通过结合相机的内参参数生成点云数组。这个点云数组表示相机三维空间中每个像素的空间位置,对应于场景中物体的点。点云的结构是一个二维数组,与原始RGB图像大小相同。每个元素是一个单位,对应于该像素点的物体点的空间位置(x,y,z)。
在本公开的实施例及其他可能实施例中,利用检测结果中三个物体(眼睛和嘴对应的检测框)的中心以及点云数组中质心单元的索引来获取这三个物体中心的空间位置。可以将由这三个中心点形成的平面视为面部平面。通过使用这三个点,可以计算平面的法向量,该法向量可用作三维头部姿态的替代。然后,我们采用罗德里格斯变换将法向量转换为旋转向量,从而允许获得该向量在三个方向上的分量。
这些分量可以被视为公式(3)中头部的偏航角、俯仰角和滚转角(图4中的α、γ和θ)。
其中,是面平面的法向量,[x1,y1,z1],[x2,y2,z2],和[x3,y3,z3]分别是左眼、右眼和嘴巴中心点的空间坐标。
步骤S106:基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像进行视点预测。
在本公开的实施例中,在所述基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测之前,还包括:利用训练集的矫正后眼睛图像及位置和姿态信息,按照预设训练规则对预设视点预测模型进行训练得到训练后的预设视点预测模型;进而,基于训练后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测。
在本公开的实施例及其他可能实施例中,图3(b)展示了视点预测模型Gaze-Point-Net的训练方法。通过志愿者的参与收集了训练数据,其中包括标准化的双目图像(眼睛图像/矫正后的眼睛图像)及其对应的使用图像深度计算得到的三维信息(位置和姿态信息)。这些数据集被组装和用于训练一个通用视点预测模型。
在本公开的实施例中,所述按照预设训练规则对预设视点预测模型进行训练得到训练后的预设视点预测模型的方法,包括:获取设定训练次数;当对预设视点预测模型进行训练的次数达到所述设定训练次数,则停止对所述预设视点预测模型进行训练,得到训练后的预设视点预测模型。其中,本领域技术人员可根据实际需要对所述设定训练次数进行配置。
在本公开的实施例中,在基于训练后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测之前,还包括:利用校准集的矫正后眼睛图像及位置和姿态信息,按预设校准规则对所述训练后的预设视点预测模型的输出层进行校准,得到校准的预设视点预测模型;进而,基于校准后的预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像,进行视点预测。
在本公开的实施例及其他可能实施例中,预设视点预测模型是在大型数据集上进行训练的,并且为了进一步提高其对每个用户的适应性,本公开设计了一个校准方法(图3(c))。通过这个方法,可以提高视点预测模型预测的准确性,并且可以将同样的模型部署在不同大小的屏幕上,以保持在摄像头位置可能不稳定的情况下的一致性与准确性。
在本公开的实施例中,所述按预设校准规则对所述训练后的预设视点预测模型的输出层进行校准,得到校准的预设视点预测模型的方法,包括:获取预设损失值计算校准过程中得到的视点坐标及其对应的视点坐标标签的损失值;当所述损失值达到所述预设损失值,则停止对所述预设视点预测模型进行校准,得到校准的预设视点预测模型。其中,本领域技术人员可根据实际需要对所述预设损失值进行配置。
在本公开的实施例及其他可能实施例中,为了训练多模态视点预测模型(预设视点预测模型),需要适应该项目需求的数据收集和准备过程。在此过程中,获得了授权和道德批准,并通过实验室政策确保了数据收集和准备程序的合法性。此外,邀请了超过二十名志愿者参与数据收集和准备,并确保获得了他们的完全知情同意。在整个数据收集和准备过程中,本公开严格遵守相关法律、法规和道德准则,确保对参与者的隐私保护。
在本公开的实施例及其他可能实施例中,数据收集方法包括固定采样摄像机的位置,并调整照明条件以控制环境光线。随后,我们开始以蛇形模式移动灰色目标块,从显示屏的左上角开始。当参与者注视其中一个目标点时,我们使用摄像机捕获数据,并使用算法处理和存储数据。我们在每个数据收集任务(即每个参与者)中收集了总共749个数据样本。
在本公开的实施例及其他可能实施例中,传统的注视跟踪任务通常在头部固定的条件下进行,因此传统方法不需要考虑头部的空间位置和姿态信息。由于头部的六个自由度是固定的,传统方法中使用的神经网络模型只接受双眼图像或使用单眼计算模型,并通过镜像翻转方法计算双目图像(左眼图像及右眼图像)。
在本公开的实施例及其他可能实施例中,为了解决双目图像中瞳孔方向和眼睑特征之间的不对称问题,本公开基于LeNet设计了预设视点预测模型Gaze-Point-Net。由于双目图像的差异,特征提取器不能使用相同的参数进行特征提取。因此,本公开的实施例采用了双通道卷积神经网络特征提取器,其具有非共享参数,用于从双目图像中提取特征,并使用多个全连接层进行特征压缩和提取。另外,在隐藏层中连接(串联)头部的空间位置和姿态向量(信息),构建了一个多模态神经网络(预设视点预测模型Gaze-Point-Net),用于完成多模态注视位置预测任务。
图7示出根据本公开实施例的预设视点预测模型的网络结构结构示意图。如图7所示,所述预设视点预测模型,包括:第一特征提取之路及第二特征提取之路、分别与所述第一特征提取之路及所述第二特征提取之路连接的第一拼接层、与所述拼接层连接的用于特征压缩的全连接层、与所述全连接层连接的用于拼接所述位置和姿态信息的第二拼接层,及与所述第二拼接层连接的分类层;利用所述第一特征提取之路及所述第二特征提取之路,分别对所述眼睛图像的左眼图像及右眼图像进行特征提取,得到第一特征图及第二特征图;利用所述第一拼接层,对所述第一特征图及所述第二特征图进行拼接,得到拼接特征图;利用所述全连接层,对所述拼接特征图进行特征压缩,得到压缩特征;利用所述分类层及所述压缩特征,分别得到所述左眼及右眼的视点坐标,完成视点预测。其中,图7中的人脸图片为彩色图像。其中,图7中的数字表示特征图的维度。例如,所述第一特征图及所述第二特征图的维度分别为20×9×15。
如图7所示,在本公开的实施例中,所述第一特征提取之路,包括:第一卷积层及与其连接的第一池化层,与所述第一池化层连接的第一注意力机制模块、与所述第一注意力机制模块及所述第一池化层连接的第二卷积层及与其连接的第二池化层;利用所述第一卷积层及与其连接的第一池化层,对所述眼睛图像中的左眼图像进行特征提取及池化,得到第一待处理特征图;利用所述第一注意力机制模块,对所述第一待处理特征图进行注意力提取,得到对应的第一权重特征图;根据所述第一待处理特征图及所述第一权重特征图,得到所述第一特征图。
如图7所示,在本公开的实施例中,所述根据所述第一待处理特征图及所述第一权重特征图,得到所述第一特征图的方法,包括:对所述第一待处理特征图及所述第一权重特征图进行乘法操作,得到所述第一特征图。
如图7所示,在本公开的实施例中,所述第一特征提取之路,包括:第三卷积层及与其连接的第三池化层,与所述第三池化层连接的第二注意力机制模块、与所述第二注意力机制模块及所述第三池化层连接的第四卷积层及与其连接的第四池化层;利用所述第三卷积层及与其连接的第三池化层,对所述眼睛图像中的右眼图像进行特征提取及池化,得到第二待处理特征图;利用所述第二注意力机制模块,对所述第二待处理特征图进行注意力提取,得到对应的第二权重特征图;根据所述第二待处理特征图及所述第二权重特征图,得到所述第二特征图。
如图7所示,在本公开的实施例中,所述根据所述第二待处理特征图及所述第二权重特征图,得到所述第二特征图的方法,包括:对所述第二待处理特征图及所述第二权重特征图进行乘法操作,得到所述第二特征图。
如图7所示,在本公开的实施例中,所述全连接层,包括:第一全连接层及与其连接的第二全连接层;利用所述第一全连接层及与其连接的第二全连接层,对所述拼接特征图进行特征压缩,得到压缩特征。其中,所述分类层配置为回归层。
在本公开的实施例及其他可能实施例中,本公开提出的视点预测模型对应的神经网络架构,包括:SELayer(注意力机制,即第一注意力机制模块及第二注意力机制模块)和GAZE-attention(第一特征提取之路及第二特征提取之路)模块。其中,SELayer是一个模块,用于增强神经网络的特征表达能力,它接收输入特征图并执行自适应平均池化以获取全局特征向量。然后,经过两个全连接层和一个激活函数的处理,SELayer生成一个权重向量,用于对输入特征图进行特征缩放。SELayer包括,自适应平均池化层、与所述自适应平均池化层连接的两个全连接层、及与所述两个全连接层最后一个层级的全连接层连接的用于构建非线性组合的ReLU激活函数、及与所激活函数连接的述用于参数范围限制的Sigmoid激活函数。
在本公开的实施例及其他可能实施例中,GAZE-attention是一个由卷积层和全连接层组成的神经网络。其输入包括两个单色眼睛图像(左眼图像及右眼图像)和位置以及姿势信息(位置和姿态信息),所有图像(左眼图像及右眼图像)大小为36×60像素。输出是表示注视点坐标的2D张量。
该神经网络的卷积层采用非共享参数的双通道卷积神经网络结构(第一特征提取之路及第二特征提取之路)。每个通道(第一特征提取之路及第二特征提取之路)包含两个卷积模块。第一个卷积模块(第一卷积层及第三卷积层),包括:第一设定数目及第一设定尺寸(20个大小为5×5)的卷积核组成,步长配置为第一设定步长(例如,1),填充配置为第一设定填充值(例如,2),以确保特征大小保持不变,然后依次是批归一化层、ReLU激活函数和大小为2×2的最大池化层。在第一次池化操作之后,引入了之前定义的注意力机制(即第一注意力机制模块及第二注意力机制模块),增强神经网络对输入数据的关注。该机制自适应地对每个通道加权,允许神经网络更专注于提取重要特征,忽略不相关的特征。第二个卷积模块(第二卷积层及第四卷积层),包括第二设定数目及第二设定尺寸(例如,50个大小为5×5)的卷积核组成,步长配置为第二设定步长(例如,1),填充配置为第二设定填充值(例如,2×2),以确保特征大小保持不变。然后是批归一化层、ReLU激活函数和大小为2的最大池化层。
在本公开的实施例及中,所述的方法,还包括:确定用于训练和/或校准损失函数的方法,包括:计算训练和/或校准过程中每次预测得到的视点坐标中X坐标与真实X坐标对应的第一范数;计算训练和/或校准过程中每次预测得到的视点坐标中Y坐标与真实Y坐标对应的第二范数;计算训练和/或校准过程中每次预测得到的视点坐标中Y坐标平方值与真实Y坐标平方值对应的第三范数;计算训练和/或校准过程中每次预测得到的视点坐标与真实视点坐标对应的第第四范数;基于所述第一范数及其对应的第一权重系数、所述第二范数及其对应的第二权重系数、所述第三范数及其对应的第三权重系数、所述第四范数及其对应的第四权重系数,确定用于训练和/或校准损失函数。
在本公开的实施例及中,所述第一权重系数、所述第二权重系数、所述第三权重系数、所述第四权重系数分别配置为2、2、1、4。
在本公开的实施例及其他可能实施例中,在预设视点预测模型训练过程中,预设视点预测模型的预测视点(预测得到的视点坐标)的y坐标偏小。因此,本公开重新设计了损失函数。本公开的实施例的预测结果和标签分别是2维坐标c1=(x1,y1)和c2=(x2,y2)。我们的损失函数包括x坐标的欧氏距离、y坐标的欧氏距离、y坐标欧氏距离的平方,以及两点在平面上的欧氏距离,分别按2:2:1:4加权(公式(4))。由于在计算y坐标的欧氏距离的平方时得到了一个凸函数,我们为接近1的数据添加了误差权重,以有效地修正模型。
L(c1,c2)=2||x1-x2||+2||y1-y2||+||y1^2-y2^2||+4||(x1,y1)-(x2,y2)||(4)
在本公开的实施例及其他可能实施例中,使用手动收集的训练数据对模型进行训练。首先,将训练数据随机分成训练集、验证集和测试集,比例为8:2:1。在训练过程中,将训练周期设置为50,批量大小为16,并使用重新设计的损失函数作为目标函数。为了优化这个目标函数,采用了随机梯度下降(SGD)优化器,初始学习率为0.0001,采用动态学习率策略。具体来说,在第20和30个周期时逐渐将学习率降低0.1倍。在每个批次训练后,使用验证集来计算平均绝对误差,以确定是否更新最佳模型。
在本公开的实施例及其他可能实施例中,预设视点预测模型Gaze-Point-Net是在所有志愿者的数据上进行训练的。因此,通过校准过程,可以进一步提高模型在面对特定用户使用条件时的准确性和性能。为此,本公开设计了以下校准步骤。
首先,使用类似于收集训练数据的方法来收集校准数据。校准数据是通过在显示屏上依次呈现排列在两个矩形中的九个灰色框来收集的。收集的数据包括标准化的双眼图像、头部位置和姿势向量以及相应的标签数据。接下来,将收集到的数据组装成一批校准数据集,并使用与训练过程相同的损失函数和优化器对模型进行微调。在预设视点预测模型校准过程中,为了防止在九个校准点上出现过拟合,仅调整最后一个全连接层的参数进行模型微调,能够进一步提高模型在特定用户条件下的准确性和性能。
在本公开的实施例及中,所述的方法,还包括:对相邻设定帧数对应的所述视点预测的多个视点坐标进行滤波处理,得到最终的视点坐标。
在本公开的实施例及中,所述对相邻设定帧数对应的所述视点预测的多个视点坐标进行滤波处理的方法,包括:对所述相邻设定帧数对应的所述视点预测的多个视点坐标中的X坐标进行均值处理,得到最终的视点坐标中的X坐标;对所述相邻设定帧数对应的所述视点预测的多个视点坐标中的Y坐标进行均值处理,得到最终的视点坐标中的Y坐标。
此外,在本公开的实施例及其他可能实施例中,对预测的注视点位置应用了均值滤波器。特别地,最后五个预测的注视点的平均值被视为当前注视点的位置,并将滤波后的结果与未滤波的结果进行比较。
在本公开的实施例及其他可能实施例中,设计了以下四个实验:顺序和随机点位测试、轨迹跟踪测试以及浏览模式分析。这些实验全面分析了系统的准确性、稳健性和实时性能。
在顺序点定位测试中,设计来追踪一个灰色方块在屏幕左上角以曲线模式移动。通过使用视点预测系统实现了实时视点预测。经过参与者同意,记录了灰色方块的双眼图像、面部图像、头部位置、头部姿态信息以及标准化屏幕位置信息进行数据分析。
类似地,在随机点定位测试中,使用灰色方块作为固定目标,在特定位置随机跳跃并保持固定三秒钟。为了消除快速眼动的影响,在方块静止一秒钟后开始记录数据。
这些实验中的固定目标任务与目前的眼动跟踪设备的主要任务非常相似,使我们能够准确评估眼动跟踪系统的性能。数据分析显示,在固定注视点目标任务中,性能显著优于移动目标任务。
为了评估系统跟踪移动目标的能力,设计了圆形轨迹跟踪测试。在屏幕中央绘制了宽度为500像素的圆形轨道,并以移动方块作为注视目标。在测试过程中预测并记录注视点。
最后,通过浏览模式分析任务展示了注视跟踪系统的性能。选择了五个包含高度显著物体的图像,每个图像在全屏上显示五秒钟。同时,捕捉了观众的注视位置序列,并将其可视化为注视点轨迹和热度图,以分析和展示预设视点预测模型的性能。通过将捕捉到的注视点与图像中目标物体的位置结合,分析了预设视点预测模型的可靠性、实时性能和准确性。
图8示出根据本公开实施例的相机坐标系与视点预测的示意图。如图8所示,在计算注视点的归一化坐标后,将它们转换回1920×1080屏幕位置,得到注视点在屏幕上的最终投影,称为注视点位置。同时,我们保留每个结果的相应真实坐标,即实验中方块的中心位置,作为标签。在我们获得了预测坐标和真实坐标后,我们结合屏幕尺寸计算屏幕上两点之间的实际距离。通过获取两点之间的空间距离,我们使用相机坐标系中的眼睛空间位置坐标,结合相机和屏幕的相对位置,计算两条眼射线的中点与两个点的位置之间的空间距离。最后,利用余弦定理计算我们预测方向和真实方向之间的角度误差,结合各种变量进行误差分析。
同时,在超过20名志愿者的参与下,总共收集并处理了14,820个数据样本。这些样本可以用来训练注视预测模型。同时,本公开还分析了数据集在不同特征维度上的分布,例如亮度均值和范围,志愿者位置以及志愿者头部偏转角度。
图9示出根据本公开实施例的视点预测训练数据集的分布图。如图9所示,(a)按RGB平均值划分的数据集分布;(b)按RGB范围值划分的数据集分布;(c)按志愿者与摄像头之间的距离划分的数据集分布;(d)按志愿者头部偏转角度划分的数据集分布。眼睛图像的RGB平均分布如图9(a)所示,显示了图像的亮度分布。我们在白天和夜晚分别收集数据,并在现场调整照明条件。因此,图像的平均亮度分布在两个范围内,涵盖了从70到170的大多数照明条件。因此,数据收集有效地覆盖了各种照明条件。图9(b)展示了RGB范围的分布,显示了相对平衡的分布。由于前向和侧向照明之间RGB范围的显著差异,这种统计分析揭示了光源位置的广泛分布。图9c)说明了志愿者和采样相机位置的空间分布,主要集中在0.6米到1.2米的范围内。这个范围基本涵盖了在正常条件下使用计算机时常见的大多数位置。图9(d)展示了志愿者之间头部姿势偏转角度的分布。在我们的指导和鼓励下,志愿者通过结合眼睛旋转和头部运动进行注视。头部旋转角度的分布范围从0度到50度,呈现相对平衡的分布。通过对训练数据特征的统计分析,我们收集的数据集涵盖了最典型的场景,包括各种照明条件、位置和姿势。通过利用这个分布均匀的数据集,训练得到的模型展现出了更强的泛化能力和稳健性。
另外,在本公开的实施例中,强型YOLOv5模型检测眼睛和嘴巴目标,显示了该模型准确识别眼睛和嘴部目标的能力,并且具有很高的准确度。因此,该模型在不同距离和背景下的检测任务中表现出色,使其适用于本公开中的目标定位任务。
图10示出根据本公开实施例的用于检测眼睛和嘴巴的预测目标检测模型(增强型YOLOv5)的性能分析。如图10所示,(a)置信度-召回图;(b)置信度-精确度图;(c)置信度-F1分数图;(d)0.5时的召回-精确度和mAP图。
图10中的召回率和精确度曲线显示了模型在大多数置信区间内的高性能。从F1曲线可以观察到,在置信阈值为0.408时,模型实现了最佳整体性能,F1得分为0.91。mAP@50曲线展示了模型在置信阈值为0.5时的准确性。在这种情况下,模型对眼部检测的精确度为0.918,对嘴部检测的精确度为0.868,表明其在目标检测任务中的有效性。最后,本公开成功地为人脸图像训练了一个增强的YOLOv5目标检测模型。该模型可以输出每个检测到的对象的中心点参数和边界框尺寸参数,这些参数可用于后续分析。
在本公开的实施例及其他可能实施例中,进行了连续点测试并收集了总共6572组实验数据。这些测试结果以及在多个尺度上进行的误差分析结果展示在图11和图12中。在误差分析过程中,我们考虑了诸如屏幕注视位置、头部空间位置、头部空间姿态和光照条件等各种变量。这种全面的分析使我们能够深入了解导致实验数据误差的因素。通过将连续点测试与全面的误差分析相结合,能够全面了解提出的方法在不同条件下的性能和局限性。
图11示出根据本公开实施例的带有不同变量的预设视点预测模型(Gaze-Point-Net)性能分析。如图11所示,(a)目标点水平坐标误差分析;(b)目标点垂直坐标误差分析;(c)目标点水平和垂直坐标误差分析;(d)志愿者头部水平空间位置误差分析;(e)志愿者头部垂直空间位置误差分析;(f)志愿者头部轴线空间位置误差分析;(g)志愿者头部俯仰角误差分析;(h)志愿者头部偏航角误差分析。
如图11所示,展示了各种变量的误差分析结果。水平轴表示变量,而垂直轴表示在相应水平轴区间内的平均角度误差。图11(a)和图11(b)显示了屏幕上目标点的水平和垂直位置与角度误差之间的关系。图11(c)展示了目标点在屏幕上的位置与角度误差之间的三维图。其中,x轴和y轴分别表示目标点在屏幕上的水平和垂直位置,而z轴表示角度误差的大小。角度误差的分布范围在6到8度之间。图11(d)说明了角度误差与观察者注视点与相机之间的水平距离之间的关系。自变量是眼睛之间中点在相机坐标系中的水平位置,代表了观察者的水平位移。水平距离分布范围为-0.1到0.15米,误差分布范围在4到8度之间。图11(e)展示了角度误差与观察者注视点与相机之间的垂直距离之间的关系。自变量是眼睛之间中点在相机坐标系中的垂直位置,代表了观察者的垂直位移。垂直距离值范围从-0.15到0米,而角度误差的分布范围在5到10度之间。图11(f)呈现了角度误差与观察者注视点与相机之间的轴向距离之间的关系。自变量是眼睛之间中点在相机坐标系中的轴向位置,代表了观察者的前后位移以及观察者与显示屏之间的距离。轴向距离范围从0.5到0.85米,而角度误差的分布范围在4到8度之间。最后,图11(g)显示了角度误差与观察者头部的俯仰角之间的关系,代表了垂直摆动幅度。俯仰角范围从-70到20度,而角度误差的分布范围在7到9度之间。图11(h)显示了角度误差与观察者头部的偏航角之间的关系,代表了水平摆动幅度。偏航角范围从-10到30度,而角度误差的分布范围在5到8度之间。
图12示出根据本公开实施例的不同光照条件下预设视点预测模型(Gaze-Point-Net)性能分析。如图12所示,GB值的均值和范围与角误差之间的关系。RGB值的均值代表实验环境光的强度,其分布在40-120范围内。RGB值的范围表示实验室光源的角度,其中更大的光角度对应于更大的RGB范围,分布在80-200范围内。在这两种情况下,误差都分布在5-10度范围内。
本公开收集了随机点位测试的结果进行分析。图13示出根据本公开实施例的随机点位测试结果。如图13所示,绘制了使用实际值和预测值的点分布和预测标准差的图形。在图13的左侧图表中,浅色大圆表示测试中的固定目标点,其中心是目标块的中心点,直径为目标块的对角线长度。深色小圆表示模型预测注视点的散布位置。在图13的右侧图表中,深色小圆表示实际固定注视点的位置,而围绕它们的浅色大圆表示与标签对应的预测点的范围。该图表显示了预测点在真值周围的分布,并展示了预测标准偏差。
图14示出根据本公开实施例的数据滤波与模型校准分析结果。在实验过程中,我们保留了未校准模型和未经滤波的结果的预测数据,共得到四组数据。这些数据在图14中说明。左图描述了角度误差与X轴上真实值之间的函数关系,其中散点表示数据的分布。散点的绘制比例为1:100。图中的四条曲线分别表示每个数据集的二次多项式拟合,说明了平均角度误差随x坐标的变化情况。右图展示了类似的误差分析,其中Y轴表示真实值。从图中可以观察到,滤波对于减少平均误差的影响很小,而校准则显著降低了平均误差。
为了分析模型的性能,我们进行了一系列的控制实验,并测试了以下数学模型:(1)K-最近邻算法(KNN)。在机器学习领域,KNN通常用于模式识别任务。我们将图像扩展为一维向量,并将其与头部位置和姿态信息连接起来,然后使用KNN方法进行测试,邻居数设置为3。(2)随机森林(RF)。RF是机器学习领域的有效的回归方法。我们使用相同的数据处理方法进行测试,使用300个决策树,每个节点的最大深度为20,每个节点的最大特征数量为65。(3)线性回归(LR)。LR是机器学习领域的简单的回归方法。我们使用相同的数据处理方法,并使用线性回归进行测试。
最后,我们利用包括KNN、RL、LR、注视点网络(GPN)和校准后的GPN在内的各种模型,对随机点进行了预测。对比了不同模型的结果,并在图15中呈现了误差分析结果。
图15示出根据本公开实施例的Gaze-Point-Net与其他模型的性能对比分析。如图15所示,(a)多模型之间目标点横坐标的散点图和拟合曲线分析;(b)多模型之间目标点纵坐标的散点图和拟合曲线分析;(c)多模型的角度误差均值和标准偏差分析;(d)多模型的像素误差均值和标准偏差分析。
图15(a)显示了以真值为x轴的误差分析图,它与图14具有相同的模式,包括误差散点图和拟合曲线。另一方面,图15(b)显示了以真值为y轴的误差分析图。散点表示了在某一比例下抽样的数据误差分布情况,并使用二次函数将这些散点拟合成曲线。蓝色、青色和黄色分别代表了KNN、LR和RF的结果。粉色代表了未校准模型的结果,而红色代表了加入数据滤波操作的校准模型的结果。可以观察到我们的模型具有明显较小的误差分布和较低的标准差。此外,滤波操作较小程度地提升了模型的性能。另外,图15(c)和图15(d)分别呈现了前述模型的平均角度误差和平均像素误差的数值比较。这两幅图从左到右依次表示了KNN、RF、LR、通用GPN和校准后的GPN模型,颜色逐渐变浅。结果表明,我们的模型在校准前与RF的性能相当,但在校准后显著改善。
表1.经校准的Gaze-Point-Net及其对应设备的像素和角度数误差
表1呈现了不同模型像素误差和角度误差的均值和标准差。屏幕的像素范围为2202,可见视角范围为60至70度,其中校准的GPN还包含数据滤波操作。我们的校准GPN实现了像素误差为229.60和角度误差为5.40,比KNN、RF、LR和Gaze-Point-Net的误差要小得多。
表2.Gaze-Point-Net及其对应程序的多种回归任务评估指标
采用多重回归任务评估指标来分析本研究中使用的各种模型的性能,如表2所示,其中校准的GPN还包含数据滤波操作。这些指标包括均方根误差(RMSE)、平均绝对误差(MAE)、R平方(R2)、平均绝对百分比误差(MAPE)和均方百分比误差(MSPE)。
基于RMSE和MAE的分析,我们的模型显示出比其他模型显著较小的误差。此外,考虑到MAPE和MSPE,我们的模型不仅展示了较小的相对误差,还减少了大误差的情况。此外,R2系数表明我们的模型回归结果与参考标准之间有更强的相关性。
同时,真实值在屏幕上的水平和垂直坐标与角度误差之间的关系,该提出的模型在大多数位置的预测误差在5°以内。经过进一步处理,包括删除由系统延迟引起的明显不正确的预测点后,平均预测误差可达到5.13°。这表明该模型能够对大多数注视跟踪任务进行相对优秀的预测。
同样地,可以采用类似分类任务的方法进行分析。以目标点的位置为中心,定义一个特定大小的置信半径。落在这个置信圆内的预测点被视为正确预测,而落在圆外的被视为错误预测。通过调整置信半径的大小,我们可以得到一个描述置信半径与准确性关系的曲线。图16示出根据本公开实施例的置信度对准确性的影响分析。如图16所示,说明了描述置信半径与准确性关系,并计算了在准确性为0.8时的置信半径。图16中的左图表示预测点与目标点之间的欧氏距离的准确性曲线,置信半径为320,准确性为0.8。图16中的右图表示预测点与目标点之间的水平和垂直距离的准确性曲线,置信半径分别为190和250,准确性为0.8。
图17示出根据本公开实施例的置轨迹跟踪测试的结果。图17的左侧显示了预测误差的分布热图。该热图描述了运动目标的轨迹,较亮的颜色表示较大的误差,较暗的颜色表示较小的误差。图17的右侧展示了特定置信区间内散点的分布。背景中的浅色圆环代表以运动目标轨迹为中心的同心圆,半径为300像素。散点图显示了预测点的分布。通过建立特定像素范围内的点作为有效轨迹的置信半径,准确度达到了93.75%。当将置信半径缩小到200像素时,准确度为81.91%。
视点预测方法的执行主体可以是视点预测装置,例如,视点预测方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该视点预测方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
本领域技术人员可以理解,在具体实施方式的上述视点预测方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
图18示出根据本公开实施例的视点预测装置的框图。如图18所示,所述视点预测装置,包括:获取单元101,用于获取待预测的彩色图像及其对应的深度图像;第一确定单元102,用于利用预设目标检测模型,对所述彩色图像进行目标检测,确定眼睛和嘴对应的检测框;第二确定单元103,用于利用所述彩色图像及所述眼睛对应的检测框,确定眼睛图像;矫正单元104,用于对所述眼睛图像进行水平透视变换,得到矫正后的眼睛图像;第三确定单元105,用于利用所述深度图像及所述眼睛和嘴对应的检测框,确定眼睛及头部对应的位置和姿态信息;预测单元106,用于基于预设视点预测模型,利用所述位置和姿态信息和所述矫正后的眼睛图像进行视点预测。可提高基于外貌的视点预测的准确性和稳健性,而无需锁定头部,以解决目前基于外貌的视点预测的准确性及稳健性差,并需要进行头部锁定的问题。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文视点预测方法实施例描述的视点预测方法,其具体实现可以参照上文视点预测方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述视点预测方法。其中,计算机可读存储介质可以是非易失性计算机可读存储介质。可提高基于外貌的视点预测的准确性和稳健性,而无需锁定头部,以解决目前基于外貌的视点预测的准确性及稳健性差,并需要进行头部锁定的问题。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为上述视点预测方法。其中,电子设备可以被提供为终端、服务器或其它形态的设备。可提高基于外貌的视点预测的准确性和稳健性,而无需锁定头部,以解决目前基于外貌的视点预测的准确性及稳健性差,并需要进行头部锁定的问题。
在本公开中,提出了一种视点预测方法及装置、电子设备和计算机可读存储介质,并通过各种实验测试了其性能。已经证明了无需依赖红外摄像头就可进行视线预测的可行性,并进一步证明了,一个结合头部空间位置和姿态信息的多模态方法可以提高视线预测的精确度和泛化性能。尽管存在利用这些信息进行视线预测的方法,但我们优化了每个计算过程的模型,从而在一定程度上提高了系统的性能。此外,在物体检测模型的训练过程中,我们发现提高YOLOv5特征图的分辨率可以提高模型识别小型对象的能力。另外,将相似但不同的物体类别(左眼和右眼)合并到同一类别可以显著提高该类别的检测性能。在每次预测任务之前校准视线预测模型可以大大提高其精确度。此外,在校准过程中只修改模型参数的一个子集比修改整个模型有更明显的效果。另一方面,数据滤波过程可以在一定程度上改善预测点的视觉表示,但它们并未使结果有显著的改善。最后,提出的模型在固定注视点的视点预测任务(随机点位测试)中的表现要优于移动点的扫视任务(顺序点位测试)。这是因为我们的随机点位测试程序涉及到在随机点固定一段时间后,平均预测结果的角误差和标准偏差,比目标点连续移动的顺序点位测试产生的误差稍低。
在这项任务中,本公开实施例采用了YOLOv5对象检测模型作为面部标记定位模型。这种模型具有快速、高精度和出色的泛化能力,能在各种极端条件下有效进行对象检测。此外,本公开实施例采用了一种不依赖红外摄像头的基于外观的视点预测方法。相反,本公开实施例依赖深度摄像头来捕捉颜色和深度图像。通过结合使用深度信息计算的特征点的空间位置和特征平面的法线向量,以及旋转和透视变换过程的整合,我们极大地提高了系统的准确性和对头部位置和姿态的显著变化的鲁棒性。重要的是,本公开实施例创新性的采用了一个直接回归的方法来计算屏幕上的注视点位置,绕过了从摄像头坐标系到世界坐标系的坐标转换和注视在屏幕上的投影。本公开实施例还考虑了摄像头位置错误、屏幕大小和放置错误,以及通过校准方法对系统性能的个体差异。最后,该系统能够实时捕获来自其他模态的信息,如声音,为下一步的多模态研究应用提供可能。
目前的方法所涉及的坐标变换和空间计算过程是传统的,并且注视向量在变换前后的关系是非线性的。当采样相机和注视屏幕的相对位置发生变化时,这构成了一个挑战,因为无法通过使用线性全连接层的校准过程进行精确调整。传统计算管道中的参数很难校准,导致在处理此类情况下系统产生的错误时遇到困难。
为了解决这个问题,本公开提出了一种直接回归出视点位置的方法,不依赖于从相机坐标系统到世界坐标系统的变换以及进一步的视点位置计算,而是直接回归出标准化的注视点坐标并还原它们。这是通过采用一个神经网络实现的,该网络利用传统方法训练的模型的输出作为中间特征。通过这个神经网络,最终结果直接计算,从而显著提高了计算效率和准确性。
此外,微调方法可以用于校准和补偿采样相机和屏幕之间的位置误差以及个体差异。我们不像以前的方法那样使用单眼模型来计算和镜像处理另一只眼睛,而是直接使用双眼模型进行处理。这种方法使用两个具有不同参数的特征提取器来计算视点预测,从而减少了由眼睛之间的差异引起的错误。
在本公开的Gaze-Point-Net模型中,在两个具有不同参数的特征提取通道中包含了注意力机制,这使得在训练过程中能更有效地学习特征。这种改进导致了更高的训练效率,更快的收敛和更好的泛化。此外,本公开的校准过程是有效和高效的,只需要最小的样本数据。在部署过程中,可以针对每个被测试的个体进行模型的校准。利用模型的快速训练速度和高准确度,只需要少量的训练数据就可以训练出一个粗略的通用模型,然后通过校准进一步调整为私有模型。
本公开进行了多次实验来测试我们系统的性能。通过分析,发现在预测上下边界位置时会有稍大的误差。距离、角度和光照条件等变量对系统性能的影响相对较小。此外,在准确性方面,在固定注视点任务中的表现优于扫描任务。在比较各种模型在固定注视点预测任务中的性能时,本公开的模型在所有模型中取得了最好的结果。
本公开还比较了数据滤波和模型校准的性能。由于本公开的优点,校准过程显著提高了系统的性能,将误差水平降低到约5.4度左右。
图19是根据一示例性实施例示出的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。
参照图19,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。
图20是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图20,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。