CN116704572B - 一种基于深度摄像头的眼动追踪方法和装置 - Google Patents

一种基于深度摄像头的眼动追踪方法和装置 Download PDF

Info

Publication number
CN116704572B
CN116704572B CN202211737811.0A CN202211737811A CN116704572B CN 116704572 B CN116704572 B CN 116704572B CN 202211737811 A CN202211737811 A CN 202211737811A CN 116704572 B CN116704572 B CN 116704572B
Authority
CN
China
Prior art keywords
matrix
user
point
rgb
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211737811.0A
Other languages
English (en)
Other versions
CN116704572A (zh
Inventor
臧磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211737811.0A priority Critical patent/CN116704572B/zh
Publication of CN116704572A publication Critical patent/CN116704572A/zh
Application granted granted Critical
Publication of CN116704572B publication Critical patent/CN116704572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/166Detection; Localisation; Normalisation using acquisition arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/337Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Ophthalmology & Optometry (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例提供一种基于深度摄像头的眼动追踪方法和装置,涉及终端领域,能够实时校准用户在不同头部姿态下的眼动预测位置,提高眼动追踪的准确率。其方法应用于电子设备,电子设备包括RGB摄像头和深度摄像头,该方法包括:在第一时刻控制RGB摄像头采集第一RGB图,控制深度摄像头采集第一深度图;根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵;根据旋转矩阵和平移矩阵更新第一单应矩阵,第一单应矩阵是根据预设标定点对应的齐次变换矩阵与预设标定点的预测点对应的齐次变换矩阵确定的;根据第一RGB图确定用户的注视点位置,再根据更新后的第一单应矩阵校准用户的注视点位置。

Description

一种基于深度摄像头的眼动追踪方法和装置
技术领域
本申请涉及终端领域,尤其涉及一种基于深度摄像头的眼动追踪方法和装置。
背景技术
眼动追踪技术是通过对人的眼睛注视位置进行跟踪,以此进行人机交互的方法。当在人机交互的过程中应用眼动追踪技术时,可以将眼睛的运动情况作为输入,当用户眼睛移动时,通过估算人眼视线在计算机屏幕的落点,实现人与计算机的交互。
如图1所示,目前可以通过桌面的眼动仪(或者头戴式眼动仪,图1中未示出)获取双眼图像,然后使用眼部图像获取眼睛在计算机屏幕的注视点。
然而,现有眼动追踪方案仅能对用户固定姿态下的注视位置进行预测,当用户姿态相对终端设备发生变化后,现有眼动追踪方案预测的眼睛注视位置与实际注视位置间有较大误差。
发明内容
本申请实施例提供一种基于深度摄像头的眼动追踪方法和装置,能够实时校准用户在不同头部姿态下的眼动预测位置(即眼睛的注视点位置),提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
第一方面,本申请实施例提供一种基于深度摄像头的眼动追踪方法,应用于电子设备,电子设备包括红绿蓝(red green blue,RGB)摄像头和深度摄像头,方法包括:在第一时刻控制RGB摄像头采集第一RGB图,控制深度摄像头采集第一深度图;根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵;根据旋转矩阵和平移矩阵更新第一单应矩阵,第一单应矩阵是根据预设标定点对应的齐次变换矩阵与预设标定点的预测点对应的齐次变换矩阵确定的;根据第一RGB图确定用户的注视点位置,再根据更新后的第一单应矩阵校准用户的注视点位置。
基于本申请实施例提供的方法,可以根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵,根据旋转矩阵和平移矩阵更新第一单应矩阵,根据第一RGB图确定用户的注视点位置,再根据更新后的第一单应矩阵校准用户的注视点位置,即可以根据用户头部姿态的变化,实时在线校准不同头部姿态下的眼动追踪结果(注视点位置),提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
在一种可能的实现方式中,方法还包括:控制RGB摄像头和深度摄像头基于预设帧率采集用户注视预设标定点的RGB图和深度图;根据用户注视预设标定点的RGB图和深度图确定预设标定点对应的预测点;确定预设标定点对应的齐次变换矩阵与预测点对应的齐次变换矩阵之间的第一单应矩阵。
在一种可能的实现方式中,根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵包括:检测第一RGB图的人脸关键点,得到用户的头部区域的2D点;确定2D点在第一深度图对应的用户的头部区域的3D点;根据用户的头部区域的3D点和基准头部姿态对应的3D点确定旋转矩阵和平移矩阵。本申请提供的方法,可以基于第一RGB图的人脸关键点(2D点)和第一深度图中的3D点,估计得到用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵(旋转矩阵和平移矩阵可以表示用户当前的头部姿态和基准头部姿态之间头部的相对位姿),避免采用图像间特征匹配确定旋转矩阵和平移矩阵导致耗时高的问题,提升了计算旋转矩阵和平移矩阵的实时性及准确性。
在一种可能的实现方式中,根据用户的头部区域的3D点和基准头部姿态对应的3D点确定旋转矩阵和平移矩阵包括:采用迭代最近点(iterative closest point,ICP)算法对用户的头部区域的3D点和基准头部姿态对应的3D点进行配准,得到旋转矩阵和平移矩阵。
在一种可能的实现方式中,确定2D点在第一深度图对应的用户的头部区域的3D点之前,方法还包括:将第一RGB图与第一深度图进行对齐处理,对齐处理后第一RGB图中的所有像素点与第一深度图中的所有像素点一一对应。基于本申请提供的方法,将第一RGB图与第一深度图进行对齐处理后,由于对齐处理后第一RGB图中的所有像素点与第一深度图中的所有像素点一一对应,从而可以更高效地确定出第一RGB图中的2D点在第一深度图对应的3D点。
在一种可能的实现方式中,根据旋转矩阵和平移矩阵更新第一单应矩阵包括:根据旋转矩阵和平移矩阵对预设标定点对应的齐次变换矩阵进行变换得到变换后的齐次变换矩阵;根据变换后的齐次变换矩阵和预设标定点对应的预测点对应的齐次变换矩阵确定更新后的第一单应矩阵。更新后的第一单应矩阵涉及用户的头部姿态变化(旋转矩阵和平移矩阵可以反应用户的头部姿态变化),根据更新后的第一单应矩阵可以实时在线校准不同头部姿态下的眼动追踪结果(注视点位置),可以提高眼动追踪的准确率,从而可以提升用户眼动追踪过程中的使用体验。
第二方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备(如手机)上运行时,使得该电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请实施例提供了一种眼动追踪装置,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得所述装置实现上述第一方面及其任一种可能的设计方式所述的方法。所述装置可以为电子设备或服务器设备;或可以为电子设备或服务器设备中的一个组成部分,如芯片。
第六方面,本申请实施例提供了一种眼动追踪装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行上述第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面所述的芯片系统,第三方面所述的计算机可读存储介质,第四方面所述的计算机程序产品及第五方面、第六方面所述的装置所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
基于本申请实施例提供的方法,首先根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵,再根据旋转矩阵和平移矩阵更新第一单应矩阵,再根据更新后的第一单应矩阵校准用户的注视点位置,即可以根据用户头部姿态的变化,实时在线校准不同头部姿态下的眼动追踪结果(注视点位置),提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
附图说明
图1为现有技术的一种眼动追踪的示意图;
图2为本申请实施例提供的一种电子设备的硬件结构示意图;
图3为本申请实施例提供的一种电子设备的软件架构示意图;
图4为本申请实施例提供的一种方法流程示意图;
图5为本申请实施例提供的一种显示示意图;
图6为本申请实施例提供的又一种显示示意图;
图7为本申请实施例提供的又一种显示示意图;
图8为本申请实施例提供的又一种显示示意图;
图9为本申请实施例提供的一种眼动对焦的示意图;
图10为本申请实施例提供的一种基准头部姿态和用户当前的头部姿态的示意图;
图11为本申请实施例提供的一种预测结果示意图;
图12为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
齐次坐标:是将一个原本是n维(例如,2维向量)的向量用一个n+1维向量(例如,3维向量)来表示。例如,二维向量(x,y)的齐次坐标表示为(hx,hy,h)。其中,h可以取不同的值,即一个向量的齐次坐标是不唯一的,但无论h取任何值,始终表示同一个向量。例如,h为2时,二维向量(4,2)的齐次坐标可以表示为(8,4,2),h为1时,二维向量(4,2)的齐次坐标可以表示为(4,2,1)。但无论(8,4,2)还是(4,2,1)表示的都是二维向量(4,2)。由齐次坐标构成的矩阵可以称为齐次变化矩阵。
齐次坐标提供了用矩阵运算将二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。
单应矩阵:描述空间中同一平面上的三维点在两张图像中的对应关系。单应矩阵可以应用在图像矫正、图像配准拼接、视角转换以及计算两张图像的相机运动(旋转和平移)上。
ICP算法:该算法多用于三维空间内点云配准,不仅适用于平面场景,还适用于曲线和曲面等场景。当点云配准的结果未满足理想精度的要求,通过ICP算法,在不断地迭代中降低误差,从而实现理想的精度值。其中,点云配准过程的原理是,假设现在有两个待配准点云P和Q,在点云P中任意选择一点,记为pi,从点云Q中查找一个距离其欧氏距离最短的点,记为qi。pi和qi为对应点,得出变换矩阵,经过多次地迭代,最终获得最理想的变换矩阵,使两点云实现重合。
ICP算法的核心在于不断地迭代,通过点与点之间的配准来进行旋转和平移,其衡量标准基于最小二乘法,且点与点的距离要满足在一定的阈值范围内。
现有眼动追踪方案可以通过眼动仪获取双眼图像,然后使用眼部图像信息获取眼睛在计算机屏幕的注视点。然而,现有眼动追踪方案仅能对用户固定姿态下的注视点位置或注视方向进行预测,当用户姿态相对终端设备发生变化后,眼动追踪预测位置与用户实际注视点位置间有较大误差。
本申请实施例提供一种基于深度摄像头的眼动追踪方法和装置,针对眼动追踪过程中,用户的头部姿态变化对眼动追踪预测位置较为敏感的情况,能够实时校准用户在不同头部姿态下的眼动预测位置(即注视点位置),提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
图2为本申请实施例提供的一种电子设备100的结构示意图。
如图2所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。该显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),发光二极管(light-emitting diode,LED),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
摄像头193可以包括1~N个。例如电子设备可以包括2个前置摄像头和4个后置摄像头。其中,前置摄像头中可以包括RGB摄像头和深度摄像头(摄像头也可以称为相机)。
其中,深度摄像头又可以称为3D摄像头。顾名思义,通过深度摄像头可以检测出拍摄空间的景深距离。也即,深度摄像头是在传统的XY轴的成像基础上,加入来自Z轴方向的深度信息,最终生成3D的图像信息。
目前,深度摄像头有飞行时间(time of flight,TOF)、结构光(Structuredlight)、双目立体视觉(Binocular Stereo Vision)等几种摄像头。
其中,结构光摄像头的基本原理是,通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过一定的编码投影在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。
TOF摄像头是通过测量光飞行时间来计算距离。具体的,通过给目标物连续发射激光脉冲,然后用传感器接收从目标物反射的光线,通过探测光脉冲的飞行往返时间来得到确切的目标物距离。通常采用检测相位偏移办法来实现TOF功能。简单来说就是,发出一道经过处理的光,碰到物体以后会反射回来,捕捉来回的时间,因为已知光速和调制光的波长,所以能快速准确计算出到物体的距离。TOF摄像头可以包括TX和RX,TX可以用于发射光信号(红外光或激光脉冲),RX可以用于接收成像。TX例如可以为红外光发射器。RX例如可以为互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)或者电荷耦合器件(charge coupled device,CCD)图像感应器。
双目立体视觉摄像头是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
以下实施例中的方法均可以在具有上述硬件结构的电子设备100中实现。
上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,Android系统可以包括应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware abstraction layer,HAL)以及内核层。需要说明的是,本申请实施例以Android系统举例来说明,在其他操作系统中(例如鸿蒙系统,IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似也能实现本申请的方案。
其中,应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、锁屏应用、设置应用等应用程序。当然,应用程序层还可以包括其他应用程序包,例如支付应用,购物应用、银行应用、聊天应用或理财应用等,本申请不做限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,相机服务(Camera Service)和人脸识别服务等,本申请实施例对此不做任何限制。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),OpenGL ES,SGL等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。
SGL是2D绘图的绘图引擎。
安卓运行时(Android runtime)包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL层是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层硬件的实现细节。
HAL层中可以包括Wi-Fi HAL,音频(audio)HAL,相机HAL(Camera HAL)等。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
其中,摄像头驱动是Camera器件的驱动层,主要负责和硬件的交互。
硬件层包括显示器、摄像头、传感器等。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了便于理解,以下结合附图对本申请实施例提供的一种基于深度摄像头的眼动追踪方法进行具体介绍。
本申请实施例提供的基于深度摄像头的眼动追踪方法可以包括眼动标定过程和眼动追踪过程。在进行眼动追踪过程之前,可以先进行眼动标定过程,以便电子设备可以更加准确地进行眼动追踪。
下面对眼动标定过程进行说明,如图4所示,眼动标定过程可以包括步骤401和402。
401、开始眼动标定时,基于预设帧率采集用户注视真值(ground truth,GT)标定点时的RGB图及深度图,根据用户注视GT标定点的RGB及深度图确定该GT标定点对应的预测点。
在一种可能的设计中,响应于用户开启眼动标定功能的操作,手机可以在屏幕上显示多个GT标定点(即预设标定点)。GT标定点的数量例如可以是5个或9个等,本申请不做限定。手机可以提示用户依次注视每个GT标定点预设时长(例如,1s或2s或3s等),当用户注视GT标定点时,手机可以基于预设帧率采集用户注视每个GT标定点时的RGB图及深度图。例如,假设用户注视每个GT标定点3秒,手机以60帧/秒的帧率采集用户注视某个标定点时的RGB图及深度图,则3秒可以采集180帧RGB图和180帧深度图。同一时刻可以采集一帧RGB图和一帧深度图。
示例性的,用户可以通过设置应用开启眼动标定功能。如图5所示,用户可以在手机的桌面601上点击手机的设置APP的图标602。当手机检测到用户点击桌面601上的设置APP的图标602的操作后,可以启动设置APP,显示如图6中的(a)所示的图形用户界面(graphical user interface,GUI),该GUI可以称为设置界面603。设置界面603可以显示多个设置条目,例如连接与共享、移动网络、WLAN、蓝牙、个人热点、更多设置、熄屏与锁屏、显示、声音、壁纸和个性主题等条目。当然,该设置界面603还可以显示其他设置条目,本申请不做限定。如图6中的(a)所示,用户可以在设置界面603上点击更多设置控件604,当手机检测到用户在设置界面603上点击更多设置控件604的操作后,可以显示如图6中的(b)所示的GUI,该GUI可以称为更多设置界面605。更多设置界面605可以显示多个设置条目,例如,日期与时间、语言与输入法、边缘防误触、快捷手势、悬浮球、屏幕录制、单手模式、眼动追踪等条目。当手机检测到用户在显示界面605上点击眼动追踪的控件606的操作后,可以显示如图7所示的GUI,该GUI可以称为眼动追踪界面801。眼动追踪界面801可以包括眼动追踪对应的按钮802和关于眼动追踪功能的描述“开启眼动追踪后,手机可以获取您的眼动轨迹以实现图像对焦,读书翻页等功能;开启眼动追踪功能前需要先进行眼动标定”。眼动追踪界面801还可以包括开启眼动标定控件803,开启眼动追踪功能前需要先进行眼动标定,以便手机可以更加准确地进行眼动追踪。用户可以在眼动追踪界面801上点击开启眼动标定控件803,当手机检测到用户在眼动追踪界面801上点击开启眼动标定控件803的操作后,如图8中的(a)所示,手机可以依次在屏幕上显示5个GT标定点(包括GT标定点1、GT标定点2、GT标定点3、GT标定点4和GT标定点5)。或者,当手机检测到用户在眼动追踪界面801上点击开启眼动标定控件803的操作后,如图8中的(b)所示,手机可以依次在屏幕上显示9个GT标定点(包括GT标定点1、GT标定点2、GT标定点3、GT标定点4、GT标定点5、GT标定点6、GT标定点7、GT标定点8和GT标定点9)。可选的,手机可以提示用户依次注视每个GT标定点预设时长(例如,1s或2s或3s等),手机基于预设帧率采集用户注视每个GT标定点时的RGB图及深度图。
需要说明的是,上述眼动追踪和眼动标定功能在设置应用的页面的显示位置仅是示例性的。并且,上述眼动追踪和眼动标定功能的入口不限定为设置应用,也可以为其他应用,例如可以为系统管家应用或三方应用程序等,本申请不做限定。
在一种可能的设计中,在眼动标定过程中,可以进行睁闭眼检测,头部姿态检测,距离检测等处理,以便过滤不满足要求的RGB图。可以根据深度图确定用户的头部姿态和用户与手机的距离等信息。可以理解的是,手机在同一个时刻可以采集一帧RGB图和一帧深度图。若根据某一时刻(例如,时刻1)采集的深度图确定用户头部姿态不端正或用户距离手机超过预设阈值,可以过滤掉该时刻(时刻1)采集的RGB图。若某一时刻采集的RGB图中用户是闭眼状态,也可以过滤掉该RGB图。这样,后续根据过滤后的RGB图对用户的注视点位置进行预测时,预测结果可以更加准确。
手机可以根据用户注视每个GT标定点时的RGB图确定每个GT标定点对应的预测点。每个GT标定点可以对应一组预测点,一组预测点包括多个预测点。每个GT标定点对应的预测点是指根据用户注视该GT标定点时的RGB图确定的用户的注视点位置。
其中,每个GT标定点可以对应一个图像集合,该图像集合包括多张用户注视该GT标定点时的RGB图(即手机可以采集多张用户注视该GT标定点时的RGB图)。例如,假设用户注视一个GT标定点3秒,手机以60帧/秒的帧率采集用户注视该GT标定点时的RGB图,则3秒可以采集180帧RGB图。即一个GT标定点对应的图像集合中可以包括180帧RGB图。若该180帧RGB图中有30帧RGB图不满足要求,可以将这30帧RGB图过滤掉,保留其余150帧RGB图。即一个GT标定点对应的图像集合可以包括150帧RGB图。根据每帧RGB图可以得到一个GT标定点对应的一个预测点,根据150帧RGB图可以得到一个GT标定点对应的150个预测点。其中,每个预测点可以对应一个横坐标和纵坐标,该横坐标和纵坐标是手机的屏幕的位置坐标,单位为像素。
需要说明的是,可以在眼动标定过程中,选择用户注视某一GT标定点时的一帧深度图作为基准深度图,根据该基准深度图确定用户的基准头部姿态。用户的基准头部姿态用于后续在眼动追踪过程中判断用户的头部姿态是否发生变化。
示例性的,如图8中的(a)所示,可以选择用户注视GT标定点3的一帧深度图作为基准深度图,根据该基准深度图确定用户的基准头部姿态。或者,如图8中的(b)所示,可以选择用户注视GT标定点5的一帧深度图作为基准深度图,根据该基准深度图确定用户的基准头部姿态。
402、计算GT标定点和预测点之间的初始单应矩阵H。
可以根据GT标定点的齐次变换矩阵和GT标定点对应的预测点的齐次变换矩阵计算初始单应矩阵H,如公式(1)所示。
P1 =H*P2 公式(1)
其中,P1是GT标定点对应的齐次变换矩阵,该齐次变换矩阵是由GT标定点的齐次坐标构成的矩阵,P2是GT标定点的预测点对应的齐次变换矩阵,该齐次变换矩阵是由GT标定点的预测点的齐次坐标构成的矩阵,H是GT标定点和预测点之间的初始单应矩阵H(第一单应矩阵)。
可选的,可以在公式(1)中的H旁边添加比例系数s,可以使得单应矩阵定义到相应尺度比例。
假设GT标定点的数量为5个,分别为GT标定点1、GT标定点2、GT标定点3、GT标定点4、GT标定点5。每个GT标定点对应一个齐次坐标,GT标定点1、GT标定点2、GT标定点3、GT标定点4、GT标定点5分别对应的齐次坐标可以为(X1,Y1,1)、(X2,Y2,1)、(X3,Y3,1)、(X4,Y4,1)、(X5,Y5,1),则P1可以如公式(2)所示。假设每个GT标定点对应150个预测点,每个预测点对应的横坐标和纵坐标可以构成一个2维向量(两列一行或一列两行的向量)。为了方便计算,可以将该2维向量表示为齐次坐标。150个预测点可以对应150个齐次坐标。该150个齐次坐标可以构成P2,如公式(3)所示。
其中,P1和P2都是3*N矩阵,N是用户注视全部GT标定点时采集到的RGB图的数量。举例来说,若GT标定点的数量为5个,用户注视每个GT标定点时采集到的RGB图的数量为30,则N可以为150,P1和P2可以是3*150矩阵,H为3*3矩阵。
其中,P1的第1列-第N/5列的元素可以相同,都为GT标定点1对应的齐次坐标(X1,Y1,1);P1的第N/5+1列-第2N/5列的元素可以相同,都为GT标定点2对应的齐次坐标(X2,Y2,1);P1的第2N/5+1列-第3N/5列的元素可以相同,都为GT标定点3对应的齐次坐标(X3,Y3,1);P1的第3N/5+1列-第4N/5列的元素可以相同,都为GT标定点4对应的齐次坐标(X4,Y4,1);P1的第4N/5+1列-第5N/5列的元素可以相同,都为GT标定点5对应的齐次坐标(X5,Y5,1)。
其中,P2的每一列是一个预测点对应的齐次坐标。P2的第1列-第N/5列是GT标定点1对应的N/5个预测点分别对应的齐次坐标。P2的第N/5+1列-第2N/5列是GT标定点2对应的N/5个预测点分别对应的齐次坐标;P2的第2N/5+1列-第3N/5列是GT标定点3对应的N/5个预测点分别对应的齐次坐标;P2的第3N/5+1列-第4N/5列是GT标定点4对应的N/5个预测点分别对应的齐次坐标;P2的第4N/5+1列-第5N/5列是GT标定点5对应的N/5个预测点分别对应的齐次坐标。
下面对眼动追踪过程进行说明,如图4所示,眼动追踪过程可以包括步骤403-406。
403、在实时眼动跟踪过程中,实时采集用户注视手机屏幕的RGB图和深度图。
在眼动标定完成后,可以进行眼动追踪。例如可以根据眼动追踪功能进行图像对焦,读书翻页,人机交互等。
示例性的,根据眼动追踪功能进行图像对焦,即可以通过拍摄者的眼睛(眼球)来对焦,通过拍摄者的眼睛的转动可以控制对焦区域的变化。如图9所示,在用户打开相机应用准备拍照时,无需手动对焦,手机可以检测拍摄者的眼睛在当前取景画面中的注视点位置,根据该注视点位置的坐标生成对焦窗1101,再根据对焦窗1101中的像素的相位差信息驱动马达完成对焦。
本申请实施例中,在实时眼动跟踪过程中,手机可以基于预设帧率(例如,30fps、60fps等)实时采集用户注视手机屏幕的RGB图和深度图,每一时刻采集一帧RGB图和一帧深度图。下面以手机在第一时刻采集到第一RGB图和第一深度图为例进行说明。
404、根据第一RGB图和第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵。
首先,可以根据深度学习人脸关键点提取模型得到第一RGB图的人脸关键点(landmark),第一RGB图的人脸关键点组成用户的头部区域(或面部区域)的2D点对。
其中,深度学习人脸关键点提取模型可以对第一RGB图进行人脸关键点检测。例如,人脸关键点检测可以是检测人脸的68个人脸关键点。其中,眉毛可以包括10个关键点(两条眉毛各有5个关键点),眼睛可以包括12个关键点(两个眼睛各有6个关键点),鼻子可以包括9个关键点,嘴巴可以包括20个关键点,脸型(人脸轮廓)可以包括17个关键点。或者,人脸关键点检测可以是检测人脸的五个关键点(包括鼻尖、左眼的左眼角、右眼的右眼角、左嘴角以及右嘴角)。当然,人脸关键点还可以是其他数量,例如100个,150个,200个等等,本申请不做限定。
可选的,在进行人脸关键点检测之前,还可以对第一RGB图进行图像切割处理和/或图像旋转处理。在对第一RGB图进行图像切割时,可以以第一RGB图中人脸的鼻尖为中心,将第一RGB图切割为预设尺寸。例如,可以将第一RGB图的切割为256*256像素的尺寸。若第一RGB图中的人脸位置是偏转的或歪斜的(例如,人物歪着头),可以将第一RGB图旋转相应角度,摆正人脸位置(例如,使人脸的两眼之间的连线与水平线的角度小于预设阈值)。图像旋转处理的算法例如可以为仿射变换函数(cv::warpAffine)。
然后,可以根据用户的头部区域的2D点在第一深度图确定用户的头部区域的3D点(即确定户的头部区域的2D点在第一深度图对应的用户的头部区域的3D点)。再根据用户的头部区域的3D点和基准头部姿态对应的3D点确定用户的头部姿态的旋转矩阵和平移矩阵。其中,基准头部姿态对应的3D点是根据基准深度图得到的。
示例性的,基准深度图可以如图10中的(a)所示,基准深度图中用户的头部姿态是基准头部姿态;第一深度图可以如图10中的(b)所示,通过对基准深度图和第一深度图中的人脸位置和人脸关键点进行检测,可以得到第一深度图中用户的头部区域的3D点和基准深度图中用户的头部区域的3D点(基准头部姿态对应的3D点),通过对用户的头部区域的3D点和基准头部姿态对应的3D点进行对比,可以确定出第一深度图中用户的头部姿态相对于基准深度图中用户的头部姿态发生变化。
可选的,根据用户的头部区域的2D点在第一深度图确定用户的头部区域的3D点之前,可以将第一RGB图与第一深度图像对齐,第一RGB图像与第一深度图像之后,第一RGB图中的所有像素点与第一深度图中的所有像素点是对应的关系。然后,可以根据第一RGB图中用户的头部区域的2D点确定第一深度图中用户的头部区域的3D点,3D点对相比2D点对多了深度信息(距离信息)。
在一种可能的设计中,可以基于ICP算法对3D点对(根据第一深度图得到的用户的头部区域的3D点和基准头部姿态对应的3D点)进行计算得到头部姿态相对变化矩阵ΔT,头部姿态相对变化矩阵ΔT包括头部姿态的旋转矩阵和平移矩阵,如公式(4)所示:
ΔT = [R T] 公式(4)
其中,R表示旋转矩阵(旋转变换矩阵),R可以是一个三维矩阵,包括用户的头部的俯仰角(pitch),滚动角(roll)和偏航角(yaw);T表示平移矩阵(平移变换矩阵),T可以是一个三维矩阵,包括用户的头部沿坐标系的x、y、z轴平移的距离。
本申请提供的方法,可以基于第一RGB图的人脸关键点(2D点)和第一深度图中的3D点,估计得到用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵(旋转矩阵和平移矩阵可以表示用户当前的头部姿态和基准头部姿态之间头部的相对位姿),避免采用图像间特征匹配确定位姿导致耗时高的问题,提升了位姿计算(即计算旋转矩阵和平移矩阵)的实时性及准确性。
405、根据用户头部姿态的旋转矩阵和平移矩阵更新初始单应矩阵H得到单应矩阵H′。
若用户当前的头部姿态相对于基准头部姿态发生变化,例如若用户当前的头部姿态相比基准头部姿态的俯仰角,滚动角或偏航角中的至少一个的变化幅度大于预设值(例如,5度),认为用户的头部姿态相对于基准头部姿态发生变化。可以基于根据用户头部姿态的旋转矩阵和平移矩阵更新初始单应矩阵H得到单应矩阵H′(即更新后的第一单应矩阵)。
示例性的,如公式(5)所示,可以根据头部姿态相对变化矩阵ΔT(即头部姿态的旋转矩阵R和平移矩阵T)对GT标定点对应的齐次变换矩阵P1进行变换得到变换后的齐次变换矩阵P1′。如公式(6)所示,可以根据变换后的齐次变换矩阵P1′和GT标定点的预测点对应的齐次变换矩阵P2计算单应矩阵H′。
P1′ = ΔT*P1 公式(5)
P1′ = H′*P2 公式(6)
406、根据第一RGB图确定用户的注视点位置,再根据单应矩阵H′校准用户的注视点位置。
在实时眼动跟踪过程中,可以先根据手机采集的RGB图(例如,第一RGB图)确定用户的眼睛在手机屏幕的焦点(眼睛的注视点位置),再根据单应矩阵H′得到校准后的眼睛的注视点位置,如公式(7)所示。
P3= H′*P4 公式(7)
其中,P4是根据手机采集的RGB图(例如,第一RGB图)预测得到的注视点位置,该注视点位置可以用齐次坐标表示,P3是根据H′对P4校准后的眼睛的注视点位置。
根据前文的举例,H′可以是一个3*3矩阵,例如P4是注视点位置对应的齐次坐标,可以是一个3*1矩阵,例如/>如公式(8)所示,H′*P4可以是一个3*1列的矩阵,即P3是一个3*1列的矩阵。由于P4是通过齐次坐标表示的,可以将齐次坐标重新转换为二维坐标。如公式(9)所示,可以对H′*P4对应的3*1列的矩阵中的第一行和第二行的元素除以第三行的元素得到2*1列的矩阵W,该2*1列的矩阵W的两个元素是校准后的注视点位置对应的二维坐标。/>
上文的步骤404-406是以手机在第一时刻采集到的第一RGB图和第一深度图为例对本申请提供的眼动追踪方法进行说明的。可以理解的是,手机在其他时刻采集到RGB图和深度图也是类似的处理方式,即先根据同一时刻采集到的深度图(例如,第二时刻采集到的深度图)确定用户的头部姿态,若用户的头部姿态相对于基准头部姿态发生变化,计算用户的头部姿态的旋转矩阵和平移矩阵,根据旋转矩阵和平移矩阵校准初始单应矩阵(即单应矩阵H);根据同一时刻采集到的RGB图(第二时刻采集到的RGB图)预测用户的注视点位置,再根据校准后的单应矩阵(即单应矩阵H′)校准用户的注视点位置。
如图11所示,假设GT标定点的数量为5个,GT标定点的位置坐标如图11所示,图11中的坐标系的横坐标和纵坐标的单位可以为像素。在眼动追踪过程中,如果用户的头部姿态相比眼动标定时的头部姿态发生变化,若不考虑该头部姿态变化,根据原始单应矩阵(即单应矩阵H)确定预测点的位置,则确定出的预测点的位置(方块代表的预测点的位置)与GT标定点的位置相差很大;而基于本申请提供的方法,考虑用户的头部姿态变化,根据校准后的单应矩阵(即单应矩阵H′)确定预测点的位置,这样确定出的预测点的位置(三角代表的预测点的位置)与GT标定点的位置十分接近。本申请提供的方法能够实时校准用户在不同头部姿态下的眼动预测位置,提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
基于本申请实施例提供的方法,可以根据用户头部姿态的变化,实时在线校准不同头部姿态下的眼动追踪结果(注视点位置),提高眼动追踪的准确率,从而提升用户眼动追踪过程中的使用体验。
本申请一些实施例提供了一种电子设备,该电子设备可以包括:触摸屏、存储器和一个或多个处理器。该触摸屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图2所示的电子设备100的结构。
本申请实施例还提供一种芯片系统(例如,片上系统(system on a chip,SoC)),如图12所示,该芯片系统包括至少一个处理器1201和至少一个接口电路1202。处理器1201和接口电路1202可通过线路互联。例如,接口电路1202可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1202可用于向其它装置(例如处理器1201或者电子设备的触摸屏)发送信号。示例性的,接口电路1202可读取存储器中存储的指令,并将该指令发送给处理器1201。当所述指令被处理器1201执行时,可使得电子设备执行上述实施例中手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种基于深度摄像头的眼动追踪方法,其特征在于,应用于电子设备,所述电子设备包括红绿蓝RGB摄像头和深度摄像头,所述方法包括:
在第一时刻控制所述RGB摄像头采集第一RGB图,控制所述深度摄像头采集第一深度图;
根据所述第一RGB图和所述第一深度图获取用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵;
根据所述旋转矩阵和所述平移矩阵更新第一单应矩阵,所述第一单应矩阵是根据预设标定点对应的齐次变换矩阵与所述预设标定点的预测点对应的齐次变换矩阵确定的;
根据所述第一RGB图确定用户的注视点位置,再根据更新后的所述第一单应矩阵校准所述用户的注视点位置。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
控制所述RGB摄像头和所述深度摄像头基于预设帧率采集用户注视所述预设标定点的RGB图和深度图;
根据所述用户注视所述预设标定点的RGB图和深度图确定所述预设标定点对应的预测点;
确定所述预设标定点对应的齐次变换矩阵与所述预测点对应的齐次变换矩阵之间的所述第一单应矩阵。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一RGB图和所述第一深度图获取所述用户当前的头部姿态相对于基准头部姿态的旋转矩阵和平移矩阵包括:
检测所述第一RGB图的人脸关键点,得到用户的头部区域的2D点;
确定所述2D点在所述第一深度图对应的用户的头部区域的3D点;
根据所述用户的头部区域的3D点和所述基准头部姿态对应的3D点确定所述旋转矩阵和所述平移矩阵。
4.根据权利要求3所述的方法,其特征在于,所述根据所述用户的头部区域的3D点和所述基准头部姿态对应的3D点确定所述旋转矩阵和所述平移矩阵包括:
采用迭代最近点ICP算法对所述用户的头部区域的3D点和所述基准头部姿态对应的3D点进行配准,得到所述旋转矩阵和所述平移矩阵。
5.根据权利要求4所述的方法,其特征在于,所述确定所述2D点在所述第一深度图对应的用户的头部区域的3D点之前,所述方法还包括:
将所述第一RGB图与所述第一深度图进行对齐处理,所述对齐处理后所述第一RGB图中的所有像素点与所述第一深度图中的所有像素点一一对应。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述旋转矩阵和所述平移矩阵更新第一单应矩阵包括:
根据所述旋转矩阵和所述平移矩阵对所述预设标定点对应的齐次变换矩阵进行变换得到变换后的齐次变换矩阵;
根据所述变换后的齐次变换矩阵和所述预设标定点对应的预测点对应的齐次变换矩阵确定更新后的所述第一单应矩阵。
7.一种电子设备,其特征在于,所述电子设备包括:无线通信模块、存储器和一个或多个处理器;所述无线通信模块、所述存储器与所述处理器耦合;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-6中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,包括计算机指令;
当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6中任一项所述的方法。
9.一种芯片系统,其特征在于,所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;
所述芯片系统应用于包括通信模块和存储器的电子设备;所述接口电路用于从所述存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-6中任一项所述的方法。
CN202211737811.0A 2022-12-30 2022-12-30 一种基于深度摄像头的眼动追踪方法和装置 Active CN116704572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211737811.0A CN116704572B (zh) 2022-12-30 2022-12-30 一种基于深度摄像头的眼动追踪方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211737811.0A CN116704572B (zh) 2022-12-30 2022-12-30 一种基于深度摄像头的眼动追踪方法和装置

