一种图像识别方法及设备与流程

专利2023-04-07  6



1.本技术实施例涉及人工智能领域,尤其涉及一种图像识别方法及设备。


背景技术:

2.在人与外界的交互过程中,人的视线通常能够直观自然地反映出人们感兴趣的对象、目的和需求,因而视线识别可以被应用到行为理解、意图分析、人机交互等多个方面。例如,车载场景下根据驾驶员的视线识别可以检测驾驶员是否分心。
3.随着深度神经网络的不断发展,基于深度神经网络学习的视线估计技术作为一种视线识别技术,逐渐得到了广泛应用。然而,目前的基于深度神经网络学习的视线估计技术依赖大量标注有视线数据的标注样本,而这些视线数据的标注又需要消耗大量的人力物力,导致目前的视线识别成本较高的同时效率也低。


技术实现要素:

4.本技术提供一种图像识别方法及设备,能够在缺少标注有视线数据的标注样本的情况下,训练得到用于识别人脸图像中的视线信息的视线识别模型,同时也能够提升视线识别模型识别结果的稳定性和准确率,即使输入大角度头部姿态的人脸图像,本技术的视线识别模型也能够准确地识别出该人脸图像中的视线信息。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,本技术提供一种图像识别方法,该方法包括:获取待识别的人脸图像;通过预先训练好的视线识别模型分析人脸图像,得到视线识别结果,其中,视线识别模型根据训练数据对神经网络模型训练得到,训练数据包括第一图像以及第二图像,第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。
7.也就是说,本技术能够通过无遮挡的人脸样本图像(即第一图像)和其对应的遮掩了眼睛的人脸样本图像(即第二图像),无监督训练得到用于识别人脸图像中的视线信息的视线识别模型,而无需依赖大量标注有视线数据的标注样本进行训练。同时在得到前述预先训练好的视线识别模型后,本技术也能够在获取到待识别的人脸图像时,直接利用该视线识别模型,准确识别待识别的人脸图像中的视线信息。此外,由于本技术是直接通过人脸图像来训练视线识别模型,因此训练得到的视线识别模型能够结合人眼信息、头部姿态信息等全脸信息,准确学习到人物的视线特征。这样,即使待识别的人脸图像是大角度头部姿态的人脸图像,本技术训练好的视线识别模型也能具备很好的鲁棒性,也能够准确识别出人脸图像中的视线信息。提升了视线识别模型的性能的同时,也提高了视线估计的准确度。
8.在一种可能的实现中,本技术提供的图像识别方法还可以包括:通过预设的神经网络模型分析第一图像和第二图像,得到第二图像的人眼重建结果;计算人眼重建结果与原始人眼之间的误差损失;当误差损失不满足预设条件时,根据误差损失训练预设的神经网络模型,以得到训练好的视线识别模型。
9.可以理解,本技术通过预设的神经网络模型对遮掩了人眼信息的第二图像进行人
眼重建,可以迫使预设的神经网络模型在人眼重建过程中,学习到人物的视线特征,从而可以得到训练好的视线识别模型。并且本技术是通过预设的神经网络模型分析第一图像和第二图像,来完成第二图像的人眼重建。其中,由于第二图像遮掩了人眼信息,因此预设的神经网络模型能够从第二图像中感知到除人眼外的脸部信息(如头部姿态信息),而由于第一图像的人眼信息未遮掩,因此,预设的神经网络模型能够从第一图像中感知到人眼信息。从而预设的神经网络模型能够结合人眼信息和脸部信息,完成第二图像的人眼重建,由此可以迫使预设的神经网络模型在人眼重建过程中,能够结合人眼信息和脸部信息学习到人物的视线特征,从而得到训练好的视线识别模型,且该视线识别模型对头部姿态和视线信息的鲁棒性好。提升了视线识别模型的性能的同时,也提高了视线估计的准确度。
10.需要说明的是,在本技术提供的图像识别方法中,其所包含的视线识别模型的训练方法和运用该训练方法训练好的视线识别模型进行图像识别的方法,是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
11.在一种可能的实现中,上述预设的神经网络模型可以包括第一路神经网络以及第二路神经网络。上述通过预设的神经网络模型分析第一图像和第二图像,得到第二图像的人眼重建结果,可以包括:通过第二路神经网络,提取第一图像的视线特征,并将视线特征注入第一路神经网络中;通过第一路神经网络,提取第二图像的脸部特征,并基于脸部特征以及第二路神经网络注入的视线特征,生成人眼重建结果。
12.也就是说,本技术所提供的预设的神经网络模型可以包含两路神经网络,第一路神经网络可用于尝试从遮掩了人眼信息的第二图像中重新构建出人眼信息,第二路神经网络可用于从无遮挡、包含了人眼信息的第一图像中提取出包含视线信息的视线特征,并将该视线特征注入第一路神经网络,以帮助第一路神经网络重新构建出人眼信息。由此,本技术可以训练预设的神经网络模型学习到人物的视线特征。
13.在一种可能的实现中,第一路神经网络可以包括编码器和解码器。上述通过第一路神经网络,提取第二图像的脸部特征,并基于脸部特征以及第二路神经网络注入的视线特征,生成人眼重建结果,可以包括:通过编码器提取第二图像的脸部特征;将脸部特征和第二路神经网络注入的视线特征进行拼接,得到拼接后的特征向量;通过解码器从特征向量中重新构建出人眼图像,得到人眼重建结果。
14.也就是说,本技术所提供的预设的神经网络模型中包含重建眼睛遮蔽的自编码器结构以及视线注入结构,自编码器结构中的编码器能够从遮掩了人眼信息的第一图像中提取到脸部特征,自编码器结构中的解码器能够基于脸部特征和第二路神经网络注入的视线特征,重建眼睛图像。由此,本技术可以训练预设的神经网络模型学习到人物的视线特征。
15.在一种可能的实现中,第二路神经网络与第一路神经网络共享编码器,上述通过第二路神经网络,提取第一图像的视线特征,可以包括:通过编码器提取第一图像的视线特征。
16.可以理解,第一路神经网络中的编码器的网络权重可以反映脸部信息的学习能力,当第二路神经网络中编码器的网络权重与第一路神经网络中的编码器的网络权重共享时,第二路神经网络中编码器能够在具备人眼视线信息的学习能力的同时,也能够具备脸部信息的学习能力,从而第二路神经网络中的编码器可以基于全脸信息,学习到更准确的
人物视线特征。
17.在一种可能的实现中,预设的神经网络模型还可以包括嵌入模块。上述通过编码器提取第一图像的视线特征,可以包括:通过嵌入模块将第一图像转换为第一嵌入块序列;通过编码器提取第一嵌入块序列的视线特征。上述通过编码器提取第二图像的脸部特征,可以包括:通过嵌入模块将第二图像转换为第二嵌入块序列;通过编码器提取第二嵌入块序列的脸部特征。
18.可以理解,由于编码器的输入和输出都是一维的向量序列(sequence),而对于图像数据而言,其数据格式明显与编码器不匹配。因此,本技术所提供的预设的神经网络模型中可以包含嵌入模块,以将图像分割为块处理,分割得到的多个图像块可以转换为符合编码器要求的输入序列。
19.在一种可能的实现中,第一路神经网络以及第二路神经网络可以均为基于视觉变压器(vision transformer,vit)结构的神经网络,其中,第一路神经网络包括vit编码器和vit解码器,第二路神经网络与第一路神经网络共享vit编码器。
20.可以理解,vit结构能够将图像看成图像块的序列,且vit编码器可根据输入的一系列图像块中任意两个图像块之间的相关度,编码得到一系列图像块对应的特征向量。也就是说,每个图像块对应的特征向量,除了每个图像块自身具有的特征信息外,还根据自身与其他图像块之间的相关度,融合了其他图像块的特征信息。由此,本技术所提供的预设的神经网络模型采用vit结构作为网络主体机构,可以充分融合人脸图像的全局信息来提取出的人脸图像中的特征信息,提升了视线识别模型的训练效果,也提高了视线估计的准确度。
21.在一种可能的实现中,第二路神经网络可以包括第一全连接层和第二全连接层。上述将视线特征注入第一路神经网络中,可以包括:通过第一全连接层对视线特征进行下采样,得到瓶颈特征;通过第二全连接层对瓶颈特征进行上采样,得到与脸部特征的维度相同的瓶颈特征;将与脸部特征的维度相同的瓶颈特征注入第一路神经网络中。
22.可以理解,第二路神经网络从完整、无遮挡的第一图像中提取到视线特征后,可以将该视线特征进行压缩,以得到包含视线信息的小维度特征。然后第二路神经网络可以将包含视线信息的小维度特征注入第一路神经网络,以帮助其重建人眼图像。如此,本技术能够训练预设的神经网络模型学习到低维的视线特征。
23.在一种可能的实现中,上述计算人眼重建结果与原始人眼的误差损失,可以包括:计算人眼重建结果与第一图像中的人眼图像之间的误差损失。如此,本技术在训练预设的神经网络模型进行人眼重建时,可以将第一图像中的人眼图像作为训练目标进行训练,以使得模型输出的人眼重建结果与第一图像中的人眼图像之间的误差损失满足预设条件。
24.在一种可能的实现中,上述当误差损失不满足预设条件时,根据误差损失训练预设的神经网络模型,以得到训练好的视线识别模型,可以包括:当误差损失不满足预设条件时,根据误差损失更新预设的神经网络模型中的参数,以得到训练好的神经网络模型;基于训练好的神经网络模型中的第二路神经网络以及线性回归层,得到初始视线识别模型,其中,线性回归层用于将第二路神经网络提取到的视线特征转换为视线信息,视线信息包括视线的水平角度和垂直角度;基于标注有视线信息的人脸样本图像,对初始视线识别模型进行训练,以得到训练好的视线识别模型。
25.可以理解,本技术训练好的神经网络模型中的第二路神经网络能够基于全脸信息,学习到更准确的人物视线特征,但并不能直接得到直观的视线信息。因此,为了应用模型,可以使用少量标注有视线信息的人脸样本图像训练一个线性回归层,以将模型输出的视线特征从特征空间映射到视线空间,得到直观的视线信息。其中,本技术实施例可以将视线信息设置为由视线的水平角度和垂直角度构成的二维数据。
26.在一种可能的实现中,上述基于标注有视线信息的人脸样本图像,对初始视线识别模型进行训练,以得到训练好的视线识别模型,可以包括:基于标注有视线信息的人脸样本图像,对初始视线识别模型中的线性回归层进行训练,以得到训练好的视线识别模型。
27.可以理解,本技术可以固定训练好的神经网络模型中的第二路神经网络的网络参数,仅对线性回归层进行训练,以学习视线特征与视线信息的线性映射关系。从而可以从抽象的视线特征回归出直观的视线角度信息。
28.可选地,当标注有视线信息的人脸样本图像比较多时,本技术也可以使用基于标注有视线信息的人脸样本图像,对整个视线识别模型进行训练,以微调视线识别模型获取视线识别结果。
29.在一种可能的实现中,上述第一图像和第二图像可以为未标注视线信息的人脸样本图像。如此,本技术也能够在缺少标注有视线数据的标注样本的情况下,训练得到用于识别人脸图像中的视线信息的视线识别模型。
30.第二方面,本技术提供一种计算设备,该设备包括获取模块和识别模块。其中,获取模块用于:获取待识别的人脸图像;识别模块用于:通过预先训练好的视线识别模型分析人脸图像,得到视线识别结果,其中,视线识别模型根据训练数据对神经网络模型训练得到,训练数据包括第一图像以及第二图像,第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。
31.可以看出,本技术能够通过无遮挡的人脸样本图像(即第一图像)和其对应的遮掩了眼睛的人脸样本图像(即第二图像),无监督训练得到用于识别人脸图像中的视线信息的视线识别模型,而无需依赖大量标注有视线数据的标注样本进行训练。同时在得到前述预先训练好的视线识别模型后,本技术也能够在获取到待识别的人脸图像时,直接利用该视线识别模型,准确识别待识别的人脸图像中的视线信息。
32.在一种可能的实现中,本技术提供的计算设备还包括:训练模块。该训练模块用于:通过预设的神经网络模型分析第一图像和第二图像,得到第二图像的人眼重建结果;计算人眼重建结果与原始人眼之间的误差损失;当误差损失不满足预设条件时,根据误差损失训练预设的神经网络模型,以得到训练好的视线识别模型。
33.可以理解,本技术通过预设的神经网络模型对遮掩了人眼信息的第二图像进行人眼重建,可以迫使预设的神经网络模型在人眼重建过程中,学习到人物的视线特征,从而可以得到训练好的视线识别模型。
34.在一种可能的实现中,上述预设的神经网络模型可以包括第一路神经网络以及第二路神经网络。上述训练模块中通过预设的神经网络模型分析第一图像和第二图像,得到第二图像的人眼重建结果,可以包括:通过第二路神经网络,提取第一图像的视线特征,并将视线特征注入第一路神经网络中;通过第一路神经网络,提取第二图像的脸部特征,并基于脸部特征以及第二路神经网络注入的视线特征,生成人眼重建结果。本技术可以训练预
设的神经网络模型学习到人物的视线特征。
35.在一种可能的实现中,第一路神经网络可以包括编码器和解码器。上述训练模块中通过第一路神经网络,提取第二图像的脸部特征,并基于脸部特征以及第二路神经网络注入的视线特征,生成人眼重建结果,可以包括:通过编码器提取第二图像的脸部特征;将脸部特征和第二路神经网络注入的视线特征进行拼接,得到拼接后的特征向量;通过解码器从特征向量中重新构建出人眼图像,得到人眼重建结果。
36.也就是说,本技术所提供的预设的神经网络模型中包含重建眼睛遮蔽的自编码器结构以及视线注入结构,自编码器结构中的编码器能够从遮掩了人眼信息的第一图像中提取到脸部特征,自编码器结构中的解码器能够基于脸部特征和第二路神经网络注入的视线特征,重建眼睛图像。由此,本技术可以训练预设的神经网络模型学习到人物的视线特征。
37.在一种可能的实现中,第二路神经网络与第一路神经网络共享编码器,上述训练模块中通过第二路神经网络,提取第一图像的视线特征,可以包括:通过编码器提取第一图像的视线特征。
38.可以理解,第一路神经网络中的编码器的网络权重可以反映脸部信息的学习能力,当第二路神经网络中编码器的网络权重与第一路神经网络中的编码器的网络权重共享时,第二路神经网络中编码器能够在具备人眼视线信息的学习能力的同时,也能够具备脸部信息的学习能力,从而第二路神经网络中的编码器可以基于全脸信息,学习到更准确的人物视线特征。
39.在一种可能的实现中,预设的神经网络模型还可以包括嵌入模块。上述训练模块中通过编码器提取第一图像的视线特征,可以包括:通过嵌入模块将第一图像转换为第一嵌入块序列;通过编码器提取第一嵌入块序列的视线特征。上述通过编码器提取第二图像的脸部特征,可以包括:通过嵌入模块将第二图像转换为第二嵌入块序列;通过编码器提取第二嵌入块序列的脸部特征。
40.可以理解,由于编码器的输入和输出都是一维的向量序列(sequence),而对于图像数据而言,其数据格式明显与编码器不匹配。因此,本技术所提供的预设的神经网络模型中可以包含嵌入模块,以将图像分割为块处理,分割得到的多个图像块可以转换为符合编码器要求的输入序列。
41.在一种可能的实现中,上述第一路神经网络以及第二路神经网络可以均为基于视觉变压器(vision transformer,vit)结构的神经网络,其中,第一路神经网络包括vit编码器和vit解码器,第二路神经网络与第一路神经网络共享vit编码器。由此,本技术所提供的预设的神经网络模型采用vit结构作为网络主体机构,可以充分融合人脸图像的全局信息来提取出的人脸图像中的特征信息,提升了视线识别模型的训练效果,也提高了视线估计的准确度。
42.在一种可能的实现中,第二路神经网络可以包括第一全连接层和第二全连接层。上述训练模块中将视线特征注入第一路神经网络中,可以包括:通过第一全连接层对视线特征进行下采样,得到瓶颈特征;通过第二全连接层对瓶颈特征进行上采样,得到与脸部特征的维度相同的瓶颈特征;将与脸部特征的维度相同的瓶颈特征注入第一路神经网络中。如此,本技术能够训练预设的神经网络模型学习到低维的视线特征。
43.在一种可能的实现中,上述训练模块中计算人眼重建结果与原始人眼的误差损
失,可以包括:计算人眼重建结果与第一图像中的人眼图像之间的误差损失。如此,本技术在训练预设的神经网络模型进行人眼重建时,可以将第一图像中的人眼图像作为训练目标进行训练,以使得模型输出的人眼重建结果与第一图像中的人眼图像之间的误差损失满足预设条件。
44.在一种可能的实现中,上述训练模块中当误差损失不满足预设条件时,根据误差损失训练预设的神经网络模型,以得到训练好的视线识别模型,可以包括:当误差损失不满足预设条件时,根据误差损失更新预设的神经网络模型中的参数,以得到训练好的神经网络模型;基于训练好的神经网络模型中的第二路神经网络以及线性回归层,得到初始视线识别模型,其中,线性回归层用于将第二路神经网络提取到的视线特征转换为视线信息,视线信息包括视线的水平角度和垂直角度;基于标注有视线信息的人脸样本图像,对初始视线识别模型进行训练,以得到训练好的视线识别模型。
45.可以理解,本技术训练好的神经网络模型中的第二路神经网络能够基于全脸信息,学习到更准确的人物视线特征,但并不能直接得到直观的视线信息。因此,为了应用模型,可以使用少量标注有视线信息的人脸样本图像训练一个线性回归层,以将模型输出的视线特征从特征空间映射到视线空间,得到直观的视线信息。其中,本技术可以将视线信息设置为由视线的水平角度和垂直角度构成的二维数据。
46.在一种可能的实现中,上述训练模块中基于标注有视线信息的人脸样本图像,对初始视线识别模型进行训练,以得到训练好的视线识别模型,可以包括:基于标注有视线信息的人脸样本图像,对初始视线识别模型中的线性回归层进行训练,以得到训练好的视线识别模型。
47.可以理解,本技术可以固定训练好的神经网络模型中的第二路神经网络的网络参数,仅对线性回归层进行训练,以学习视线特征与视线信息的线性映射关系。从而可以从抽象的视线特征回归出直观的视线角度信息。
48.可选地,当标注有视线信息的人脸样本图像比较多时,上述训练模块也可以用于:基于标注有视线信息的人脸样本图像,对整个视线识别模型进行训练,以微调视线识别模型获取视线识别结果。
49.在一种可能的实现中,上述第一图像和第二图像可以为未标注视线信息的人脸样本图像。如此,本技术也能够在缺少标注有视线数据的标注样本的情况下,训练得到用于识别人脸图像中的视线信息的视线识别模型。
50.第三方面,本技术提供一种计算设备,该计算设备包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得计算设备执行上述第一方面任一项可能的实现中的图像识别方法。
51.第四方面,本技术提供了一种计算机存储介质,包括计算机指令,当计算机指令在计算设备上运行时,使得计算设备执行上述第一方面任一项可能的实现中的图像识别方法。
52.第五方面,本技术提供了一种计算机程序产品,当计算机程序产品在计算设备上运行时,使得计算设备执行上述第一方面任一项可能的实现中的图像识别方法。
53.第六方面,本技术提供了一种芯片,该芯片包括处理器与数据接口,处理器通过数
据接口读取存储器上存储的指令,以执行上述第一方面任一项可能的实现中的图像识别方法。
54.可选地,作为一种实现方式,芯片还可以包括存储器,存储器中存储有指令,处理器用于执行存储器上存储的指令,当指令被执行时,处理器用于执行上述第一方面任一项可能的实现中的图像识别方法。
55.第七方面,本技术提供了一种服务器或电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得服务器或电子设备执行上述第一方面任一项可能的实现中的图像识别方法。
56.可以理解地,上述提供的第三方面的计算设备,第四方面的计算机存储介质,第五方面的计算机程序产品,第六方面的芯片,第七方面的服务器或电子设备所能达到的有益效果,可参考第一方面及其任一种可能的实现中的有益效果,此处不再赘述。
附图说明
57.图1为本技术实施例提供的一种系统架构的结构示意图;
58.图2为本技术实施例提供的另一种系统架构的结构示意图;
59.图3为本技术实施例提供的一种芯片硬件结构示意图;
60.图4为本技术实施例提供的一种训练模型的示意图;
61.图5为本技术实施例提供的一种视觉变压器(vision transformer,vit)结构的示意图;
62.图6为本技术实施例提供的一种vit结构中自注意力(self-attention)模块的示意图;
63.图7为本技术实施例提供的一种vit结构中变压器(transformer)模块的示意图;
64.图8为本技术实施例提供的一种视线识别模型的无监督训练方法的流程示意图;
65.图9为本技术实施例提供的一种vit结构中注入瓶颈的过程示意图;
66.图10为本技术实施例提供的一种训练模型中线性回归器的结构示意图;
67.图11为本技术实施例提供的一种系统整体示意图;
68.图12为本技术实施例提供的一种基于视线识别模型的图像识别方法的流程示意图。
具体实施方式
69.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
70.视线估计技术是一种理解人类意图的重要技术,基于视线估计技术可以推断出人物的视线方向,从而可以获得人物视线的关注点,进而精准了解人物的意图。近年来,随着深度神经网络的不断发展,基于深度神经网络学习的视线估计技术在许多视线识别的应用
场景中表现出卓越的性能。
71.然而,目前的基于深度神经网络学习的视线估计方法,都依赖于大量标注的视线数据来训练深度神经网络,而视线标注又比较昂贵,且需要消耗大量的时间、人力和物力,因此很难为每个场景都采集大量标注的视线数据,导致深度神经网络的训练效果不佳,视线估计不准。此外,在一些场景下标注的视线数据还需与场景中的硬件设备适配,如车载场景下标注的视线数据需要与不同车型、摄像头适配,更加大了标注的视线数据的获取难度,使得深度神经网络的训练周期比较长,同时效率也比较低。
72.为了解决上述问题,本技术实施例提供了一种深度神经网络的无监督训练方法,无需依赖大量标注的视线数据来训练深度神经网络,节省了视线标注的时间成本和人力物力成本,降低了训练数据的获取难度,缩短了深度神经网络的训练周期。其中,无监督训练可以是指一种通过未标注的训练数据训练深度神经网络的训练方法。
73.作为一种可能的解决方案,可以将大量无标注的人眼图片作为训练数据,输入至视线估计神经网络模型,由视线估计神经网络模型逐步识别训练数据之间的关联和潜在规则,直到视线估计神经网络模型可以用于判断或识别输入的人眼图片的视线特征,由此完成基于人眼图片的视线估计神经网络模型的无监督训练。
74.然而,上述基于人眼图片无监督训练得到的视线估计神经网络模型,仅适用于人眼图片的输入,丢失了全脸信息,尤其是丢失了头部姿态信息,因此上述基于人眼图片无监督训练得到的视线估计神经网络模型,对全脸图片的输入无能为力,对头部姿态不敏感,也就难以应对大角度头部姿态的图片。
75.基于此,本技术实施例提供了一种视线识别模型的无监督训练方法,能够通过大量无标注的人脸图像,无监督训练得到本技术的视线识别模型,使得该视线识别模型可以用于判断或识别输入的人脸图像的视线特征。如此,本技术的视线识别模型在无监督训练过程中,能够结合人物的眼部信息和人物的脸部信息,学习人物的视线特征。从而无监督训练得到的视线识别模型能够采用人脸图像作为输入,即使是输入大角度头部姿态的人脸图像,本技术的视线识别模型也能具备很好的鲁棒性,也能够准确识别出人脸图像中的视线信息,提升了视线识别模型的性能的同时,也提高了视线估计的准确度。
76.进一步地,基于上述无监督训练得到的视线识别模型,本技术实施例还提供了一种图像识别方法,在获取到待识别的人脸图像时,可以将待识别的人脸图像作为输入,输入至上述无监督训练得到的视线识别模型,使得该视线识别模型能够基于待识别的人脸图像的全脸信息,识别出人物的视线信息并输出视线识别结果,从而可以根据视线识别模型输出的视线识别结果,得到待识别的人脸图像中人物的视线方向。
77.需要说明的是,本技术实施例提供的图像处理方法的应用场景不作限定,可适用于车载场景、游戏交互、家居场景等任意涉及视线估计、视线追踪等技术的场景。例如,在车载场景下,可以利用本技术实施例提供的图像处理方法识别座舱内驾驶员的视线方向,以分析驾驶员是否产生疲劳驾驶、分神等异常行为。
78.下面先介绍本技术实施例提供的系统架构。
79.请参阅图1,图1示出了本技术实施例提供的一种系统架构的示意图。如图1所示,系统架构100包括执行设备110、训练设备120、数据库130、客户设备140、数据存储系统150、以及数据采集设备160。
80.数据采集设备160用于采集训练数据。例如,本技术实施例中的训练数据可以是训练视线识别模型的样本图像。其中,样本图像可以是包含人脸的图像或视频。
81.可选地,训练数据可以包括第一图像和第二图像。其中,第一图像可以是无遮挡的人脸样本图像,第二图像与第一图像对应,第二图像可以是眼睛被遮挡的人脸样本图像。可选地,第二图像可以是将第一图像中的眼睛遮挡后得到的人脸样本图像。
82.在采集到训练数据之后,数据采集设备160可以将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型101。本技术的实施例中,目标模型也可以称为目标规则。
83.可选地,本技术实施例的训练设备120可以将包含人眼信息的第一图像和其对应的遮掩了人眼信息的第二图像输入到预设的神经网络模型中,以得到第一图像中的视线信息以及第二图像的人眼重建结果。而后,训练设备120根据人眼重建结果对预设的神经网络模型进行训练,以得到符合应用需求的目标模型101。其中,预设的神经网络模型可以是根据训练模型的应用场景来设定的神经网络模型,也可以是预先存储的神经网络模型(例如之前经过模型训练得到的训练模型)。
84.本技术实施例中,预设的神经网络模型可以包含两路神经网络,第一路神经网络可用于尝试从遮掩了人眼信息的第二图像中重新构建出人眼信息,第二路神经网络可用于从无遮挡、包含了人眼信息的第一图像中提取出包含视线信息的视线特征,并将该视线特征注入第一路神经网络,以帮助第一路神经网络重新构建出人眼信息。
85.随后将结合图4更详细地描述训练设备120如何基于训练数据得到目标模型101,该训练好的目标模型101能够用于实现本技术实施例提供的图像处理方法。例如,执行设备110接收到客户设备140输入的待识别的人脸图像后,执行设备110可以将待识别的人脸图像输入该目标模型101进行处理,即可得到该人脸图像的视线信息。在本技术实施例中,目标模型101可用于识别人脸图像中的视线信息,该目标模型101也称为视线识别模型。
86.需要说明的是,在实际应用中,数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本技术实施例的限定。还需要说明的是,数据库130中维护的训练数据中的至少部分数据也可以用于执行设备110对待识别的人脸图像进行处理的过程。
87.可选地,根据训练设备120训练得到的目标模型101可以应用于不同的系统或设备中,如应用于图1中的执行设备110,该执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr),车载终端等。或者是可以应用在上述这些设备上的芯片,还可以是服务器或者云端等。在图1中,执行设备110配置输入/输出(input/output,i/o)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向i/o接口112输入数据。例如,本技术实施例中的输入数据可以是需要进行视线识别的待处理人脸图像。
88.预处理模块113和/或预处理模块114可用于根据i/o接口112接收到的输入数据进行预处理。例如,在本技术实施例中,预处理模块113可以用于对输入的待识别人脸图像进行裁剪处理,以得到标准化的人脸图像。可选地,该标准化的人脸图像的尺寸(也称分辨率)
大小可以符合目标模型101的输入的尺寸大小。例如,在本技术实施例中,预处理模块114可以用于对输入的待识别人脸图像进行分割处理,以得到一系列图像块,该一系列图像块可以以图像块序列(patch sequence)的形式输入至目标模型101进行处理。
89.本技术实施例中,执行设备110可以包括计算模块111,计算模块111中包括训练设备120根据训练数据训练得到的目标模型101。在本技术实施例中,也可以没有预处理模块113和预处理模块114(也可以只有其中的一个预处理模块),而直接采用该计算模块111对输入数据进行处理。需要说明的是,预处理模块113或预处理模块114可以对全部的输入数据进行预处理,也可以对输入数据的部分数据进行预处理。
90.需要说明的是,预处理模块113和/或预处理模块114也可以是在训练设备120中训练好的。计算模块111可以用于根据上述目标模型101对来自预处理模块113或者i/o接口112的输入数据执行计算等相关的处理。
91.在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
92.最后,i/o接口112可以将处理结果,如将目标模型101计算得到的视线识别结果呈现给客户设备140,从而提供给用户。或者,i/o接口112也可以将处理结果反馈给其他设备,进行相应处理。本技术实施例对此不做限定。
93.可以理解的是,本技术实施例中的执行设备110和客户设备140可以是同一个设备,例如为同一个终端设备。
94.值得说明的是,训练设备120可以针对不同的目标或称不同的任务(或者说业务),基于不同的训练数据训练得到目标模型101,该目标模型101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
95.在图1中,用户可以手动给定输入数据,例如待识别视线信息的人脸图像或视频,该手动给定可以通过i/o接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向i/o接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图1所示输入i/o接口112的输入数据及输出i/o接口112的输出结果作为新的训练数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由i/o接口112直接将如图1所示输入i/o接口112的输入数据及输出i/o接口112的输出结果,作为新的训练数据存入数据库130。
96.可以理解的是,图1仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
97.请参阅图2,图2示出了本技术实施例提供的另一种系统架构的示意图。该系统架构200可以包括至少一个电子设备21和至少一个服务器22。电子设备21与服务器22通过一个或多个网络建立通信连接。该网络可以是局域网(local area networks,lan),也可以是广域网(wide area networks,wan),例如互联网。该网络可使用任何已知的网络通信协议来实现,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线
(universal serial bus,usb)、任何蜂窝网通信协议(如3g/4g/5g)、蓝牙、无线保真(wireless fidelity,wi-fi)或任何其他合适的通信协议。
98.其中,上述服务器22例如可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。上述电子设备21例如可以为手机、平板电脑、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、车载设备、智能汽车、智能音响、机器人等。
99.一些示例中,电子设备21可以为图1中所示的客户设备140;服务器22可以为图1中所示的执行设备110和训练设备120。另一些示例中,电子设备21可以为图1中所示的执行设备110和客户设备140,服务器22可以为图1中所示的训练设备120。又一些示例中,电子设备21可以为图1中所示的客户设备140、执行设备110和训练设备120。
100.在一些实施例中,服务器22可以预先获取大量的包含人脸图像的训练数据,并基于大量的训练数据,采用机器学习/深度学习等方式训练得到视线识别模型。该视线识别模型可用于对人脸图像进行预测,得到该人脸图像对应的视线信息,即实现对该人脸图像中人眼视线的识别。其中,视线识别模型得到视线信息可以是包含有视线信息的特征向量,也可以是具体的视线角度值,如视线方向的水平角度和垂直角度。
101.可以理解,本技术实施例提供的无监督训练方法正是应用于该视线识别模型的训练过程中。也就是说,在该实施例中,服务器22可以执行本技术实施例提供的视线识别模型的无监督训练方法。
102.可选地,服务器22在训练得到视线识别模型后,服务器22在接收待识别视线的人脸图像时,可以直接将待识别视线的人脸图像输入到该视线识别模型中进行处理,得到该人脸图像对应的视线信息。
103.可以理解,本技术实施例提供的图像识别方法正是应用于该训练好的视线识别模型的运用过程中。也就是说,在该实施例中,服务器22也可以执行本技术实施例提供的图像识别方法。
104.可选地,服务器22也根据识别出的视线信息执行相应的操作。例如,服务器22可以根据识别出的视线信息向用户输出不同的内容。又例如,服务器22可以将识别出的视线信息发送给电子设备21,由电子设备21呈现给用户,或者由电子设备21根据识别出的视线信息向用户输出不同的内容等。例如,在车载场景下,可通过视线识别模型识别座舱内驾驶员的视线方向,以在分析出驾驶员分神时,输出警示信息,有效减少异常驾驶情况的发生。再例如,在游戏方面,可通过视线识别模型识别用户的视线方向进行游戏互动,提升人机交互体验。
105.可选地,服务器22在训练得到视线识别模型后,也可以将该视线识别模型发送给电子设备21。这样,电子设备21在接收到用户输入的或自身拍摄到的待识别视线的人脸图像后,可以直接将待识别视线的人脸图像输入到视线识别模型中进行处理,得到该人脸图像对应的视线信息。也就是说,在该实施例中,电子设备21也可以执行本技术实施例提供的图像识别方法。
106.可选地,整个系统架构200也可以不包括服务器22。也就是说,电子设备21可以获取大量的包含人脸图像的训练数据,并基于这些训练数据训练出视线识别模型。而后,电子
设备21在接收到用户输入的或自身拍摄到的待识别视线的人脸图像后,可以直接将待识别视线的人脸图像输入到视线识别模型中进行处理,得到该人脸图像对应的视线信息。也就是说,在该实施例中,可以仅由电子设备21执行本技术实施例提供的视线识别模型的无监督训练方法以及图像识别方法。
107.下面介绍本技术实施例提供的一种芯片硬件结构。
108.请参阅图3,图3示出了本技术实施例提供的一种芯片系统的硬件结构。该芯片系统包括神经网络处理器(neural processing unit,npu)300。该芯片系统可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型101。如本技术实施例提供的预设的神经网络模型中各路神经网络的算法均可在如图3所示的芯片系统中得以实现。
109.神经网络处理器npu 300作为协处理器挂载到主中央处理器(central processing unit,cpu)(host cpu)上,由主cpu分配任务。npu的核心部分为运算电路303,通过控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的矩阵数据并进行乘法运算。
110.在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
111.举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器302中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器301中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器308(accumulator)中。
112.向量计算单元307可以对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
113.在一些实现中,向量计算单元307将经处理的输出的向量存储到统一存储器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。
114.在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
115.在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如,用于在神经网络中的后续层中的使用。
116.统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器305(direct memory access controller,dmac)将外部存储器中的输入数据存入至输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
117.总线接口单元310(bus interface unit,biu),用于通过总线实现主cpu、dmac和取指存储器(instruction fetch buffer)309之间进行交互。
118.与控制器304连接的取指存储器309用于存储控制器304使用的指令。控制器304用于调用取指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
119.一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
120.其中,本技术实施例提供的预设的神经网络模型中各路神经网络的运算可以由运算电路303或向量计算单元307执行。
121.可选的,本技术各实施例提供的方法可以由cpu处理,也可以由cpu和gpu共同处理,也可以不用gpu,而使用其他适合用于神经网络计算的处理器,本技术不做限制。
122.下面结合附图,从视线识别模型的训练侧和视线识别模型的应用侧对本技术提供的方法进行描述。
123.参阅前文视线识别模型(也称目标模型101)的训练过程介绍,通过预设的神经网络模型对训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终可以得到训练好的目标模型101。
124.下面先对本技术实施例提供的视线识别模型的训练阶段中所涉及的预设的神经网络模型的网络架构进行描述。
125.其中,预设的神经网络模型可包含两路神经网络,第一路神经网络可用于尝试从遮掩了人眼信息的第二图像中重新构建出人眼信息,第二路神经网络可用于从无遮挡、包含了人眼信息的第一图像中提取出包含视线信息的视线特征,并将该视线特征注入第一路神经网络,以帮助第一路神经网络重新构建出人眼信息。
126.请参阅图4,本技术实施例中,预设的神经网络模型可以是一个基于编解码(encoder-decoder)架构的神经网络模型。可选地,预设的神经网络模型中的第一路神经网络可以为自编码器(auto-encoder)神经网络。自动编码器神经网络可以学习到输入数据的隐含特征,即编码(coding),同时自动编码器神经网络用学习到的隐含特征可以重构出原始输入数据,即解码(decoding)。
127.如图4所示,自编码器神经网络可以包含编码器(encoder)和解码器(decoder)。编码器可用于将输入的遮掩了人眼信息的第二图像编码为特征向量,该特征向量可以体现出输入的第二图像中所具备的隐含特征。解码器可用于基于该特征向量重新构建出人眼信息。
128.可以理解的是,由于第二图像中的人眼信息被遮掩,因此这里编码器所提取到的隐含特征大部分都是脸部信息的抽象特征,也即第一路神经网络中的编码器能够学习到人脸图像中的脸部信息,其中,脸部信息中可以包含头部姿态信息。
129.可选地,预设的神经网络模型中的第二路神经网络可以为用于提取输入数据的隐含特征的编码器。该编码器可用于从输入的无遮挡、包含了人眼信息的第一图像中提取出包含视线信息的视线特征。也即第二路神经网络中的编码器能够学习到人脸图像中人眼的视线信息。
130.本技术实施例中,第二路神经网络中提取的视线特征还需要注入到第一路神经网
络中,使得第一路神经网络可以基于自身学习到的脸部信息以及第二路神经网络注入的视线信息,通过解码器重新构建出人眼信息。
131.可选地,如图4所示,第二路神经网络还可以包括全连接层(fully connected layers,fc)。全接连层,即上一层的所有节点与下一层的所有节点都相连,可用于把前边提取到的特征综合起来。在一些实施例中,全连接层可以作为上采样(up sampling)层,用于对特征向量进行升维,以对特征向量的维度进行扩展。在另一些实施例中,全连接层也可以作为下采样(down sampling)层,用于对特征向量进行降维,以对特征向量的信息进行压缩,保证特征向量的高度紧凑。
132.本技术实施例中,第二路神经网络中的编码器提取到视线特征后,可以通过全连接层将该视线特征进行降维,得到一个压缩后的低维的视线相关特征,该低维特征也可以称为瓶颈(bottleneck)特征。从而在避免信息丢失的基础上,减少注入瓶颈特征时神经网络的计算量。
133.由于第二路神经网络得到的压缩后的低维视线特征注入到第一路神经网络中时,低维视线特征需要与第一路神经网络中提取的特征向量的维度一致,因此,在得到低维视线特征后,还需要通过全连接层将该低维视线特征进行升维,以得到与第一路神经网络中提取的特征向量的维度一致的视线特征。
134.本技术实施例中,第一路神经网络提取到第二图像的特征向量后,可以将该特征向量与第二路神经网络中提取的视线特征进行拼接,得到一个拼接后的特征向量,实现了第二路神经网络中提取的视线特征到第一路神经网络的注入。然后,第一路神经网络可以通过解码器从拼接后的特征向量中重新构建出人眼图像。如此,第二路神经网络通过向第一路神经网络注入包含视线信息的小维度特征,可以帮助第一路神经网络重建人眼信息。
135.本技术实施例中,第二路神经网络中的编码器需与第一路神经网络中的编码器共享网络权重。可以理解,第一路神经网络中的编码器的网络权重可以反映脸部信息的学习能力,当第二路神经网络中编码器的网络权重与第一路神经网络中的编码器的网络权重共享时,第二路神经网络中编码器能够在具备人眼视线信息的学习能力的同时,也能够具备脸部信息的学习能力,从而第二路神经网络中的编码器可结合人物的脸部特征的学习,学习到更准确的人物视线特征。
136.可选地,第二神经网络中的编码器与第一路神经网络中的编码器可以是同一个编码器。也就是说,包含人眼信息的第一图像和其对应的遮掩了人眼信息的第二图像输入到预设的神经网络模型中时,会经过同一个编码器,该编码器在分别提取到第一图像中的脸部信息和第二图像中人眼的视线信息后,可分别传输至各自后续对应的神经网络。
137.可选地,第二神经网络中的编码器与第一路神经网络中的编码器也可以是不同的编码器但具备相同的网络权重。
138.由于编码器的输入和输出都是一维的向量序列(sequence),而对于图像数据而言,其数据格式明显与编码器不匹配。因此,本技术实施例中,可以通过嵌入(embedding)模块将图像数据进行转换,以得到符合编码器要求的输入序列。
139.可选地,嵌入模块可以与前述的编解码架构共同组成预设的神经网络模型,如此,输入图像至预设的神经网络模型时,神经网络模型可以通过先嵌入模块将图像转换为输入序列,输入至编码器进行后续处理。可选地,嵌入模块也可以是独立于神经网络模型,即输
入图像先通过嵌入模块转换为输入序列,再输入预设的神经网络模型进行处理。本技术实施例不作限定。
140.在一些实施例中,预设的神经网络模型中的编解码(encoder-decoder)架构可以是视觉变压器(vision transformer,vit)结构。请参阅图5,vision transformer结构主要由嵌入(embedding)模块与变压器(transformer)模块组成。
141.其中,嵌入(embedding)模块可用于将输入神经网络模型的图像转换为一系列嵌入块(embedded patches),这一系列嵌入块即可作为符合transformer模块的输入格式的输入序列。transformer模块可用于根据输入的一系列嵌入块中任意两个嵌入块之间的相关度,编码得到一系列嵌入块对应的特征向量。也就是说,每个嵌入块对应的特征向量,除了每个嵌入块自身具有的特征信息外,还根据自身与其他嵌入块之间的相关度,融合了其他嵌入块的特征信息。如此,通过transformer模块可以充分融合人脸图像的全局信息来提取出的人脸图像中的特征信息,在很多计算机视觉任务上都能够实现比较好的表现效果。
142.如图5所示,神经网络模型在接收到输入的图像后,vision transformer可以将图像分割为块处理,得到一系列的图像块(patch),这一系列的图像块也称为图像块序列(patch sequence)。一种示例,输入224
×
224大小的图像,按照16
×
16图像块大小对输入图像进行分割,可以分为14
×
14个图像块,14
×
14个图像块可构成长度为196的图像块序列。
143.然后神经网络模型可以将该图像块序列输入至嵌入模块,嵌入模块通过将图像块序列中的每个图像块经过线性映射(即块嵌入(patch embedding))加上位置嵌入(position embedding),可以得到一系列嵌入块向量即嵌入块序列,神经网络模型可以该嵌入块序列作为transformer模块的编码器的输入序列,输入至transformer模块。
144.本技术实施例中,嵌入模块可以先对图像块序列中的每个图像块进行展平(flatten)操作,即将每个图像块展开为一定长度的一维向量,这个向量叫做图像块一维化(flattened patch)向量。所有图像块的一维向量可构成向量序列。然后嵌入模块可对向量序列使用全连接层进行降维,以得到固定长度的嵌入块向量序列,即嵌入块序列。这个过程也称图像块一维化向量的线性映射(linear projection of flattened patches)。
145.由于把原始图像拆成图像块时丢失了每个图像块相对原始图像中的位置信息,因此需要把图像的原始位置信息编码加入到嵌入块向量,即位置嵌入。其中,位置嵌入是将图像块在图像中的相对位置使用正弦函数编码,使得输入的嵌入块序列包含位置信息。位置嵌入的计算公式为:
[0146][0147][0148]
其中,pos表示图像块在图像块序列中的位置,i表示嵌入块向量的维数,d
model
表示嵌入块向量的长度即向量维度。
[0149]
如图5所示,神经网络模型可以将包含了位置信息的嵌入块序列输入至transformer模块,以通过transformer模块将该嵌入块序列进行编码,可以得到堆叠的特征向量(feature)输出,这些堆叠的特征向量可以构成一定长度的特征向量序列。
[0150]
其中,transformer模块也称transformer模型、transformer结构等,是一种基于自注意力(self-attention)模块的多层神经网络。当transformer模块处理一个嵌入块时,
self-attention模块能够允许transformer模块查看输入的嵌入块序列中的其他位置,以寻找有助于对该嵌入块更好编码的线索。其中,self-attention模块是神经网络的一种结构,可以用于计算输入的嵌入块序列中的每个嵌入块之间的相关度,并按照相关度在输入的嵌入块序列之间抓取信息。
[0151]
示例性地,请参阅图6,图6示出了一种self-attention模块的组成结构示意图。如图6所述,对于输入的一个嵌入块x,self-attention模块首先将其转换为3个向量,之后再将这3个向量分别乘以3个权重矩阵得到3个新的向量query(q),key(k),value(v),这3个不同的权重矩阵可记为w1、w2、w3。然后self-attention模块通过计算q与k之间的点乘(这里可以是通过matmul函数计算点乘),来得到每个嵌入块与其他嵌入块的相关度,这个相关度可以理解为关注度得分(attetnion score)。这里为了防止点乘结果过大,会对点乘结果进行缩放(scale),即会除以一个尺度标度其中dk为q与k向量的维度。然后self-attention模块再对计算得到的相关度执行softmax操作,以将其结果归一化为概率分布,然后self-attention模块再将归一化结果乘以v向量就可以得到带注意力权重的v向量。这个过程的计算公式为:
[0152][0153]
transformer模块可进一步分成编码器(encoder)与解码器(decoder),该编码器和解码器也可称为编码模块和解码模块,前述提及的编码器和解码器可以均为vit架构中的transformer模块。由于编码器与解码器的构成基本相似,因此下述将以编码器的结构为示例进行介绍,解码器的结构将不再赘述。
[0154]
transformer模块的编码器可包括任意数量的编码子模块。类似地,transformer模块的解码器也可包括任意数量的解码子模块。编码子模块的数量与解码子模块的数量可以不相同。
[0155]
示例性地,请参阅图7,图7示出了一种编码子模块的组成结构示意图。其中,图7中所示的lx表示编码子模块,上述编码器中的编码子模块的结构均可以如图7中lx的结构所示。如图7所示,每个编码子模块主要由多头自注意力(multi-head attention)模块与层标准化(layer normalization)模块、多层感知机(multi-layer perceptron,mlp)以及跳跃连接构成。其中,多头自注意力(multi-head attention)模块由多个并联的self-attention模块构成。
[0156]
本技术实施例中,嵌入块(embedded patches)经过transformer模块中层叠的编码子模块的编码,可以得到堆叠的特征向量输出。例如输入224
×
224大小的人脸图像,分成14
×
14的图像块,每个图像块大小为16
×
16,所有图像块可构成长为196的嵌入块序列,经过transformer encoder可以得到长为196的特征向量序列。
[0157]
以下将以预设的神经网络模型的网络架构为上述vit结构为例,对本技术实施例提供的视线识别模型的无监督训练方法进行具体阐述。
[0158]
本技术实施例中,视线识别模型的无监督训练方法可以由如图1所示的训练设备120执行。该训练设备120可以是图2所示的电子设备21,也可以是图2所示的服务器22,本技术实施例并不作限定。这里以训练设备为电子设备为例,对本技术实施例提供的视线识别模型的无监督训练方法进行具体阐述。如图8所示,本技术实施例提供的视线识别模型的训
练方法可以包括s801-s804:
[0159]
s801、电子设备获取第一图像以及第二图像,其中第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。
[0160]
本技术实施例中,电子设备在训练预设的神经网络模型以得到训练好的视线识别模型时,电子设备首先要获取模型训练的训练数据,该训练数据中可包括多组训练样本。可选地,一个无遮挡的人脸样本图像即第一图像,一个与无遮挡的人脸样本图像对应的眼睛被遮挡的人脸样本图像即第二图像为一组训练样本。其中,第一图像为包含人眼信息的全脸图像,第二图像为不包含人眼信息的全脸图像。
[0161]
在一些实施例中,电子设备可以获取大量的包含人脸的第一图像,作为预设的神经网络模型的训练数据。电子设备可以将采集到的第一图像进行人眼遮掩处理,以得到与第一图像对应的眼睛被遮挡的第二图像。
[0162]
可选地,电子设备可以对第一图像进行人眼蒙版生成。其中,蒙版(mask)也称遮罩、掩膜,指遮住部分图像的部分,通常采用全黑的像素表示。在一些实施例中,电子设备可以识别第一图像中的人眼区域,以直接对该人眼区域生成蒙版。在另一些实施例中,电子设备也可以随机对第一图像中的区域生成蒙版,以实现对人眼区域的遮挡。如电子设备可以随机对第一图像中75%的图像区域生成蒙版,如图4所示的第二图像。
[0163]
可选地,电子设备可以获取不同头部姿势的人脸图像作为训练数据训练预设的神经网络模型,以得到训练好的视线识别模型。从而提升训练好的视线识别模型对人脸图像中头部姿态的敏感度。即使是输入大角度头部姿态的人脸图像,本技术的视线识别模型也能具备很好的鲁棒性,也能够准确识别出人脸图像中的视线信息,提升了视线识别模型的性能的同时,也提高了视线估计的准确度。
[0164]
可选地,电子设备在收集到无标注的人脸图像后,可以对该人脸图像进行预处理,以得到符合训练要求的训练样本。如电子设备可以将收集到的人脸图像裁剪至标准化大小后再作为训练样本。
[0165]
s802、电子设备将第一图像以及第二图像输入至预设的神经网络模型,得到第二图像的人眼重建结果。
[0166]
本技术实施例中,预设的神经网络模型可包含两路神经网络,第一路神经网络可用于尝试从遮掩了人眼信息的第二图像中重新构建出人眼信息,第二路神经网络可用于从无遮挡、包含了人眼信息的第一图像中提取出包含视线信息的视线特征,并将该视线特征注入第一路神经网络,以帮助第一路神经网络重新构建出人眼信息。
[0167]
作为一种实施方式,预设的神经网络模型可以具有如图4所示的神经网络结构。其中,第一路神经网络和第二路神经网络可以均为vit结构。如图4所示,第一路神经网络包含vit编码器和vit解码器,第二路神经网络与第一路神经网络共享vit编码器。编码器和解码器的结构均为前述提及的transformer模块的结构。可选地,vit解码器可以比vit编码器小。如vit编码器包含6个编码子模块时,vit解码器可以包含4个解码子模块。
[0168]
电子设备将第一图像和第二图像输入至预设的神经网络模型时,由于第一路神经网络和第二路神经网络均为vit结构,因此vit结构能够将第一图像和第二图像视为图像块的序列,即将图像分割为块处理,如图4所示的第一图像和第二图像,然后经过vit编码器编码得到第一图像对应的堆叠的特征向量和第二图像对应的堆叠的特征向量。
[0169]
电子设备将第一图像和第二图像输入至预设的神经网络模型时,对于第一路神经网络,输入的是遮掩了人眼信息的第二图像,而对于第二路神经网络,输入的是无遮挡、完整人脸的第一图像。
[0170]
参阅前述vit结构的介绍所述,vision transformer结构主要由嵌入(embedding)模块与变压器(transformer)模块组成。因此,电子设备将第一图像和第二图像输入至预设的神经网络模型时,预设的神经网络模型中的嵌入模块可以将输入第一路神经网络的第二图像转换为一系列嵌入块,然后这些嵌入块序列经过第一路神经网络的vit编码器编码,可以得到堆叠的特征向量。同样,预设的神经网络模型中的嵌入模块也可以将输入第二路神经网络的第一图像也转换为一系列嵌入块,然后这些嵌入块序列经过第二路神经网络vit编码器编码,也可以得到堆叠的特征向量。
[0171]
示例性地,对于第一路神经网络,输入第二图像分割处理后得到的14
×
14=196的图像块时,若第二图像遮掩了75%的图像块,则相当于只输入了49个携带有脸部信息的图像块,经过vit编码器编码可以得到49个特征向量,加上147个包含位置嵌入但无信息的遮掩特征向量(mask feature),可以得到196个堆叠的特征向量。
[0172]
而对于第二路神经网络,由于输入的第一图像是完整、无遮挡的人脸图像,因此,对于输入的第一图像分割处理后得到的14
×
14=196的图像块,经过vit编码器编码,可以直接得到196个堆叠的特征向量。这些特征向量中包含有第一图像中的视线特征。
[0173]
由于第二路神经网络提取的特征需要注入第一路神经网络,为了降低神经网络的训练复杂度,可以将第二路神经网络提取的特征进行压缩降维。可选地,第二路神经网络的vit编码器编码输出的堆叠的特征向量后,这些堆叠的特征向量可以经过平均池化以得到单个特征向量,该单个特征向量再用全连接层(也叫线性层)下采样为一个低维向量(例如16维),如图4所示的低维的视线特征。该低维特征也称瓶颈特征。示例性地,请参阅图9,图9示出了瓶颈特征的算法过程示意图。第二路神经网络的编码器从带有眼睛的图片提取出特征后,通过一层全连接层下采样为低维视线相关特征。
[0174]
由于第二路神经网络得到的压缩后的单个低维视线特征注入到第一路神经网络中时,低维视线特征需要与第一路神经网络中提取的特征向量的维度一致,因此,第二路神经网络提取的特征还需要进行升维处理。可选地,如图4所示,第二路神经网络在得到单个低维视线特征后,可以通过全连接层将该低维视线特征进行升维,以得到与第一路神经网络中提取的特征向量的维度一致的单个视线特征。然后第二路神经网络将该升维后的单个视线特征注入第一路神经网络,以视线单个视线特征与第一路神经网络中提取的特征向量的特征拼接。
[0175]
示例性地,请继续参阅图9,第二路神经网络通过一层全连接层将编码器输出的特征下采样为低维视线相关特征即瓶颈特征后,再通过一层全连接层将低维视线相关特征上采样为待注入第一路神经网络的瓶颈特征。
[0176]
例如,第二路神经网络的vit编码器输出196个堆叠的特征向量时,第二路神经网络可以将该196个堆叠的特征向量经过平均池化得到单个特征向量,对该单个特征向量进行下采样得到瓶颈特征后,可以将该瓶颈特征升维后与第一路神经网络vit编码器输出196个堆叠的特征向量进行拼接,得到197个特征向量。
[0177]
第一路神经网络在得到拼接了低维视线特征的特征向量后,该拼接特征向量可以
经过vit解码器解码得到第二图像的人眼重建结果,该人眼重建结果即为预设的神经网络模型的实际输出。可选地,vit解码器可以仅重新构建第二图像中的眼睛区域,也可以重新构建出完整的、未遮挡的第二图像。
[0178]
s803、电子设备计算人眼重建结果与原始人眼的距离。
[0179]
本技术实施例中,电子设备在得到预设的神经网络模型输出的第二图像的人眼重建结果后,可以计算人眼重建结果与原始人眼的距离。其中,人眼重建结果为预设的神经网络模型的实际输出,原始人眼为预设的神经网络模型的期望输出即训练目标,人眼重建结果与原始人眼的距离可以理解为重建出的人眼与原始人眼之间的误差。在一些实施例中,原始人眼可以是无遮挡的第一图像中人眼图像。
[0180]
本技术实施例中,电子设备可以通过损失函数计算人眼重建结果与原始人眼的距离。
[0181]
可以理解,在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近期望输出即训练目标,可以通过比较当前网络的实际输出值和期望输出值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的实际输出值高了,就调整权重矩阵让它输出低一些,不断的调整,直到神经网络能够输出期望输出值。因此,就需要预先定义“如何比较实际输出值和期望输出值的差异”,这便是损失函数(loss function),它们是用于衡量实际输出值和期望输出值的差异的重要方程。其中,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
[0182]
可选地,损失函数可以是均方误差损失函数(mean square loss,mse loss),也称为l2 loss,用于计算重建的眼睛区域和原图眼睛区域的l2距离。其中,均方误差损失函数的计算公式为:
[0183][0184]
其中,t表示预设的神经网络模型的期望输出值,y表示预设的神经网络模型的实际输出值。
[0185]
可选地,损失函数还可以是其他损失函数,例如l1范数损失函数、l2范数损失函数等现有技术中的损失函数或基于现有的损失函数的各自变形后的损失函数。本技术实施例对此不作限定。
[0186]
s804、若人眼重建结果与原始人眼的距离不满足预设条件,则电子设备根据人眼重建结果训练预设的神经网络模型,以得到视线识别模型。
[0187]
其中,预设条件可以是预设的神经网络模型收敛时对应的收敛条件。可选地,预设条件可以是一个预设的收敛阈值,当人眼重建结果与原始人眼的距离小于该收敛阈值时,可以认为预设的神经网络模型收敛,预设的神经网络模型已经训练好,该训练好的神经网络模型即为本技术实施的视线识别模型。可以理解的是,预设阈值越小,模型训练的要求越高,最终训练得到视线识别模型可实现的效果可以越好。可以理解,当人眼重建结果与原始人眼的距离大于或等于该收敛阈值时,可以认为预设的神经网络模型未收敛,预设的神经网络模型还未训练好,仍需进行训练神经网络模型。
[0188]
可选地,若人眼重建结果与原始人眼的距离是通过均方误差损失函数计算得到,
则当均方误差损失函数不满足预设条件时,电子设备可以根据均方误差损失函数训练预设的神经网络模型,以得到视线识别模型。
[0189]
可选地,神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正预设的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新预设的神经网络模型中参数,完成本轮次第一图像和第二图像的训练迭代。以此类推,采用相同的方法,完成其他的第一图像和第二图像的训练,经过若干轮次的训练迭代可以使误差损失下降缓慢或收敛,此时可认为模型收敛,得到训练好的视线识别模型。其中,反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如,权重矩阵。一般地,训练的时间越长,模型的效果越好,但到一定轮次后,模型的性能将不再提高。
[0190]
可以理解,电子设备根据人眼重建结果将预设的神经网络模型训练至收敛后,训练好的预设的神经网络模型中用于提取完整、无遮挡的第一图像中的特征向量的第二路神经网络中vit编码器,也在融合了人脸图像中人物眼部信息和人物脸部信息的全局信息的基础上,准确学习了人眼的视线特征。如此,即训练得到了视线识别模型。
[0191]
可以理解,本技术实施例提供的视线识别模型的无监督训练方法,在缺少视线标注数据的情况下,可以基本未标注的第一图像和第二图像,训练模型学习视线表示,从而可以利用训练好的模型完成视线估计。且由于用于训练的第一图像和第二图像都是人脸图像,包含了头部姿态信息,所以本技术训练得到的视线识别模型对大角度头部姿态的人脸图像也具备很好鲁棒性。
[0192]
此外,本技术实施例在视线识别模型的预训练阶段采用的是vision transformer网络架构,vision transformer能够将图像看成图像块的序列,通过multi-head attention操作可充分融合了图像的全局信息,因此本技术的视线识别模型能够在多个视线估计应用上取得了很好的表现。与现有的其他无监督训练方法100-shot实验的性能比较差相比,本技术的视线识别模型的无监督训练方法在mpiigaze,eyediap,columbiagaze,eth-xgaze,gaze360等测试基准上也都能够具备非常优良的性能。
[0193]
可选地,本技术实施例提供的视线识别模型的无监督训练方法涉及图像分块,并不适用于传统的卷积神经网络(cnn,convolutional neuron network),但本技术可以利用数据蒸馏(data distillation)等技巧将上述无监督训练好的视线识别模型迁移到cnn。
[0194]
可以理解,由于上述无监督训练好的预设的神经网络模型能够从人脸图像中提取到比较准确的视线表示,即前述提及的低维的视线特征,但并不能直接得到具体的视线方向值。因此为了应用该训练好的预设的神经网络模型,本技术实施例可以使用少量视线标注的训练数据,训练一个小的低维线性回归器,以将提取的低维视线特征转换为具体的视线方向值。
[0195]
示例性地,请参阅图10,图10中虚线框中的部分即为低维线性回归器的网络架构。其中,低维线性回归器可以是任意线性回归网络,也可以是简单的一个线性回归层,具体的线性回归器本技术实施例不作限定。
[0196]
本技术实施例中,电子设备可以在得到上述无监督训练好的预设的神经网络模型即视线识别模型后,可以在第二路神经网络后面增加一个线性回归层。然后电子设备可以
获取少部分视线标注的训练图像,该训练图像是标注了视线方向的人脸图像。然后利用这些少部分视线标注的训练图像对线性回归层进行训练,以将第二路神经网络注入瓶颈部分的低维视线表示转换为视线角度值。其中,该视线角度值可以是一个二维的值,可以包括视线的水平角度值和垂直角度值。可选地,电子设备可以使用l1距离作为损失函数对线性回归层进行训练。可选地,电子设备也可以使用其他损失函数对线性回归层进行训练,本技术实施例不作限定。
[0197]
例如,对于16维的视线瓶颈特征,可以训练带有偏置值(bias)的,一共16x2(即输出的视线角度值的维度)+2(即偏置值)=34个参数的线性回归器,以从低维的视线特征中回归出视线角度值。如此,在固定模型其他参数的情况下,我们只需要低至100个视线标注的样本就可以训练一个简单的线性回归器。
[0198]
在一些实施例中,当电子设备可以获取到更多的标注有视线的训练图像时,电子设备也可以使用这些视线标注的训练图像来微调视线识别模型,以获取更为准确的视线估计效果。可选地,电子设备在无监督训练好的预设的神经网络模型后,可以使用少量视线标注的人脸图像直接训练整个神经网络模型,得到训练好的视线识别模型,以应用于各种视线识别场景。训练时使用的损失函数不作限定,例如可以是l1 loss。
[0199]
可以理解,电子设备在得到训练好的视线识别模型后,可以利用该训练好的视线识别模型,对实际应用过程中的待识别人脸图像进行视线识别。示例性地,请参阅图11,图11示出了本技术实施例提供的视线识别模型的系统流程示意图。在缺少视线标注的训练数据的情况下,可以通过获取大量无标注的人脸图像,基于前述无监督训练方法训练得到视线识别模型。然后可以获取少量带有视线标签的人脸图像,有监督地微调视线识别模型,得到最终应用于执行设备的视线识别模型。如图11所示,最终训练好的视线识别模型可以配置于执行设备的中央处理器中。其中,执行设备可以是需要进行视线估计的设备。
[0200]
示例性地,如图11所示,当摄像头等传感器模块采集到人脸图像时,可以将采集到的人脸图像发送至中央处理器,中央处理可以调用配置的视线识别模型对人脸视频或人脸图像进行处理,并输出视线识别模型预测的视线角度,以待后续使用。其中,人脸图像可以是包括人脸的视频帧或图片。
[0201]
进一步地,本技术实施例基于上述训练得到的视线识别模型还提供了一种图像识别方法。图像识别方法可以由如图1所示的执行设备110执行。该执行设备110可以是图2所示的电子设备21,也可以是图2所示的服务器22,本技术实施例并不作限定。这里以执行设备为电子设备为例,对本技术实施例提供的视线识别模型的图像识别方法进行具体阐述。如图12所示,本技术实施例提供的视线识别模型的训练方法可以包括s1201-s1202:
[0202]
s1201、电子设备获取待识别的人脸图像。
[0203]
可选地,电子设备可以设置有用于采样图像或视频的传感器模块,例如摄像头。电子设备可以通过传感器模块获取到待识别的人脸图像。其中,待识别的人脸图像可以包含头部姿态信息。
[0204]
可选地,电子设备也可以从其他设备处获取到待识别的人脸图像。其中,其他设备可以是其他电子设备,服务器等。
[0205]
可选地,电子设备也可以接收用户输入的待识别的人脸图像。
[0206]
s1202、电子设备将人脸图像输入预先训练好的视线识别模型,得到视线识别模型
输出的视线识别结果,其中,视线识别模型根据训练数据对神经网络模型训练得到,训练数据包括第一图像以及第二图像,第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。
[0207]
本技术实施例中,电子设备可以将待识别的人脸图像输入预先训练好的视线识别模型,得到视线识别模型输出的视线识别结果。其中,视线识别模型根据训练数据对神经网络模型训练得到,训练数据包括第一图像以及第二图像,第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。具体的训练过程参阅前述内容,此次不作赘述。
[0208]
由于前述预设的神经网络模型包含两路神经网络,且第二路神经网络是从无遮挡的人脸图像中提取到低维的视线特征,而第一路神经网络是用于重建人眼,因此,本技术实施例中,也可以将预先训练好的神经网络模型中的第二路神经网络,作为预先训练好的视线识别模型,对待识别的人脸图像进行视线识别。
[0209]
在一些实施例中,由于预先训练好的神经网络模型中的第二路神经网络能够基于全脸信息,学习到更准确的人物视线特征,但并不能直接得到直观的视线信息,因此,为了应用模型,可以使用少量标注有视线信息的人脸样本图像训练一个线性回归层,以将第二路神经网络输出的视线特征从特征空间映射到视线空间,得到直观的视线信息。
[0210]
可选地,可以将预先训练好的神经网络模型中的第二路神经网络以及用于从低维的视线特征回归出视线角度值的线性回归层,作为预先训练好的视线识别模型,对待识别的人脸图像进行视线识别。这样,电子设备将待识别的人脸图像输入预先训练好的视线识别模型后,视线识别模型可以输出人脸图像中人眼视线方向的角度值,该输出的角度值即为人脸图像的视线识别结果。
[0211]
综上,本技术实施例提供了一种视线识别模型的无监督训练方法及训练设备,能够通过大量无标注的人脸图像,无监督训练得到本技术的视线识别模型,使得该视线识别模型可以用于判断或识别输入的人脸图像的视线特征。如此,本技术的视线识别模型在无监督训练过程中,能够结合将人物的眼部信息和人物的脸部信息,学习人物的视线特征。从而无监督训练得到的视线识别模型能够采用人脸图像作为输入,即使是输入大角度头部姿态的人脸图像,本技术的视线识别模型也能具备很好的鲁棒性,也能够准确识别出人脸图像中的视线信息,提升了视线识别模型的性能的同时,也提高了视线估计的准确度。
[0212]
进一步地,基于上述无监督训练得到的视线识别模型,本技术实施例还提供了一种图像识别方法及执行设备,能够在获取到待识别的人脸图像时,通过上述无监督训练得到的视线识别模型分析待识别的人脸图像,得到人脸图像视线识别结果。如此,本技术能够得到待识别的人脸图像中人物的视线方向,以根据视线方向进行后续应用。例如,当待识别的人脸图像为车辆座舱内驾驶员的人脸图像时,通过本技术训练得到视线识别模型分析驾驶员的人脸图像,可以得到驾驶员的视线方向,通过驾驶员的视线方向可以分析驾驶员是否产生疲劳驾驶、分神等异常行为。
[0213]
需要说明的是,本技术实施例提供的视线识别模型的无监督训练方法,以及本技术提供的运用该训练方法训练好的视线识别模型进行图像识别的方法,是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
[0214]
可选地,本技术实施例提供的方法还可以用于扩充训练数据库,如图1所示执行设备110的i/o接口112可以将用户输入的待识别人脸图像和经执行设备110中视线识别模型计算得到的视线识别结果一起作为训练数据对发送给数据库130,以使得数据库130维护的训练数据更加丰富,从而为训练设备120的训练工作提供更丰富的训练数据。
[0215]
本技术实施例还提供了一种训练装置。该训练装置可以包括获取单元、输入单元、计算单元和训练单元。其中,获取单元,用于获取第一图像以及第二图像,其中第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像;输入单元,用于将第一图像以及第二图像输入至预设的神经网络模型,得到第二图像的人眼重建结果;计算单元,用于计算人眼重建结果与原始人眼的距离;训练单元,用于若人眼重建结果与原始人眼的距离不满足预设条件,则电子设备根据人眼重建结果训练预设的神经网络模型,以得到视线识别模型。
[0216]
本技术实施例还提供了一种识别装置。该识别装置可以包括获取单元和识别单元。其中,获取单元,用于获取待识别的人脸图像;识别单元,用于将人脸图像输入预先训练好的视线识别模型,得到视线识别模型输出的视线识别结果,其中,视线识别模型根据训练数据对神经网络模型训练得到,训练数据包括第一图像以及第二图像,第一图像为无遮挡的人脸样本图像,第二图像为眼睛被遮挡的人脸样本图像。
[0217]
本技术实施例还提供了一种训练设备,该训练设备包含有上述训练装置。其中,训练设备可以是一种计算机设备,其可以是图2所示的电子设备21,也可以是图2所示的服务器22。
[0218]
本技术实施例还提供了一种执行设备,该执行设备包含有上述执行装置。其中,执行设备可以是一种计算机设备,其可以是图2所示的电子设备21,也可以是图2所示的服务器22。
[0219]
可选地,执行设备和训练设备可以是同一设备。例如,服务器作为训练设备训练得到本技术的视线识别模型后,服务器也可以作为执行设备,通过自身训练得到的视线识别模型处理用户输入的待识别人脸图像。
[0220]
本技术实施例还提供了一种系统,该系统包含上述执行设备和训练设备。可选地,执行设备可以是图2所示的电子设备21,训练设备可以是图2所示的服务器22。
[0221]
本技术实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的界面显示方法。
[0222]
本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子设备执行的界面显示方法。
[0223]
本技术实施例还提供了一种芯片系统,该芯片系统包括处理器,用于实现本技术实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本技术实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本技术实施例对此不作具体限定。
[0224]
其中,本实施例提供的计算设备(如执行设备和训练设备)、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可
参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0225]
可以理解的是,上述计算设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0226]
本技术实施例可以根据上述方法示例对上述计算设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0227]
需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0228]
例如,计算设备可以包括存储器、处理器、通信接口以及总线。其中,存储器、处理器、通信接口通过总线实现彼此之间的通信连接。
[0229]
存储器可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器可以存储程序,当存储器中存储的程序被处理器执行时,处理器和通信接口用于执行本技术实施例的视线识别模型的无监督训练方法或基于训练好的视线识别模型的图像识别方法的各个步骤。
[0230]
处理器可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的训练装置或执行装置中的单元所需执行的功能,或者执行本技术方法实施例的视线识别模型的无监督训练方法或基于训练好的视线识别模型的图像识别方法。
[0231]
处理器还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的视线识别模型的无监督训练方法或基于训练好的视线识别模型的图像识别方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本技术实施例的训练装置或执行装置中包括的单元所需执行的功能,或者执行本技术方法实施例的视线识别模型的无监督训练方法或基于训练好的视线识别模型的图像识别方法。
[0232]
通信接口使用例如但不限于收发器一类的收发装置,来实现装置与其他设备或通
信网络之间的通信。例如,可以通过通信接口获取训练数据(如本技术实施例的第一图像和第二图像)。
[0233]
总线可包括在计算设备各个部件(例如,存储器、处理器、通信接口)之间传送信息的通路。
[0234]
应理解,训练装置中的获取单元相当于计算设备中的通信接口,训练装置中的输入单元、计算单元和训练单元可以相当于计算设备中的处理器。执行装置中的获取单元相当于计算设备中的通信接口,执行装置中的识别单元可以相当于计算设备中的处理器。
[0235]
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0236]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0237]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0238]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0239]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0240]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种图像识别方法,其特征在于,所述方法包括:获取待识别的人脸图像;通过预先训练好的视线识别模型分析所述人脸图像,得到视线识别结果,其中,所述视线识别模型根据训练数据对神经网络模型训练得到,所述训练数据包括第一图像以及第二图像,所述第一图像为无遮挡的人脸样本图像,所述第二图像为眼睛被遮挡的人脸样本图像。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过预设的神经网络模型分析所述第一图像和所述第二图像,得到所述第二图像的人眼重建结果;计算所述人眼重建结果与原始人眼之间的误差损失;当所述误差损失不满足预设条件时,根据所述误差损失训练所述预设的神经网络模型,以得到所述训练好的视线识别模型。3.根据权利要求2所述的方法,其特征在于,所述预设的神经网络模型包括第一路神经网络以及第二路神经网络;所述通过预设的神经网络模型分析所述第一图像和所述第二图像,得到所述第二图像的人眼重建结果,包括:通过所述第二路神经网络,提取所述第一图像的视线特征,并将所述视线特征注入所述第一路神经网络中;通过所述第一路神经网络,提取所述第二图像的脸部特征,并基于所述脸部特征以及所述第二路神经网络注入的所述视线特征,生成所述人眼重建结果。4.根据权利要求3所述的方法,其特征在于,所述第一路神经网络包括编码器和解码器,所述通过所述第一路神经网络,提取所述第二图像的脸部特征,并基于所述脸部特征以及所述第二路神经网络注入的所述视线特征,生成所述人眼重建结果,包括:通过所述编码器提取所述第二图像的脸部特征;将所述脸部特征和所述第二路神经网络注入的所述视线特征进行拼接,得到拼接后的特征向量;通过所述解码器从所述特征向量中重新构建出人眼图像,得到所述人眼重建结果。5.根据权利要求4所述的方法,其特征在于,所述第二路神经网络与所述第一路神经网络共享所述编码器,所述通过所述第二路神经网络,提取所述第一图像的视线特征,包括:通过所述编码器提取所述第一图像的视线特征。6.根据权利要求5所述的方法,其特征在于,所述预设的神经网络模型还包括嵌入模块,所述通过所述编码器提取所述第一图像的视线特征,包括:通过所述嵌入模块将所述第一图像转换为第一嵌入块序列;通过所述编码器提取所述第一嵌入块序列的视线特征;所述通过所述编码器提取所述第二图像的脸部特征,包括:通过所述嵌入模块将所述第二图像转换为第二嵌入块序列;通过所述编码器提取所述第二嵌入块序列的脸部特征。7.根据权利要求3-6任一项所述的方法,其特征在于,所述第一路神经网络以及第二路神经网络均为基于视觉变压器(vision transformer,vit)结构的神经网络,其中,所述第一路神经网络包括vit编码器和vit解码器,所述第二路神经网络与所述第一路神经网络共
享所述vit编码器。8.根据权利要求3-7任一项所述的方法,其特征在于,所述第二路神经网络包括第一全连接层和第二全连接层,所述将所述视线特征注入所述第一路神经网络中,包括:通过所述第一全连接层对所述视线特征进行下采样,得到瓶颈特征;通过所述第二全连接层对所述瓶颈特征进行上采样,得到与所述脸部特征的维度相同的瓶颈特征;将所述与所述脸部特征的维度相同的瓶颈特征注入所述第一路神经网络中。9.根据权利要求2-8任一项所述的方法,其特征在于,所述计算所述人眼重建结果与原始人眼的误差损失,包括:计算所述人眼重建结果与所述第一图像中的人眼图像之间的误差损失。10.根据权利要求3-9任一项所述的方法,其特征在于,所述当所述误差损失不满足预设条件时,根据所述误差损失训练所述预设的神经网络模型,以得到所述训练好的视线识别模型,包括:当所述误差损失不满足预设条件时,根据所述误差损失更新所述预设的神经网络模型中的参数,以得到训练好的神经网络模型;基于所述训练好的神经网络模型中的所述第二路神经网络以及线性回归层,得到初始视线识别模型,其中,所述线性回归层用于将所述第二路神经网络提取到的所述视线特征转换为视线信息,所述视线信息包括视线的水平角度和垂直角度;基于标注有视线信息的人脸样本图像,对所述初始视线识别模型进行训练,以得到所述训练好的视线识别模型。11.根据权利要求10所述的方法,其特征在于,所述基于标注有视线信息的人脸样本图像,对所述初始视线识别模型进行训练,以得到所述训练好的视线识别模型,包括:基于标注有视线信息的人脸样本图像,对所述初始视线识别模型中的所述线性回归层进行训练,以得到所述训练好的视线识别模型。12.根据权利要求1-11任一项所述的方法,其特征在于,所述第一图像和所述第二图像为未标注视线信息的人脸样本图像。13.一种计算设备,其特征在于,所述计算设备包括存储器和一个或多个处理器,所述存储器和所述处理器耦合,所述存储器上存储有程序或指令,当所述程序或指令被所述处理器执行时,所述计算设备执行如权利要求1-12中任一项所述的方法。14.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1-12中任一项所述的方法。15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算设备上运行时,使得所述计算设备执行如权利要求1-12中任一项所述的方法。16.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算设备上运行时,使得所述计算设备执行如权利要求1-12中任一项所述的方法。

技术总结
本申请公开了一种图像识别方法及设备,涉及人工智能领域。本申请能够在无监督的条件下训练视线识别模型从人脸图像中提取视线信息,可以提升人脸图像的视线识别结果的稳定性和准确率,即使采集到大角度头部姿态的人脸图像也能够准确地识别出该人脸图像中的视线信息。该方法中,本申请能够通过无遮挡的人脸样本图像和其对应的遮掩了眼睛的人脸样本图像,无监督训练得到用于识别人脸图像中的视线信息的视线识别模型,而无需依赖大量标注有视线数据的标注样本进行训练。在得到前述预先训练好的视线识别模型后,本申请能够在获取到待识别的人脸图像时,直接利用该视线识别模型,准确识别待识别的人脸图像中的视线信息。别待识别的人脸图像中的视线信息。别待识别的人脸图像中的视线信息。


技术研发人员:江扬舟 王曜明
受保护的技术使用者:华为技术有限公司
技术研发日:2022.08.09
技术公布日:2022/12/2
转载请注明原文地址: https://bbs.8miu.com/read-332335.html

最新回复(0)