视线估计模型的生成方法和装置、视线估计方法和装置与流程

文档序号:26949818发布日期:2021-10-16 00:47阅读:213来源:国知局
视线估计模型的生成方法和装置、视线估计方法和装置与流程

1.本公开涉及计算机技术领域,尤其是一种视线估计模型的生成方法和装置、视线估计方法和装置、计算机可读存储介质及电子设备。


背景技术:

2.视线追踪技术用于估计受试者的视线方向,是人机交互中一项重要的技术。近年来,视线追踪的研究主要集中在appearance

based和model

based两类方案上。appearance

based方案通过输入人脸眼部区域图像,结合深度神经网络,直接回归视线的方向,是一种纯数据驱动的方案,该方案易于部署,且不依赖特定的设备。但该方案在数据量较少的情况下难以取得较好的效果。model

based方案基于3d眼球模型,利用角膜反射法(pccr,pupil center corneal reflection)等建模方法获取视线相关参数(角膜曲率半径、瞳孔位置等)求取视线方法精度高。该方案精度较高、不需要太多的训练数据。但该方案需要特定的硬件设备,鲁棒性较差,在座舱这种环境较复杂的场景下难以部署。


技术实现要素:

3.本公开的实施例提供了一种视线估计模型的生成方法和装置、视线估计方法和装置、计算机可读存储介质及电子设备。
4.本公开的实施例提供了一种视线估计模型的生成方法,该方法包括:通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征,样本眼部图像具有对应的标注眼部特征和标注视线方向;通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向;基于预测视线方向和标注视线方向确定第一损失函数的参数;基于预测眼部特征和标注眼部特征确定第二损失函数的参数;基于第一损失函数和第二损失函数,训练视线估计模型。
5.本公开的实施例提供了一种视线估计方法,该方法包括:获取待估计眼部图像;将待估计眼部图像输入预先训练的视线估计模型的主干网络,得到预测眼部特征信息,其中,视线估计模型预先基于上述视线估计模型的生成方法训练得到;将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。
6.根据本公开实施例的另一个方面,提供了一种视线估计模型的生成装置,该装置包括:第一预测模块,用于通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征,样本眼部图像具有对应的标注眼部特征和标注视线方向;第二预测模块,用于通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向;第一确定模块,用于基于预测视线方向和标注视线方向确定第一损失函数的参数;第二确定模块,用于基于预测眼部特征和标注眼部特征确定第二损失函数的参数;训练模块,用于基于第一损失函数和第二损失函数,训练视线估计模型。
7.根据本公开实施例的另一个方面,提供了一种视线估计装置,该装置包括:获取模块,用于获取待估计眼部图像;第三预测模块,用于将待估计眼部图像输入预先训练的视线
估计模型的主干网络,得到预测眼部特征信息,其中,视线估计模型预先基于上述视线估计模型的生成方法训练得到;第四预测模块,用于将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。
8.根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述视线估计模型的生成方法或视线估计方法。
9.根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述视线估计模型的生成方法或视线估计方法。
10.基于本公开上述实施例提供的视线估计模型的生成方法和装置、视线估计方法和装置、计算机可读存储介质及电子设备,通过将视线估计模型设置为主干网络和重构网络,利用主干网络对样本眼部图像进行预测,得到预测眼部特征,利用重构模块对预测眼部特征进行视线方向预测,得到样本眼部图像的预测视线方向,然后基于预测视线方向和标注视线方向确定第一损失函数的参数,基于预测眼部特征和标注眼部特征确定第二损失函数的参数,最后基于第一预设损失函数和第二预设损失函数,训练视线估计模型。实现了将视线预测任务分解为两个预测任务,即预测眼部特征的任务和预测视线的任务,使训练得到的视线预测模型进行视线预测的过程更加细化,通过引入眼部特征的监督,模型可以学习到与视线方向有关的眼部特征信息,从而得到表示眼球结构的眼部特征,再利用眼部特征重建出视线方向,从而使视线方向的预测精度更高,对被检测者头部姿态的依赖更低,对使用场景的适应性更佳。
11.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
12.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
13.图1是本公开所适用的系统图。
14.图2是本公开一示例性实施例提供的视线估计模型的生成方法的流程示意图。
15.图3是本公开另一示例性实施例提供的视线估计模型的生成方法的流程示意图。
16.图4是本公开一示例性实施例提供的视线估计模型的生成方法的一个示例性的训练过程示意图。
17.图5是本公开一示例性实施例提供的视线估计方法的流程示意图。
18.图6是本公开一示例性实施例提供的视线估计模型的生成装置的结构示意图。
19.图7是本公开另一示例性实施例提供的视线估计模型的生成装置的结构示意图。
20.图8是本公开一示例性实施例提供的视线估计装置的结构示意图。
21.图9是本公开另一示例性实施例提供的视线估计装置的结构示意图。
22.图10是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
23.下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
24.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
25.本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
26.还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
27.还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
28.另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
29.还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
30.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
31.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
32.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
33.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
34.本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
35.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
36.申请概述
37.相关技术中的abms方案需要大量的训练数据,难以对抗训练数据中的噪声,可解释性较差。此方法是一种隐式的学习方法,忽略了眼球是一个规则的几何球体,没有结合和视线有关的显式信息例如人眼关键点对视线方向进行预测,很容易过拟合图像。
38.相关技术中的gbms方案具有较高的精度,但是使用场景的限制条件较多,在用户头部姿态较大、眼睛遮挡以及人头移动频繁的情况下将导致预测失败。此外,此类方法对图像的分辨率要求高,需要昂贵的硬件设备,包括摄像机和闪光灯、深度估计设备等。
39.示例性系统
40.图1示出了可以应用本公开的实施例的视线估计模型的生成方法或视线估计模型的生成装置,以及视线估计方法或装置的示例性系统架构100。
41.如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
42.用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如图像拍摄应用、搜索类应用、网页浏览器应用、即时通信工具等。
43.终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。
44.服务器103可以是提供各种服务的服务器,例如对终端设备101上传的图像进行模型训练或视线估计的后台服务器。后台服务器可以获取训练样本并基于训练样本训练视线估计模型,或利用视线估计模型对获取的眼部图像进行视线估计,得到眼部图像的预测视线方向。
45.需要说明的是,本公开的实施例所提供的视线估计模型的生成方法或视线估计方法可以由服务器103执行,也可以由终端设备101执行,相应地,视线估计模型的生成装置或视线估计装置可以设置于服务器103中,也可以设置于终端设备101中。
46.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在训练视线估计模型所需的样本眼部图像或利用视线估计模型进行视线方向预测的图像不需要从远程获取的情况下,上述系统架构可以不包括网络,只包括服务器或终端设备。
47.示例性方法
48.图2是本公开一示例性实施例提供的视线估计模型的生成方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:
49.步骤201,通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征。
50.在本实施例中,电子设备可以通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征。其中,样本眼部图像具有对应的标注眼部特征和标注视线方向。样本眼部图像可以是从预设的样本集中提取的图像,其对应的标注眼部特征表示眼部的结构特征,对应的标注视线方向表示眼部注视的方向,通常,标注视线方向包括从
眼球中心到瞳孔中心的连线在预设坐标系(例如以眼球中心为坐标原点建立的坐标系)中的俯仰角和偏转角。
51.视线估计模型中的主干网络可以包括由多层卷积层、全连接层等构成的深度神经网络,主干网络可以提取输入的眼部图像的特征数据(表示颜色、形状、纹理等特征),再利用得到的特征数据进行眼部特征的预测。
52.步骤202,通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向。
53.在本实施例中,电子设备可以通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向。其中,重构网络用于表征预测眼部特征与预测视线方向的对应关系。重构网络可以基于由对大量的预测眼部特征和预测视线方向进行统计得到的对应关系表构建,也可以基于预设的计算公式构建。
54.作为示例,预测眼部特征可以包括眼部关键点的坐标和眼球半径。将关键点的坐标和眼球半径作为计算预测视线方向的公式的参数,可以输出表示预测视线方向的俯仰角和偏转角。通常,本公开实施例所采用的关键点信息表示三维的眼球中心点在二维的眼部图像上的投影、眼部图像上的瞳孔中心点。因此,重构网络可以根据如下公式确定预测视线方向:
[0055][0056]
其中,θ、分别为三维空间中的俯仰角和偏转角,(x
ic
,y
ic
)、(x
ec
,y
ec
)分别是瞳孔中心和眼球中心,r是眼球半径。
[0057]
步骤203,基于预测视线方向和标注视线方向确定第一损失函数的参数。
[0058]
在本实施例中,电子设备可以基于预测视线方向和标注视线方向确定第一损失函数的参数。通常,预测视线方向和标注视线方向可以作为第一损失函数的参数。或者,可以对预测视线方向和标注视线方向进行按比例缩放、坐标系转换等方式进行转换,得到的转换结果作为第一损失函数的参数。
[0059]
第一损失函数用于确定预测视线方向与标注视线方向的差距。第一损失函数可以基于现有的各种损失函数构建,例如kl loss。
[0060]
步骤204,基于预测眼部特征和标注眼部特征确定第二损失函数的参数。
[0061]
在本实施例中,电子设备可以基于预测眼部特征和标注眼部特征确定第二损失函数的参数。通常,预测眼部特征和标注眼部特征可以作为第二损失函数的参数。或者,可以对预测眼部特征和标注眼部特征进行按比例缩放等方式进行转换,得到的转换结果作为第二损失函数的参数。
[0062]
第二损失函数用于确定预测眼部特征和标注眼部特征的差距。第二损失函数可以基于现有的各种损失函数构建,例如l2 loss。
[0063]
步骤205,基于第一损失函数和第二损失函数,训练视线估计模型。
[0064]
在本实施例中,电子设备可以基于第一损失函数和第二损失函数,训练视线估计模型。
[0065]
作为示例,第一损失函数用l1表示,第二损失函数用l2表示,总损失函数表示为:
[0066]
l=a1*l1+a2*l2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0067]
其中,a1和a2为预设的权重。在训练时,可以计算当前输入的样本眼部图像对应的l1的损失值和l2的损失值,再利用式(2)计算l的损失值,然后利用梯度下降法,通过再次输入样本眼部图像,迭代更新视线估计模型的参数,以使l的损失值逐渐减小。当满足预设训练结束条件时,结束训练,得到训练好的视线估计模型。上述预设训练结束条件可以包括但不限于以下至少一项:上述l的损失值收敛,训练次数超过预设次数,训练时长超过预设时长。
[0068]
本公开的上述实施例提供的方法,通过将视线估计模型设置为主干网络和重构网络,利用主干网络对样本眼部图像进行预测,得到预测眼部特征,利用重构模块对预测眼部特征进行视线方向预测,得到样本眼部图像的预测视线方向,然后基于预测视线方向和标注视线方向确定第一损失函数的参数,基于预测眼部特征和标注眼部特征确定第二损失函数的参数,最后基于第一预设损失函数和第二预设损失函数,训练视线估计模型。实现了将视线预测任务分解为两个预测任务,即预测眼部特征的任务和预测视线的任务,使训练得到的视线预测模型进行视线预测的过程更加细化,通过引入眼部特征的监督,模型可以学习到与视线方向有关的眼部特征信息,从而得到表示眼球结构的眼部特征,再利用眼部特征重建出视线方向,从而使视线方向的预测精度更高,对被检测者头部姿态的依赖更低,对使用场景的适应性更佳。
[0069]
在一些可选的实现方式中,该方法还可以包括:
[0070]
通过待训练的视线估计模型中的视线不确定性评估网络对预测视线方向进行评估,得到表征预测视线方向的不确定性的评估信息。
[0071]
其中,不确定性评估网络用于表征预测视线方向与评估信息的对应关系。预测视线方向的不确定性可以表示输入的样本眼部图像的质量,即质量越好(例如眼部图像更完整、图像更清晰、眼部张开程度更大等),不确定性越低,质量越差(例如眼部图像不完整、清晰度差、眼部闭合等)、不确定性越高。通常,不确定性评估网络可以确定预测视线方向的概率分布情况,根据概率分布情况确定当前得到的预测视线方向对应的标准差,再根据标准差确定表征预测视线方向的不确定性的评估信息。评估信息可以是数值,该数值的大小可以表示预测视线方向的不确定性。
[0072]
作为示例,预测视线方向服从高斯分布,用下式表示:
[0073][0074]
其中,pred
gaze
表示预测视线方向,gt
gaze
表示标注视线方向(即ground truth),σ表示标准差。
[0075]
在训练时,回归目标是用预测分布拟合真实分布,因此上述第一损失函数可以为kl loss,用来计算回归损失:,
[0076][0077]
其中,表示预测视线方向的分布,表示真实视线方向的分布,这里即标注视线方向的分布。d
kl
表示kl散度,σ表示标准差。忽略式(4)中的常数项,用α替换式(4)中的logσ2,最后的kl loss函数如下式所示:
[0078][0079]
通常,式(5)中的α可以作为不确定性评估网络输出的评估信息,表示预测视线方向的分布与真实分布的差距,α值越大,表示预测视线方向的分布与真实分布的差距越大,即不确定性却大。需要说明的是,评估信息还可以基于α,按照其他方式得到,例如将e