Publications (2)

Publication Number Publication Date
CN116704572A CN116704572A (zh) 2023-09-05
CN116704572B true CN116704572B (zh) 2024-05-28

Family

ID=87834585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211737811.0A Active CN116704572B (zh) 2022-12-30 2022-12-30 一种基于深度摄像头的眼动追踪方法和装置

Country Status (1)

Country Link
CN (1) CN116704572B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045176A (ko) * 2018-10-22 2020-05-04 경희대학교 산학협력단 깊이 카메라와 비행체를 이용한 강건한 디스플레이 시스템 및 방법
CN111739078A (zh) * 2020-06-15 2020-10-02 大连理工大学 一种基于上下文注意力机制的单目无监督深度估计方法
CN112927264A (zh) * 2021-02-25 2021-06-08 华南理工大学 一种无人机跟踪拍摄系统及其rgbd跟踪方法
CN113128417A (zh) * 2021-04-23 2021-07-16 南开大学 一种基于头部姿态的双区域眼动跟踪方法
CN113544626A (zh) * 2019-03-15 2021-10-22 索尼集团公司 信息处理装置、信息处理方法和计算机可读记录介质
CN113597616A (zh) * 2021-06-11 2021-11-02 华为技术有限公司 瞳孔位置的确定方法、装置及系统
CN114365482A (zh) * 2019-03-25 2022-04-15 华为技术有限公司 一种基于Dual Camera+TOF的大光圈虚化方法
CN114387679A (zh) * 2022-01-14 2022-04-22 上海大学 基于递归卷积神经网络实现视线估计与注意力分析的系统及其方法
CN114494347A (zh) * 2022-01-21 2022-05-13 北京科技大学 一种单摄像头多模式视线追踪方法和装置、电子设备
CN115018989A (zh) * 2022-06-21 2022-09-06 中国科学技术大学 基于rgb-d序列的三维动态重建方法、训练装置及电子设备
US11461962B1 (en) * 2021-06-28 2022-10-04 Meta Platforms Technologies, Llc Holographic calling for artificial reality
CN115359093A (zh) * 2022-08-22 2022-11-18 天津理工大学 一种基于单目的注视点估计视线追踪方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102136241B1 (ko) * 2015-09-29 2020-07-22 바이너리브이알, 인크. 표정 검출 성능을 갖는 머리-장착형 디스플레이

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045176A (ko) * 2018-10-22 2020-05-04 경희대학교 산학협력단 깊이 카메라와 비행체를 이용한 강건한 디스플레이 시스템 및 방법
CN113544626A (zh) * 2019-03-15 2021-10-22 索尼集团公司 信息处理装置、信息处理方法和计算机可读记录介质
CN114365482A (zh) * 2019-03-25 2022-04-15 华为技术有限公司 一种基于Dual Camera+TOF的大光圈虚化方法
CN111739078A (zh) * 2020-06-15 2020-10-02 大连理工大学 一种基于上下文注意力机制的单目无监督深度估计方法
CN112927264A (zh) * 2021-02-25 2021-06-08 华南理工大学 一种无人机跟踪拍摄系统及其rgbd跟踪方法
CN113128417A (zh) * 2021-04-23 2021-07-16 南开大学 一种基于头部姿态的双区域眼动跟踪方法
CN113597616A (zh) * 2021-06-11 2021-11-02 华为技术有限公司 瞳孔位置的确定方法、装置及系统
US11461962B1 (en) * 2021-06-28 2022-10-04 Meta Platforms Technologies, Llc Holographic calling for artificial reality
CN114387679A (zh) * 2022-01-14 2022-04-22 上海大学 基于递归卷积神经网络实现视线估计与注意力分析的系统及其方法
CN114494347A (zh) * 2022-01-21 2022-05-13 北京科技大学 一种单摄像头多模式视线追踪方法和装置、电子设备
CN115018989A (zh) * 2022-06-21 2022-09-06 中国科学技术大学 基于rgb-d序列的三维动态重建方法、训练装置及电子设备
CN115359093A (zh) * 2022-08-22 2022-11-18 天津理工大学 一种基于单目的注视点估计视线追踪方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Gaze Estimation in the 3D Space Using RGB-D Sensors;Kenneth A. Funes-Mora等;《International Journal of Computer Vision》;194–216 *
基于三维眼球模型和改进Itracker的视线估计方法研究;林家宁;《中国优秀硕士学位论文全文数据库信息科技辑》;20200215(第02期);I138-1310 *
眼动跟踪研究进展与展望;苟超等;《自动化学报》;第48卷(第5期);1173-1192 *