α
作为评估信息。
[0080]
在使用训练好的视线评估模型进行视线预测时,可以同时输出眼部图像对应的表征预测视线方向的不确定性的评估信息,从而可以用于评估输入的眼部图像的质量。
[0081]
本实现方式输出的评估信息,可以用于评估输入的眼部图像的质量,从而可以准确、高效地对眼部图像的质量进行评估。
[0082]
在一些可选的实现方式中,标注眼部特征包括标注眼球半径和标注眼部关键点信息,第二损失函数包括第一子损失函数和第二子损失函数。其中,第一子损失函数用于确定预测眼球半径和标注眼球半径的差距,第二损失子函数用于确定预测眼部关键点的坐标与标注眼部关键点的坐标之间的差距。第一子损失函数和第二子损失函数可以采用现有的各种回归损失函数,例如l2(均方误差)损失、l1(平均绝对值误差)损失等。
[0083]
标注眼球半径表示样本眼部图像指示的眼球的半径,标注关键点信息表示眼部的特定位置。通常,本公开实施例所采用的关键点信息表示三维的眼球中心点在二维的眼部图像上的投影、眼部图像上的瞳孔中心点。
[0084]
在此基础上,步骤201可以如下执行:
[0085]
通过主干网络对样本眼部图像进行预测,得到预测眼球半径和预测眼部关键点信息。
[0086]
本实施例中的主干网络用于预测输入的样本眼部图像指示的眼球的半径和眼部关键点的位置。
[0087]
基于此,步骤204可以如下执行:
[0088]
首先,基于预测眼球半径和标注眼球半径确定第一子损失函数的参数。
[0089]
然后,基于预测眼部关键点信息和标注眼部关键点信息确定第二子损失函数的参数。
[0090]
通常,预测眼球半径和标注眼球半径可以作为第一子损失函数的参数,预测眼部关键点信息和标注眼部关键点信息可以作为第二子损失函数的参数。或者,可以对预测眼球半径和标注眼球半径,以及预测眼部关键点信息和标注眼部关键点信息进行按比例缩放、坐标系转换等方式进行转换,得到的转换结果作为第一子损失函数和第二子损失函数
的参数。
[0091]
作为示例,第一子损失函数用l
11
表示,第二子损失函数用l
12
表示,则上式(2)可以变形为:
[0092]
l=a
11
*l
11
+a
12
*l
12
+a2*l2ꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0093]
其中,a
11
、a
12
、a2为预设的权重。在训练时,可以计算当前输入的样本眼部图像对应的l
11
、l
12
以及l2的损失值,再利用式(6)计算l的损失值,然后利用梯度下降法,通过再次输入样本眼部图像,迭代更新视线估计模型的参数,以使l的损失值逐渐减小。当满足预设训练结束条件时,结束训练,得到训练好的视线估计模型。
[0094]
本实现方式通过将眼球半径和眼部关键点信息作为眼部特征信息,又通过设置对应的第一子损失函数和第二子损失函数,可以实现将眼球模型的三维尺寸信息引入视线估计模型中,在进行视线方向预测时,为预测视线方向提供了更多的有效信息,同时将视线预测任务分解为眼球半径、眼部关键点信息和视线方向这三个预测任务,进一步将视线估计的过程细化,从而进一步提高视线估计的精度。
[0095]
进一步参考图3,示出了视线估计模型的生成方法的又一个实施例的流程示意图。如图3所示,在上述图2所示实施例的基础上,步骤201可以包括如下步骤:
[0096]
步骤2011,确定样本眼部图像的样本类型。
[0097]
步骤2012,若样本类型表示样本眼部图像为样本合成眼部图像,通过主干网络对样本合成眼部图像进行预测,得到样本合成眼部图像对应的第一预测眼部子特征。
[0098]
其中,样本合成眼部图像可以是根据预先建立的眼部模型生成的图像。
[0099]
步骤2013,若样本类型表示样本眼部图像为样本真实眼部图像,通过主干网络对样本真实眼部图像进行预测,得到样本真实眼部图像对应的第二预测眼部子特征。
[0100]
样本真实眼部图像可以是预先对真实的眼睛拍摄的图像。
[0101]
步骤2014,基于第一预测眼部子特征和第二预测眼部子特征,得到预测眼部特征。
[0102]
在训练模型时,通常将多个样本合成眼部图像和多个样本真实眼部图像作为训练模型所需的样本眼部图像。通常,相同数量的至少一个样本合成眼部图像和至少一个样本真实眼部图像组成一个批次(batch)的样本,按照批处理的方式训练模型。上述预测眼部特征即包括第一预测眼部子特征和第二预测眼部子特征。
[0103]
图3对应实施例提供的方法,将训练模型时所需的样本设置为样本合成眼部图像和样本真实眼部图像,样本合成眼部图像在训练时可以为模型提供准确的眼部三维特征,样本真实眼部图像可以检验主干网络的预测性能,从而有助于在训练模型时两者结合,逐步提高模型的预测精度。
[0104]
在一些可选的实现方式中,基于图3对应实施例提供的方法,步骤202可以如下执行:
[0105]
通过待训练的视线估计模型中的重构网络分别对第一预测眼部子特征和第二预测眼部子特征进行视线方向预测,得到样本合成眼部图像对应的第一预测视线方向和样本真实眼部图像对应的第二预测视线方向。
[0106]
本实现方式通过分别确定样本合成眼部图像和样本真实眼部图像对应的第一预测视线方向和第二预测视线方向,可以在训练时,充分利用理想的合成眼部图像和真实拍摄的眼部图像,对模型的视线方向预测能力进行训练,使模型从更多种类的样本中学习更
多的眼部状态,从而提高了模型预测视线方向的精度。
[0107]
在一些可选的实现方式中,步骤203可以如下执行:
[0108]
基于样本合成眼部图像对应的第一标注视线方向和第一预测视线方向,以及样本真实眼部图像对应的第二标注视线方向和第二预测视线方向,确定第一损失函数的参数。
[0109]
通常,第一标注视线方向和第一预测视线方向,以及第二标注视线方向和第二预测视线方向可以作为第一损失函数的参数。或者,可以对第一标注视线方向和第一预测视线方向,以及第二标注视线方向和第二预测视线方向进行按比例缩放、坐标系转换等方式进行转换,得到的转换结果作为第一损失函数的参数。
[0110]
第一损失函数可以确定表示第一标注视线方向和第一预测视线方向之间的差距的损失值,以及表示第二标注视线方向和第二预测视线方向之间的差距的损失值。
[0111]
基于预测眼部特征和标注眼部特征确定第二损失函数的参数,包括:
[0112]
基于样本合成眼部图像对应的第一标注眼部特征和第一预测眼部子特征确定第二损失函数的参数。
[0113]
其中,第一标注眼部特征是预先对样本合成眼部图像进行标注得到的。本实施例中的样本真实眼部图像,由于是对真实眼部拍摄的二维图像,因此,缺少眼部的三维特征,故而没有对应的标注眼部特征。在训练时,可以通过样本合成眼部图像对应的第一标注眼部特征和第一预测眼部子特征计算第二损失函数的损失值,基于该损失值,训练主干网络。利用主干网络预测得到样本真实眼部图像对应的第二预测眼部子特征,再利用重构网络计算样本真实眼部图像对应的第二预测视线方向。再通过上述样本合成眼部图像对应的第一标注视线方向和第一预测视线方向,以及上述样本真实图像对应的第二标注视线方向和第二预测视线方向计算第一损失函数的损失值,基于该损失值,继续训练主干网络。通常,在训练时,可以利用上述公式(2)计算总损失值,通过梯度下降法调整主干网络的参数,使总损失值逐渐收敛,从而实现将根据样本合成眼部图像和样本真实眼部图像结合训练视线估计模型。
[0114]
在每次训练后,将新的样本真实眼部图像输入最近一次调整参数的主干网络,得到新的样本真实眼部图像对应的第二预测眼部子特征继续参与训练。如此迭代多次,直到视线估计模型符合训练结束条件。
[0115]
本可选实现方式通过对样本合成眼部图像标注眼部特征信息和视线方向,对样本真实眼部图像标注视线方向,在训练时有效利用了对样本合成眼部图像标注的三维空间特征训练模型的眼部特征识别能力,同时利用了对样本合成眼部图像和样本真实眼部图像标注的视线方向训练模型的视线估计能力,从而实现了结合三维眼球模型和混合样本数据训练策略,为模型精确预测视线方向提供了更多的有效信息,进一步提高了训练后的模型的视线估计精度。
[0116]
进一步参考图4,其示出了本公开实施例提供的视线估计模型的生成方法的一个示例性的训练过程示意图。如图4所示,训练样本包括样本合成眼部图像401和样本真实眼部图像402,通过批量训练的方法,将相同数量的样本合成眼部图像401和样本真实眼部图像402作为一个batch,输入待训练的视线估计模型的主干网络403,得到样本合成眼部图像401对应的第一预测眼球半径404和第一预测眼部关键点信息405,以及样本真实眼部图像402对应的第二预测眼球半径406和第二预测眼部关键点信息407。
[0117]
然后,将第一预测眼球半径404和第一预测眼部关键点信息405,以及第二预测眼球半径406和第二预测眼部关键点信息407输入待训练的视线估计模型包括的重构网络408,得到样本合成眼部图像401对应的第一预测视线方向409和样本真实眼部图像402对应的第二预测视线方向410。
[0118]
样本合成眼部图像401可以具有对应的标注眼球半径411、标注眼部关键点信息412、第一标注视线方向413,样本真实眼部图像402可以具有对应的第二标注视线方向414。在训练时,将标注眼球半径411和第一预测眼球半径404作为第二损失函数包括的第一子损失函数415的参数;将标注眼部关键点信息412和第一预测眼部关键点信息405作为第二损失函数包括的第二子损失函数416的参数;将第一标注视线方向413和第一预测视线方向409,以及第二标注视线方向414和第二预测视线方向410作为第一损失函数417的参数,利用梯度下降法和反向传播法,调整主干网络的参数,使基于各个损失函数得到的总损失值最小化。当符合训练结束条件时(例如总损失值收敛),结束训练,得到训练后的视线估计模型。
[0119]
进一步参考图5,图5是本公开一示例性实施例提供的视线估计方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图5所示,该方法包括如下步骤:
[0120]
步骤501,获取待估计眼部图像。
[0121]
在本实施例中,电子设备可以从本地或从远程获取待估计眼部图像。待估计眼部图像可以是在各种场景下对目标对象(例如可以是路上的行人、车内的乘客等等)的眼部拍摄的图像。例如,在车辆内部设置有摄像头,该摄像头可以对车辆内的人员的眼部拍摄,得到的眼部图像即为待估计眼部图像。
[0122]
步骤502,将待估计眼部图像输入预先训练的视线估计模型的主干网络,得到预测眼部特征信息。
[0123]
在本实施例中,电子设备可以将待估计眼部图像输入预先训练的视线估计模型的主干网络,得到预测眼部特征信息。其中,视线估计模型预先基于上述图2对应实施例描述的方法训练得到。
[0124]
步骤503,将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。
[0125]
在本实施例中,电子设备可以将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。在得到视线方向信息后,通常可以将视线方向信息利用到人机交互的场景,例如通过视线方向信息完成对被控设备的控制。
[0126]
本公开的上述实施例提供的视线估计方法,通过使用上述图2对应实施例中训练得到的视线估计模型,在进行视线估计时,首先预测眼部特征,再利用眼部特征重建出视线方向,从而使视线方向的预测精度更高,对被检测者头部姿态的依赖更低,对使用场景的适应性更佳。
[0127]
在一些可选的实现方式中,在步骤503之后,电子设备还可以执行如下步骤:
[0128]
首先,将预测视线方向信息输入视线估计模型包括的不确定性评估网络,得到表征预测视线方向的不确定性的评估信息。
[0129]
其中,上述评估信息可以是数值,该数值的大小可以表示预测视线方向的不确定
性。通常,预测视线方向的分布符合高斯分布,即预测视线方向与真实视线方向存在一个标准差,根据该标准差可以得到评估信息。例如,标准差越大,数值形式的评估信息越大,表示预测视线方向的不确定性越高;反之,标准差越小,数值形式的评估信息越小,表示预测视线方向的不确定性越低。
[0130]
然后,基于评估信息,生成表征待估计眼部图像的质量的信息。
[0131]
评估信息可以表示图像的质量,即评估信息表示预测视线方向的不确定性强时,表示图像质量较差,反之,评估信息表示预测视线方向的不确定性弱时,表示图像质量较好。表征待估计眼部图像的质量的信息可以是各种形式,例如文字、符号、数字等。
[0132]
本实现方式通过视线估计模型包括的不确定性评估网络输出的评估信息生成表示图像质量的信息,可以对眼部图像的质量进行准确评估,从而有助于对眼部图像进行筛选等操作,在工程应用中提供图像质量的参考。
[0133]
示例性装置
[0134]
图6是本公开一示例性实施例提供的视线估计模型的生成装置的结构示意图。本实施例可应用在电子设备上,如图6所示,视线估计模型的生成装置包括:第一预测模块601,用于通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征,样本眼部图像具有对应的标注眼部特征和标注视线方向;第二预测模块602,用于通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向;第一确定模块603,用于基于预测视线方向和标注视线方向确定第一损失函数的参数;第二确定模块604,用于基于预测眼部特征和标注眼部特征确定第二损失函数的参数;训练模块605,用于基于第一损失函数和第二损失函数,训练视线估计模型。
[0135]
在本实施例中,第一预测模块601可以通过待训练的视线估计模型中的主干网络对样本眼部图像进行预测,得到预测眼部特征。其中,样本眼部图像具有对应的标注眼部特征和标注视线方向。样本眼部图像可以是从预设的样本集中提取的图像,其对应的标注眼部特征表示眼部的结构特征,对应的标注视线方向表示眼部注视的方向,通常,标注视线方向包括从眼球中心到瞳孔中心的连线在预设坐标系(例如以眼球中心为坐标原点建立的坐标系)中的俯仰角和偏转角。
[0136]
视线估计模型中的主干网络可以包括由多层卷积层、全连接层等构成的深度神经网络,主干网络可以提取输入的眼部图像的特征数据(表示颜色、形状、纹理等特征),再利用得到的特征数据进行眼部特征的预测。
[0137]
在本实施例中,第二预测模块602可以通过待训练的视线估计模型中的重构网络对预测眼部特征进行视线方向预测,得到预测视线方向。其中,重构网络用于表征预测眼部特征与预测视线方向的对应关系。重构网络可以基于由对大量的预测眼部特征和预测视线方向进行统计得到的对应关系表构建,也可以基于预设的计算公式构建。
[0138]
在本实施例中,第一确定模块603可以基于预测视线方向和标注视线方向确定第一损失函数的参数。通常,预测视线方向和标注视线方向可以作为第一损失函数的参数。或者,可以对预测视线方向和标注视线方向进行按比例缩放、坐标系转换等方式进行转换,得到的转换结果作为第一损失函数的参数。
[0139]
第一损失函数用于确定预测视线方向与标注视线方向的差距。第一损失函数可以基于现有的各种损失函数构建,例如kl loss。
[0140]
在本实施例中,第二确定模块604可以基于预测眼部特征和标注眼部特征确定第二损失函数的参数。通常,预测眼部特征和标注眼部特征可以作为第二损失函数的参数。或者,可以对预测眼部特征和标注眼部特征进行按比例缩放等方式进行转换,得到的转换结果作为第二损失函数的参数。
[0141]
第二损失函数用于确定预测眼部特征和标注眼部特征的差距。第二损失函数可以基于现有的各种损失函数构建,例如l2 loss。
[0142]
在本实施例中,训练模块605可以基于第一损失函数和第二损失函数,训练视线估计模型。
[0143]
参照图7,图7是本公开另一示例性实施例提供的视线估计模型的生成装置的结构示意图。
[0144]
在一些可选的实现方式中,第一预测模块601包括:第一确定单元6011,用于确定样本眼部图像的样本类型;第一预测单元6012,用于若样本类型表示样本眼部图像为样本合成眼部图像,通过主干网络对样本合成眼部图像进行预测,得到样本合成眼部图像对应的第一预测眼部子特征;第二预测单元6013,用于若样本类型表示样本眼部图像为样本真实眼部图像,通过主干网络对样本真实眼部图像进行预测,得到样本真实眼部图像对应的第二预测眼部子特征;第二确定单元6014,用于基于第一预测眼部子特征和第二预测眼部子特征,得到预测眼部特征。
[0145]
在一些可选的实现方式中,第二预测模块602进一步用于:通过待训练的视线估计模型中的重构网络分别对第一预测眼部子特征和第二预测眼部子特征进行视线方向预测,得到样本合成眼部图像对应的第一预测视线方向和样本真实眼部图像对应的第二预测视线方向。
[0146]
在一些可选的实现方式中,第一确定模块603进一步用于:基于样本合成眼部图像对应的第一标注视线方向和第一预测视线方向,以及样本真实眼部图像对应的第二标注视线方向和第二预测视线方向,确定第一损失函数的参数;第二确定模块604进一步用于:基于样本合成眼部图像对应的第一标注眼部特征和第一预测眼部子特征确定第二损失函数的参数。
[0147]
在一些可选的实现方式中,该装置还包括:评估模块606,用于通过待训练的视线估计模型中的视线不确定性评估网络对预测视线方向进行评估,得到表征预测视线方向的不确定性的评估信息。
[0148]
在一些可选的实现方式中,标注眼部特征包括标注眼球半径和标注眼部关键点信息,第二损失函数包括第一子损失函数和第二子损失函数;第一预测模块进一步用于:通过主干网络对样本眼部图像进行预测,得到预测眼球半径和预测眼部关键点信息;第二确定模块604包括:第三确定单元6041,用于基于预测眼球半径和标注眼球半径确定第一子损失函数的参数;第四确定单元6042,用于基于预测眼部关键点信息和标注眼部关键点信息确定第二子损失函数的参数。
[0149]
本公开上述实施例提供的视线估计模型的生成装置,通过将视线估计模型设置为主干网络和重构网络,利用主干网络对样本眼部图像进行预测,得到预测眼部特征,利用重构模块对预测眼部特征进行视线方向预测,得到样本眼部图像的预测视线方向,然后基于预测视线方向和标注视线方向确定第一损失函数的参数,基于预测眼部特征和标注眼部特
征确定第二损失函数的参数,最后基于第一预设损失函数和第二预设损失函数,训练视线估计模型。实现了将视线预测任务分解为两个预测任务,即预测眼部特征的任务和预测视线的任务,使训练得到的视线预测模型进行视线预测的过程更加细化,通过引入眼部特征的监督,模型可以学习到与视线方向有关的眼部特征信息,从而得到表示眼球结构的眼部特征,再利用眼部特征重建出视线方向,从而使视线方向的预测精度更高,对被检测者头部姿态的依赖更低,对使用场景的适应性更佳。
[0150]
图8是本公开一示例性实施例提供的视线估计装置的结构示意图。本实施例可应用在电子设备上,如图8所示,视线估计装置包括:获取模块801,用于获取待估计眼部图像;第三预测模块802,用于将待估计眼部图像输入预先训练的视线估计模型的主干网络,得到预测眼部特征信息,其中,视线估计模型预先基于上述图2对应实施例描述的方法训练得到;第四预测模块803,用于将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。
[0151]
在本实施例中,获取模块801可以从本地或从远程获取待估计眼部图像。待估计眼部图像可以是在各种场景下对目标对象(例如可以是人)的眼部拍摄的图像。例如,在车辆内部设置有摄像头,该摄像头可以对车辆内的人员的眼部拍摄,得到的眼部图像即为待估计眼部图像。
[0152]
在本实施例中,第三预测模块802可以将待估计眼部图像输入预先训练的视线估计模型的主干网络,得到预测眼部特征信息。其中,视线估计模型预先基于上述图2对应实施例描述的方法训练得到。
[0153]
在本实施例中,第四预测模块803可以将预测眼部特征信息输入视线估计模型包括的重构网络,得到预测视线方向信息。在得到视线方向信息后,通常可以将视线方向信息利用到人机交互的场景,例如通过视线方向信息完成对被控设备的控制。
[0154]
参照图9,图9是本公开另一示例性实施例提供的视线估计装置的结构示意图。
[0155]
在一些可选的实现方式中,该装置还包括:第三确定模块804,用于将预测视线方向信息输入视线估计模型包括的不确定性评估网络,得到表征预测视线方向的不确定性的评估信息;生成模块805,用于基于评估信息,生成表征待估计眼部图像的质量的信息。
[0156]
本公开的上述实施例提供的视线估计装置,通过使用上述图2对应实施例中训练得到的视线估计模型,在进行视线估计时,首先预测眼部特征,再利用眼部特征重建出视线方向,从而使视线方向的预测精度更高,对被检测者头部姿态的依赖更低,对使用场景的适应性更佳。
[0157]
示例性电子设备
[0158]
下面,参考图10来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
[0159]
图10图示了根据本公开实施例的电子设备的框图。
[0160]
如图10所示,电子设备1000包括一个或多个处理器1001和存储器1002。
[0161]
处理器1001可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1000中的其他组件以执行期望的功能。
[0162]
存储器1002可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种
形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1001可以运行程序指令,以实现上文的本公开的各个实施例的视线估计模型的生成方法或视线估计方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如样本眼部图像、待估计眼部图像等各种内容。
[0163]
在一个示例中,电子设备1000还可以包括:输入装置1003和输出装置1004,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0164]
例如,在该电子设备是终端设备101或服务器103时,该输入装置1003可以是相机、鼠标、键盘等设备,用于输入样本眼部图像、待估计眼部图像、各种命令等。在该电子设备是单机设备时,该输入装置1003可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的样本眼部图像、待估计眼部图像、各种命令等。
[0165]
该输出装置1004可以向外部输出各种信息,包括视线估计模型、预测视线方向等。该输出设备1004可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0166]
当然,为了简化,图10中仅示出了该电子设备1000中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1000还可以包括任何其他适当的组件。
[0167]
示例性计算机程序产品和计算机可读存储介质
[0168]
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的视线估计模型的生成方法或视线估计方法中的步骤。
[0169]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0170]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的视线估计模型的生成方法或视线估计方法中的步骤。
[0171]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0172]
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0173]
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0174]
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0175]
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0176]
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0177]
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0178]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1