Also Published As

Publication number Publication date
CN116704572A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN110456938B (zh) 一种曲面屏的防误触方法及电子设备
WO2020029306A1 (zh) 一种图像拍摄方法及电子设备
CN110244840A (zh) 图像处理方法、相关设备及计算机存储介质
US20220262035A1 (en) Method, apparatus, and system for determining pose
CN109903260B (zh) 图像处理方法及图像处理装置
WO2021180089A1 (zh) 界面切换方法、装置和电子设备
CN111768352B (zh) 图像处理方法及装置
US20230005277A1 (en) Pose determining method and related device
CN114119758A (zh) 获取车辆位姿的方法、电子设备和计算机可读存储介质
WO2022206494A1 (zh) 目标跟踪方法及其装置
EP4361954A1 (en) Object reconstruction method and related device
CN113741681A (zh) 一种图像校正方法与电子设备
US20230368417A1 (en) Pose determining method and related device
CN114726950A (zh) 一种摄像头模组的开启方法和装置
CN115150542B (zh) 一种视频防抖方法及相关设备
CN114827442B (zh) 生成图像的方法和电子设备
WO2023216957A1 (zh) 一种目标定位方法、系统和电子设备
CN116704572B (zh) 一种基于深度摄像头的眼动追踪方法和装置
CN114812381A (zh) 电子设备的定位方法及电子设备
EP4310725A1 (en) Device control method and electronic device
CN117130471B (zh) 人机交互方法、电子设备及系统
CN117135444B (zh) 一种基于强化学习的选帧决策方法及装置
CN117130472B (zh) 虚拟空间操作指引显示方法、移动设备及系统
CN116095225B (zh) 终端设备的图像处理方法及装置
CN117479008B (zh) 一种视频处理方法、电子设备及芯片系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant