CN114724200A - 人脸刚体模型及注视点检测的方法、装置及存储介质 - Google Patents
人脸刚体模型及注视点检测的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114724200A CN114724200A CN202011499370.6A CN202011499370A CN114724200A CN 114724200 A CN114724200 A CN 114724200A CN 202011499370 A CN202011499370 A CN 202011499370A CN 114724200 A CN114724200 A CN 114724200A
- Authority
- CN
- China
- Prior art keywords
- face
- current
- center
- eye
- left eye
- 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.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了人脸刚体模型及注视点检测的方法、装置及存储介质,该人脸刚体模型的生成方法包括:获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从第一可见光人脸图像中获取当前用户人脸的预设数量的特征点;基于预设数量的特征点确定当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;分别建立左眼球中心三维坐标、右眼眼球中心三维坐标到人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得当前用户的人脸刚体模型。
Description
技术领域
本发明涉及机器视觉领域,尤其是涉及人脸刚体模型及注视点检测的方法、装置及存储介质。
背景技术
目前,空间视线追踪***多采用多项式模型映射的方法,一般采用9点标定方法,即通过人眼依次注视屏幕(相当于一个二维平面)上的9个标定点,从而得到瞳孔到屏幕之间的坐标映模型,利用该模型计算屏幕上的注视点坐标。
尽管该9点标定方法在人脸保持静止的情况下具有较高的精度,但是当人脸发生移动或者旋转后,由于人脸位姿变化后,历史9点标定得到的多项式模型不再适用于当前人脸位姿下的视线计算,使得注视点计算精度出现大幅下降。
发明内容
本发明提供人脸刚体模型及注视点检测的方法、装置及存储介质,用以解决现有技术中存在的上述技术问题。
第一方面,为解决上述技术问题,本发明实施例提供的人脸刚体模型生成的方法的技术方案如下:
获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从所述第一可见光人脸图像中获取所述当前用户人脸的预设数量的特征点;
基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;
分别建立所述左眼球中心三维坐标、所述右眼眼球中心三维坐标到所述人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得所述当前用户的人脸刚体模型。
一种可能的实施方式,获取图像传感器正向拍摄当前用户的第一可见光人脸图像,包括:
在所述显示屏幕中最靠近拍摄设备的位置显示第一注视区域;
持续拍摄所述当前用户注视所述第一注视区域时的第二可见光人脸图像,直至确定正向拍摄到所述当前用户的人脸图像;
每拍摄一次,根据所述第二可见光人脸图像确定所述当前用户的人脸朝向与所述显示屏幕的第二交点,以及第二人脸位姿;其中,所述第二人脸位姿用于表示所述当前用户人脸的姿态角度;
判断所述第二交点是否在所述第一注视区域内,且所述第二人脸位姿是否在设定的误差范围内;
若所述第二交点在所述第一注视区域内,且第二人脸位姿在设定的误差范围内,确定正向拍摄到所述当前用户的人脸图像,并将对应的第二可见光人脸图像作为所述第一可见光人脸图像。
一种可能的实施方式,判断所述第二人脸位姿是否在设定的误差范围内,包括:
将所述第二人脸位姿的误差值抽象为以所述第一注视区域的中心为起点的线段,将所述第一注视区域的边界作为所述误差范围的界限值;
判断所述线段是否超出所述第一注视区域;
若所述线段超出所述第一注视区域,则确定所述第二人脸位姿不在所述误差范围内;
若所述线段未超出所述第一注视区域,则确定所述第二人脸位姿在所述误差范围内。
一种可能的实施方式,基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标,包括:
将所述预设数量的特征点对应的像素坐标转换为世界坐标下的三维坐标;
从所述预设数量的特征点中确定出左眼区域特征点和右眼区域特征点;
确定所述左眼区域特征点和所述右眼区域特征点的中心点,并将所述左眼区域特征点的中心点作为左眼中心三维坐标,将所述右眼区域特征点的中心点作为右眼中心三维坐标;
根据预设眼球半径及所述左眼中心三维坐标和所述右眼中心三维坐标,确定左眼眼球中心三维坐标和右眼眼球中心三维;
根据所述预设数量的特征点对应的三维坐标,确定所述人脸中心三维坐标。
一种可能的实施方式,获得所述当前用户的人脸刚体模型后,还包括:
在显示屏幕的中心显示第二注视区域,并获取所述当前用户注视所述第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像;
基于所述第三可见光人脸图像确定所述当前用户的第三人脸位姿,并检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标;其中,所述第三人脸位姿用于表示所述当前用户人脸的姿态角度;
通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点;
判断所述当前注视点是否在所述第二注视区域内;
若不在所述第二注视区域内,将所述当前注视点移动到所述第二注视区域内,根据移动的距离对所述人脸刚体模型中的所述左眼向量和右眼向量进行微调,获得校正后的人脸刚体模型。
一种可能的实施方式,检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标,包括:
将所述第三红外图像转换为与所述第三可见光图像同坐标系下的第四红外图像;
从所述第四红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标;
将所述左眼瞳孔中心像素坐标和所述右眼瞳孔中心像素坐标,分别转换为世界坐标系下的左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
一种可能的实施方式,通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点,包括:
将所述人脸刚体模型中左眼向量和右眼向量,按所述第三人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标;
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线,将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼实线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
第二方面,本发明实施例提供了一种注视点检测的方法,包括:
获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从所述第四可见光人脸图像中获取所述当前用户人脸的预设数量的特征点,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标;
用基于PnP的位姿测量方法对所述预设数量的特征点进行计算,获得所述当前用户的当前人脸位姿;
基于所述当前人脸位姿更新如第一方面所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将所述当前左眼瞳孔中心像素坐标和所述当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标;
根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点。
一种可能的实施方式,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标,包括:
将所述第四红外图像转换为与所述第四可见光图像同坐标系下的第五红外图像;
从所述第五红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳中心孔像素坐标。
一种可能的实施方式,基于所述当前人脸位姿更新如第一方面所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维,包括:
将所述人脸刚体模型中左眼向量和右眼向量,按所述当前人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中,获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
一种可能的实施方式,根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点,包括:
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线;
将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼视线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
第三方面,本发明实施例提供了一种人脸刚体模型生成的装置,包括:
获取模块,用于获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从所述第一可见光人脸图像中获取所述当前用户人脸的预设数量的特征点;
确定模块,用于基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;
获得模块,用于分别建立所述左眼球中心三维坐标、所述右眼眼球中心三维坐标到所述人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得所述当前用户的人脸刚体模型。
一种可能的实施方式,所述获取模块还用于:
在所述显示屏幕中最靠近拍摄设备的位置显示第一注视区域;
持续拍摄所述当前用户注视所述第一注视区域时的第二可见光人脸图像,直至确定正向拍摄到所述当前用户的人脸图像;
每拍摄一次,根据所述第二可见光人脸图像确定所述当前用户的人脸朝向与所述显示屏幕的第二交点,以及第二人脸位姿;其中,所述第二人脸位姿用于表示所述当前用户人脸的姿态角度;
判断所述第二交点是否在所述第一注视区域内,且所述第二人脸位姿是否在设定的误差范围内;
若所述第二交点在所述第一注视区域内,且第二人脸位姿在设定的误差范围内,确定正向拍摄到所述当前用户的人脸图像,并将对应的第二可见光人脸图像作为所述第一可见光人脸图像。
一种可能的实施方式,所述获取模块还用于:
将所述第二人脸位姿的误差值抽象为以所述第一注视区域的中心为起点的线段,将所述第一注视区域的边界作为所述误差范围的界限值;
判断所述线段是否超出所述第一注视区域;
若所述线段超出所述第一注视区域,则确定所述第二人脸位姿不在所述误差范围内;
若所述线段未超出所述第一注视区域,则确定所述第二人脸位姿在所述误差范围内。
一种可能的实施方式,所述确定模块还用于:
将所述预设数量的特征点对应的像素坐标转换为世界坐标下的三维坐标;
从所述预设数量的特征点中确定出左眼区域特征点和右眼区域特征点;
确定所述左眼区域特征点和所述右眼区域特征点的中心点,并将所述左眼区域特征点的中心点作为左眼中心三维坐标,将所述右眼区域特征点的中心点作为右眼中心三维坐标;
根据预设眼球半径及所述左眼中心三维坐标和所述右眼中心三维坐标,确定左眼眼球中心三维坐标和右眼眼球中心三维;
根据所述预设数量的特征点对应的三维坐标,确定所述人脸中心三维坐标。
一种可能的实施方式,获得所述当前用户的人脸刚体模型后,所述获得模块还用于:
在显示屏幕的中心显示第二注视区域,并获取所述当前用户注视所述第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像;
基于所述第三可见光人脸图像确定所述当前用户的第三人脸位姿,并检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标;其中,所述第三人脸位姿用于表示所述当前用户人脸的姿态角度;
通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点;
判断所述当前注视点是否在所述第二注视区域内;
若不在所述第二注视区域内,将所述当前注视点移动到所述第二注视区域内,根据移动的距离对所述人脸刚体模型中的所述左眼向量和右眼向量进行微调,获得校正后的人脸刚体模型。
一种可能的实施方式,所述获得模块还用于:
将所述第三红外图像转换为与所述第三可见光图像同坐标系下的第四红外图像;
从所述第四红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标;
将所述左眼瞳孔中心像素坐标和所述右眼瞳孔中心像素坐标,分别转换为世界坐标系下的左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
一种可能的实施方式,所述获得模块还用于:
将所述人脸刚体模型中左眼向量和右眼向量,按所述第三人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标;
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线,将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼实线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
第四方面,本发明实施例提供了一种注视点检测的装置,包括:
获取模块,用于获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从所述第四可见光人脸图像中获取所述当前用户人脸的预设数量的特征点,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标;
计算模块,用于用基于PnP的位姿测量方法对所述预设数量的特征点进行计算,获得所述当前用户的当前人脸位姿;
获得模块,用于基于所述当前人脸位姿更新如第一方面所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将所述当前左眼瞳孔中心像素坐标和所述当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标;
确定模块,用于根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点。
一种可能的实施方式,所述获取模块还用于:
将所述第四红外图像转换为与所述第四可见光图像同坐标系下的第五红外图像;
从所述第五红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳中心孔像素坐标。
一种可能的实施方式,所述获得模块还用于:
将所述人脸刚体模型中左眼向量和右眼向量,按所述当前人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中,获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
一种可能的实施方式,所述确定模块具体用于:
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线;
将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼视线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
第五方面,本发明实施例还提供一种注视点检测的装置,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面或第二方面所述的方法。
第六方面,本发明实施例还提供一种可读存储介质,包括:
存储器,
所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上述第一方面或第二方面所述的方法。
附图说明
图1为本发明实施例提供的一种人脸刚体模型生成方法的流程图;
图2为本发明实施例提供的一种当前用户注视第一注视区域的示意图;
图3为本发明实施例提供的显示屏幕位于第一注视区域的局部示意图;
图4为本发明实施例提供的人脸朝向与显示屏幕的交点不在第一注视区域内的示意图;
图5为本发明实施例提供的人脸朝向与显示屏幕的交点在第一注视区域内的示意图;
图6为本发明实施例提供的当前用户与显示屏幕位置关系的示意图;
图7为本发明实施例提供的建立世界坐标系的示意图;
图8为本发明实施例提供的计算人脸朝向与显示屏幕交点的示意图;
图9为本发明实施例提供的校正人脸刚体模型的示意图;
图10为本发明实施例提供的一种注视点检测方法的流程图;
图11为本发明实施例提供的一种人脸刚体模型生成装置的结构示意图;
图12为本发明实施例提供的一种注视点检测装置的结构示意图。
具体实施方式
本发明实施列提供人脸刚体模型及注视点检测的方法、装置及存储介质,用以解决现有技术中存在的上述技术问题。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
请参考图1,本发明实施例提供一种人脸刚体模型生成的方法,该方法的处理过程如下。
步骤101:获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从第一可见光人脸图像中获取当前用户人脸的预设数量的特征点。
在本发明提供的实施例中,图像传感器包括可见光图像传感器和红外图像传感器,其中可见光图像传感器主要用于采集RGB人脸图像,红外图像传感器主要用于采集瞳孔图像,该可见光传感器和红外图像传感器设置在显示屏幕的一侧,例如可以为显示屏幕的上侧或下侧、左侧或右侧,优选的可以设置在一侧的中心位置,如设置在下侧的中心位置。
在对当前用户进行拍摄之前,还需要对图像传感器的进行标定,即对可见光图像传感器和红外图像传感器进行标定,以获得每个图像传感器的内部参数矩阵。标定方法如下:首先,根据张氏标定法,将标定板放置于图像传感器和红外图像传感器前方0.3m~1m的范围内,确保每个图像传感器都可以拍摄到清晰的标定板图像;然后,旋转或扭转标定板,每次旋转或扭转后,两个图像传感器都采集一次图像,以不同角度拍摄20次后,每个图像传感器都获得20张标定图像;最后,每个图像传感器依据各自的20张标定图像,通过程序计算出各自的内部参数矩阵;上述标定通常只需进行一次,在获得相机的内部参数矩阵后,便不需再重复标定。
完成对图像传感器的标定后,还需要对图像传感器的参数进行设置,图像传感器的参数包括分辨率、视场角(Field Of View,FOV)、帧速等。例如可见光图像传感器可以将其分辨率设置为640×480、FOV设置为60°、帧速设置为60fps,红外图像传感器可以将其分辨率设置为2560*1920、FOV设置为50°、帧速设置为30fps。
完成上述对图像传感器的标定以及参数设置后便可进行图像拍摄。
获取图像传感器正向拍摄当前用户的第一可见光人脸图像,可以采用下列方式实现:
在显示屏幕中最靠近拍摄设备的位置显示第一注视区域;持续拍摄当前用户注视第一注视区域时的第二可见光人脸图像,直至确定正向拍摄到当前用户的人脸图像;每拍摄一次,根据第二可见光人脸图像确定当前用户的人脸朝向与显示屏幕的第二交点,以及第二人脸位姿;其中,第二人脸位姿用于表示当前用户人脸的姿态角度;判断第二交点是否在第一注视区域内,且第二人脸位姿是否在设定的误差范围内;若第二交点在第一注视区域内,且第二人脸位姿在设定的误差范围内,确定正向拍摄到当前用户的人脸图像,并将对应的第二可见光人脸图像作为第一可见光人脸图像。
其中,判断第二人脸位姿是否在设定的误差范围内,可以通过下列方式实现:
将第二人脸位姿的误差值抽象为以第一注视区域的中心为起点的线段,将第一注视区域的边界作为误差范围的界限值;判断线段是否超出第一注视区域;若线段超出第一注视区域,则确定第二人脸位姿不在误差范围内;若线段未超出第一注视区域,则确定第二人脸位姿在误差范围内。
请参见图2和图3,图2为本发明实施例提供的一种当前用户注视第一注视区域的示意图,图3为本发明实施例提供的显示屏幕位于第一注视区域的局部示意图。
在图2中用户注视的方向以虚线示意,椭圆虚线内的区域为第一注视区域,从该第一注视区域的中心可以向外延伸出3条线段,这3条线段分别用于表示人脸位姿对应的俯仰角(pitch)、偏航角(yaw)、横滚角(roll)的测量误差,第一注视区域的半径用于表示这些测量误差对应的设定的误差范围的最大值,例如俯仰角的误差每增加一个单位值,相应的线段增加一个像素的长度,其它两个线段类似。如图3所示以第一注视区域的中心为起点向纵向延伸的线段用于表示人脸位姿对应的俯仰角(pitch),以第一注视区域的中心为起点向横向延伸的线段用于表示人脸位姿对应的偏航角(yaw),以第一注视区域的中心为起点与横向称45°角向延伸的线段用于表示人脸位姿对应的横滚角(roll)。其中,第一注视区域可以为圆形,该圆形的半径的取值范围为3~6个像素。
在显示屏幕上显示中最靠近拍摄设备的位置显示第一注视区域后,当前用户注视该第一注视区域,图像传感器持续拍摄当前用户的人脸图像,得到第二可见光人脸图像,直至确定正向拍摄到当前用户的人脸图像。
假设当前拍摄到一张第二可见光人脸图像1,可以对该第二可见光人脸图像1进行分析处理,确定当前用户的人脸朝向与显示屏幕的第二交点1,以及第二人脸位姿1;然后判断第二交点1是否在第一注视区域内,以及第二人脸位姿1是否在设置的误差范围内(即通过以判断第一注视区域的中心为起点延伸的三条线段是否在第一注视区域内),这样便于通过第一注视区域及其对应的三条线段提示当前用户调整其人脸位姿,使图像传感器能正向拍摄到当前用户的人脸图像。
请参见图4为本发明实施例提供的人脸朝向与显示屏幕的交点不在第一注视区域内的示意图。假设判断结果为第二交点1(图4中以黑点示意)不在第一注视区域内,则继续拍摄当前用户的人脸图像,得到第二人脸图像2。
此时再对该第二可见光人脸图像2进行分析处理,确定当前用户的人脸朝向与显示屏幕的第二交点2,以及第二人脸位姿2;然后,判断第二交点2是否在第一注视区域内,以及第二人脸位姿2是否在设置的误差范围内。
请参见图5为本发明实施例提供的人脸朝向与显示屏幕的交点在第一注视区域内的示意图。假设此时第二交点2(同一以黑点示意)在第一注视区域内,以及第二人脸位姿2在设置的误差范围内,则确定正向拍摄到当前用户的人脸图像,此时将第二可见光人脸图像2作为第一可见光人脸图像,相应的将第二人脸位姿2作为与第一可见光人脸图像对应的第一人脸位姿。
在上述处理过程中,确定人脸朝向与显示屏幕的交点,可以采用下列方式实现:
从第二可见光人脸图像中获取当前用户人脸的预设数量的特征点(如人脸的68个特征点),通过基于PnP的位姿测量方法计算人脸位姿数据(由旋转矩阵和平移矩阵组成),再结合罗德里格斯转换得到人脸的旋转角度;根据人脸旋转角度得到人脸朝向的矢量,结合人脸到显示屏幕的距离,便可计算得到人脸朝向与显示屏幕的交点。
请参见图6为本发明实施例提供的当前用户与显示屏幕位置关系的示意图。在图6中,以15寸显示屏幕为例(显示屏幕长宽尺寸为332×187mm),为保证在40~70cm的观看范围(假设当前用户正对显示屏幕中心,观看范围即为当前用户与显示屏幕中心之间的距离)内,在图6中假设当前用户与显示屏幕中心之间的距离为550mm,图像传感器能够较好的拍摄到人脸图像,需要设置图像传感器的光轴方向和位置,图像传感器以设置在显示屏幕的下侧中间位置为例,光轴的确定可以通过光轴与水平面的夹角α计算得出:
请参见图7为本发明实施例提供的建立世界坐标系的示意图,以图像传感器中心为原点,水平向右为X轴正向,光轴方向为Z轴正向,垂直于XOZ面的方向为Y轴方向建立世界坐标系,并在此世界坐标系下构建显示屏幕的平面方程。
构建显示屏幕的平面方程,可以先得到显示屏幕四个顶点坐标A(-166,31,184),B(166,31,184),C(-166,0,0),D(166,0,0),以及显示屏幕的中心坐标E(0,15.5,92),显示屏幕所在屏幕法向量为代入点法式平面方程可得显示屏幕的平面方程:15.5×(y-sinα)+92×(z-cosα)=0。
之后,对第二可见光图像进行人脸检测,得到对应的人脸区域,然后对该人脸区域进行人脸特征(LandMark)点检测,得到人脸的68个特征点,并用基于PnP的位姿测量方法得到表示人脸位姿的旋转矩阵(R)和平移矩阵(T)。对旋转矢量进行罗德里格斯变换,得到旋转矩阵R,变换公式如下:
其中,rx、ry、rz分别为R的单位向量r在x、y、z对应的值。
需要说明的是,旋转矩阵可以理解为绕一旋转向量旋转一定角度得到的,因此可以用旋转变量来描述旋转矩阵,二者可以通过罗德里格斯变换进行转换。
罗德里格斯公式为:
其中,R为旋转矩阵,I为单位矩阵。
在得到上述旋转矩阵后,便可计算人脸位姿,即人脸旋转的角度(俯仰角pitch,偏航角yaw,横滚角roll),计算公式如下:
其中,q0为计算pitch、yaw、roll的中间量之一,R(0,0)、R(1,1)、R(2,2)分别为旋转矩阵R对角线上的3个元素的值。
其中,q1为计算pitch、yaw、roll的中间量之一,R(2,1)、R(1,2)分别为旋转矩阵R中第2行第1列元素的值,以及第1行第2列元素的值。
其中,q2为计算pitch、yaw、roll的中间量之一,R(0,2)、R(2,0)分别为旋转矩阵R中第0行第2列元素的值,以及第2行第0列元素的值。
其中,q3为计算pitch、yaw、roll的中间量之一,R(1,0)、R(0,1)分别为旋转矩阵R中第1行第0列元素的值,以及第0行第1列元素的值。
yaw=arcsin(2×(q0q2+q1q3) (11);
假设人脸中心三维坐标为F1(x1,y1,z1),人脸朝向矢量F2(x2,y2,z2)(此处是以F1为坐标原点指示的F2的坐标),通过上述公式(10)~(11)确定的pitch、yaw、roll,可以得到:
x2=cos(pitch)×sin(yaw) (13);
y2=sin(pitch) (14);
z2=cos(pitch)×cos(yaw) (15);
结合F1的坐标,可以得到F2在世界坐标系中的坐标为(x1+x2,y1+y2,z1+z2)。
需要说明的是,人脸中心三维坐标可以通过获得68个特征点,确定对应人脸三维模型的坐标原点,将该坐标原点在图7所示的世界坐标系中的坐标作为人脸中心坐标。
请参见图8为本发明实施例提供的计算人脸朝向与显示屏幕交点的示意图,在图8中F为人脸朝向与显示屏幕交点,F1为人脸中心点,F2为人脸朝向上的一个点(也可以理解为一F1为坐标原点的坐标系中的一个向量),G为F1垂直于显示屏幕的一个点,G2为F2垂直于F1G线上的点。
通过前面的计算已经可以得到显示屏幕在图7所示的世界坐标系下的屏幕方程为:15.5×(y-sinα)+92×(z-cosα)=0,令a=0、b=15.5、c=92、d=-93.3。
根据相似三角形远离可以得到:
F1到F2的距离为:
则:
其中,O为图7所示世界坐标系的原点。
通过上述方式,便能确定人脸朝向与显示屏幕的交点的坐标,上述第二交点1,以及第二交点2的三维坐标,以及后续需要确定人脸朝向与显示平面交点的三维坐标,均可按照上述方式确定。
在获取图像传感器正向拍摄当前用户的第一可见光人脸图像时,通过上述方式确定出的人脸朝向与显示屏幕的第二交点的三维坐标,便能确定该第二交点是否在显示屏幕的第一注视区域内,结合判断出的第二人脸位姿是否在设定的误差范围内便能确定拍摄到的第二可见光人脸图像是否为正向拍摄到的人脸图像,进而将正向拍摄到的第二可见光人脸图像作为第一可见光人脸图像。
在获得第一可见光人脸图像后,便可执行步骤102。
步骤102:基于预设数量的特征点确定当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标。
基于预设数量的特征点确定当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标,可以采用下列方式实现:
将预设数量的特征点对应的像素坐标转换为世界坐标下的三维坐标;从预设数量的特征点中确定出左眼区域特征点和右眼区域特征点;确定左眼区域特征点和右眼区域特征点的中心点,并将左眼区域特征点的中心点作为左眼中心三维坐标,将右眼区域特征点的中心点作为右眼中心三维坐标;根据预设眼球半径及左眼中心三维坐标和右眼中心三维坐标,确定左眼眼球中心三维坐标和右眼眼球中心三维;根据预设数量的特征点对应的三维坐标,确定人脸中心三维坐标。
可以先从预设数量的特征点(假设为68个特征点)中,确定出属于左眼区域的特征点,以及属于右眼区域的特征点,根据左眼区域的特征点的像素坐标确定出左眼区域中心点的像素坐标,根据右眼区域的特征点的像素坐标确定出右眼区域中心点的像素坐标,然后将左眼区域中心点的像素坐标、右眼区域中心点的像素坐标分别转换为世界坐标下的三维坐标,由于该转换方法为现有技术故在此不再赘述。
例如,左眼区域的特征点包括L1~L6这6个特征点,右眼区域的特征点包括R1~R6这个6个特征点,那左眼区域中心点(记为Lcenter)、右眼区域中心点(记为Rcenter)可以表示为:
Lcenter=(L1+L2+L3+L4+L5+L6)/6 (22);
Rcenter=(R1+R2+R3+R4+R5+R6)/6 (23);
需要说明的是公式(22)、(23)表示的是对对应特征点的像素坐标进行计算。
将上述将左眼区域中心点的像素坐标、右眼区域中心点的像素坐标分别转换为世界坐标下的三维坐标,便能得到左眼中心三维坐标和右眼中心三维坐标,分别记为Lw(zl,yl,zl)、Rw(xr,yr,zr)。
然后根据预设眼球半径(通常为12mm)以及左眼中心三维坐标和右眼中心三维坐标,计算左眼眼球中心三维坐标为Lw(zl,yl,zl-12),右眼眼球中心三维坐标Rw(xr,yr,zr-12)。
而人脸中心三维坐标通过预设数量对应的三维坐标可以计算出,此为现有技术在此不再赘述。
在确定左眼眼球中心坐标、右眼眼球中心坐标以及人脸中心三维坐标之后,便可执行步骤103。
步骤103:分别建立左眼球中心三维坐标、右眼眼球中心三维坐标到人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得当前用户的人脸刚体模型。
使用步骤102中计算出的左眼眼球中心坐标、右眼眼球中心坐标以及人脸中心三维坐标,可以计算左眼眼球中心与人脸中心之间的左眼向量,以及右眼眼球中心与人脸中心之间的右眼向量:
左眼向量:Lw-F1=(xl-x1,yl-y1,zl-z1) (24);
右眼向量:Rw-F1=(xr-x1,yr-y1,zr-z1) (25);
将上述左眼向量和右眼向量映射到人脸三维模型中,便可得到当前用户的人脸刚体模型。
在本发明提供的实施例中,为了提高人脸刚体模型中眼球中的精度,在获得人脸刚体模型后,还可以对人脸刚体模型进行校正,具体可以采用下列方式:
在显示屏幕的中心显示第二注视区域,并获取当前用户注视第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像;基于第三可见光人脸图像确定当前用户的第三人脸位姿,并检测第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标;其中,第三人脸位姿用于表示当前用户人脸的姿态角度;通过第三人脸位姿更新人脸刚体模型的姿态,并结合左眼瞳孔中心三维坐标和右眼瞳孔中心坐标,获得当前用户的当前注视点;判断当前注视点是否在第二注视区域内;若不在第二注视区域内,将当前注视点移动到第二注视区域内,根据移动的距离对人脸刚体模型中的左眼向量和右眼向量进行微调,获得校正后的人脸刚体模型。
请参见图9为本发明实施例提供的校正人脸刚体模型的示意图。
在显示屏幕的中心显示第二注视区域(图9中所示的椭圆形虚线区域,实际为圆形,只是从图9中的角度看为椭圆形),用图像传感器拍摄用户(即同时使用可见光图像传感器和红外图像传感器对用户进行拍摄),得到当前用户注视第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像,使用公式(10)~(12)计算第三可见光人脸图像对应的人脸位姿,计算结果记为(α1,β1,γ1),α1、β1、γ1依次为俯仰角(pitch)、偏航角(yaw)、横滚角(roll)。
同时,还可通过第三可见光人脸图像检测出左眼瞳孔中心和右眼瞳孔中心的三维坐标,可以采用下列方式实现:
将第三红外图像转换为与第三可见光图像同坐标系下的第四红外图像;从第四红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从左眼区域和右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标;将左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标,分别转换为世界坐标系下的左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
由于可见光图像传感器和红外图像传感器的分辨率和FOV不同,且它们的光轴也不同,因此需要将第三红外图像转换为与第三可见光图像同坐标系下的第四红外图像,可以向将第三可见光图像映射到世界坐标系的公式和第三红外图像映射到世界坐标系的公式进行联立求解,得到第三可见光图像与第三红外图像之间的坐标相互转换的公式:
其中,(u1,ν1)为第三可见光图像中一个像素的像素坐标,(u2,ν2)为第三红外图像中一个像素的像素坐标,(u01,ν01)为第三可见光图像的中心的像素坐标,(u02,ν02)为第三红外图像的中心的像素坐标,(fx1,fy1)为可见光图像传感器的焦点坐标,(fx2,fy2)为红外图像传感器的焦点坐标,(u1,ν1)与(u2,ν2)对应世界坐标系下的同一点,该点的z轴坐标为zw,k为红外图像传感器横向分辨率与可见光红外图像传感器横向分辨率之间的倍数(如以步骤101中设置的分辨率为例,则k=4);d为可见光图像传感器和红外图像传感器中心之间的距离。
为了减少计算量,也可以先从第三红外图像中获取红外左眼区域和红外右眼区域,然后在对它们进行上述坐标转换使之转换为与第三可见光图像同坐标系下的左眼区域和右眼区域,然后再用瞳孔检测算法(如基于梯度矢量场的算法)检测左眼区域和右眼区域中的瞳孔,获得左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标,并将它们转换为世界坐标系下的三维坐标,得到左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
而通过第三人脸位姿更新人脸刚体模型的姿态,并结合左眼瞳孔中心三维坐标和右眼瞳孔中心坐标,获得当前用户的当前注视点,可以通过下列方式实现:
将人脸刚体模型中左眼向量和右眼向量,按第三人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;从调整后的左眼向量和调整后的右眼向量中获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标;将当前左眼眼球中心三维坐标和左眼瞳孔三维坐标连线的延长线作为左眼视线,将当前右眼眼球中心三维坐标和左眼瞳孔三维坐标连线的延长线作为右眼视线;确定左眼视线和右眼实线分别与显示屏幕的两个交点,将两个交点连线的中心点作为当前注视点。
假设步骤103中获得的人脸刚体模型中人脸位姿为(α0,β0,γ0),α0、β0、γ0依次为俯仰角(pitch)、偏航角(yaw)、横滚角(roll)。在该人脸刚体模型中,人脸中心三维坐标为F(x,y,z)、左眼眼球中心三维坐标为L(xl,yl,zl),右眼眼球中心三维坐标为R(xr,yr,zr)。
由上述第三可见光人脸图像得出的人脸位姿(α1,β1,γ1),以及步骤103中得到的人脸刚体模型的人脸位姿(α0,β0,γ0)、人脸中心三维坐标为F(x,y,z)、左眼眼球中心三维坐标为L(xl,yl,zl),右眼眼球中心三维坐标为R(xr,yr,zr),可以计算出当前用户的左眼眼球中心坐标和右眼眼球中心坐标(与第三可见光图像对应)。
以计算左眼眼球中心坐标为例进行说明:
俯仰角变化时,左眼眼球中心到人脸中心的向量PL绕X轴旋转的角度为α0-α1,X轴单位向量为XA(1,0,0),所以旋转后得到的向量PL_x为:
PL_x=PL×cos(α0-α1)+(XA×PL)sin(α0-α1)+XA(XA·PL)(1-cos(α0-α1))(27);
同理,偏航角变化时,向量PL_x绕Y轴旋转的角度为β0-β1,Y轴的单位向量为YA(0,1,0),旋转后得到的向量PL_xy为:
PL_xy=PL_x×cos(β0-β1)+(YA×PL_x)sin(β0-β1)+YA(YA·PL_x)(1-cos(β0-β1))(28);
同理,横滚角变化时,向量PL_xy绕Z轴旋转后得到的向量PL_xyz为:
PL_xyz=PL_xy×cos(γ0-γ1)+(ZA×PL_xy)sin(γ0-γ1)+ZA(ZA·PL_xy)(1-cos(γ0-γ1)) (29);
与计算左眼眼球中心坐标相同的方法,可以计算出右眼眼球中心坐标,记为PR_xyz,由于PL_xyz、PR_xyz都是以人脸中心为起点的向量,因此在PL_xyz、PR_xyz的基础上分别加上人脸中心三维坐标F(x,y,z),便可得到世界坐标系下与当前(与第三可见光人脸图像对应)的左眼眼球中心三维坐标和右眼眼球中心三维坐标。
之后,将当前左眼眼球中心三维坐标和左眼瞳孔三维坐标连线的延长线作为左眼视线,将当前右眼眼球中心三维坐标和左眼瞳孔三维坐标连线的延长线作为右眼视线;确定左眼视线和右眼实线分别与显示屏幕的两个交点,将两个交点连线的中心点作为当前注视点。
为了确保使用的人脸刚体模型在误差范围内,在计算当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标之前,还需要通过第三人脸位姿更新人脸刚体模型的姿态后,左眼眼球中心、右眼眼球中心分别到人脸中心的距离是否保持不变来确定。
左眼眼球中心到人脸中心的距离(记为DL)为:
右眼眼球中心到人脸中心的距离(记为DR)为:
人脸刚体模型更新位姿前、后的DR、DL的值保持不变,则说明人脸刚体模型在误差范围内,可以使用更新位姿后的人脸刚体模型计算当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标,否则需要重新生成新的人脸刚体模型来计算当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
需要说明的是,图像传感器(红外图像传感器和可见光图像传感器)可以独立于显示屏幕,也可以集成到显示屏幕中,具体不做限定。
请参见图10,本发明一实施例中提供一种注视点检测的方法,该方法的注视点检测方法的具体实施方式可参见人脸刚体模型生成方法中相关实施例部分的描述,重复之处不再赘述,该方法包括:
步骤1001:获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从第四可见光人脸图像中获取当前用户人脸的预设数量的特征点,从第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标。
步骤1002:用基于PnP的位姿测量方法对预设数量的特征点进行计算,获得当前用户的当前人脸位姿;
步骤1003:基于当前人脸位姿更新如步骤101~步骤103所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标。
步骤1004:根据当前左眼眼球中心三维坐标、右眼眼球中心三维、当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标,确定当前用户在显示屏幕的当前注视点。
由于上述确定当前注视点的方式与在步骤103中记录的确定当前注视点的方式相同,故不再赘述。
一种可能的实施方式,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标,包括:
将所述第四红外图像转换为与所述第四可见光图像同坐标系下的第五红外图像;
从所述第五红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳中心孔像素坐标。
一种可能的实施方式,基于所述当前人脸位姿更新如步骤101~步骤103所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维,包括:
将所述人脸刚体模型中左眼向量和右眼向量,按所述当前人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中,获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
一种可能的实施方式,根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点,包括:
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线;
将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼视线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
基于同一发明构思,本发明一实施例中提供一种人脸刚体模型生成的装置,该装置的人脸刚体模型生成方法的具体实施方式可参见人脸刚体模型生成方法实施例部分的描述,重复之处不再赘述,请参见图11,该装置包括:
获取模块1101,用于获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从所述第一可见光人脸图像中获取所述当前用户人脸的预设数量的特征点;
确定模块1102,用于基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;
获得模块1103,用于分别建立所述左眼球中心三维坐标、所述右眼眼球中心三维坐标到所述人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得所述当前用户的人脸刚体模型。
一种可能的实施方式,所述获取模块1101还用于:
在所述显示屏幕中最靠近拍摄设备的位置显示第一注视区域;
持续拍摄所述当前用户注视所述第一注视区域时的第二可见光人脸图像,直至确定正向拍摄到所述当前用户的人脸图像;
每拍摄一次,根据所述第二可见光人脸图像确定所述当前用户的人脸朝向与所述显示屏幕的第二交点,以及第二人脸位姿;其中,所述第二人脸位姿用于表示所述当前用户人脸的姿态角度;
判断所述第二交点是否在所述第一注视区域内,且所述第二人脸位姿是否在设定的误差范围内;
若所述第二交点在所述第一注视区域内,且第二人脸位姿在设定的误差范围内,确定正向拍摄到所述当前用户的人脸图像,并将对应的第二可见光人脸图像作为所述第一可见光人脸图像。
一种可能的实施方式,所述获取模块1101还用于:
将所述第二人脸位姿的误差值抽象为以所述第一注视区域的中心为起点的线段,将所述第一注视区域的边界作为所述误差范围的界限值;
判断所述线段是否超出所述第一注视区域;
若所述线段超出所述第一注视区域,则确定所述第二人脸位姿不在所述误差范围内;
若所述线段未超出所述第一注视区域,则确定所述第二人脸位姿在所述误差范围内。
一种可能的实施方式,所述确定模块1102还用于:
将所述预设数量的特征点对应的像素坐标转换为世界坐标下的三维坐标;
从所述预设数量的特征点中确定出左眼区域特征点和右眼区域特征点;
确定所述左眼区域特征点和所述右眼区域特征点的中心点,并将所述左眼区域特征点的中心点作为左眼中心三维坐标,将所述右眼区域特征点的中心点作为右眼中心三维坐标;
根据预设眼球半径及所述左眼中心三维坐标和所述右眼中心三维坐标,确定左眼眼球中心三维坐标和右眼眼球中心三维;
根据所述预设数量的特征点对应的三维坐标,确定所述人脸中心三维坐标。
一种可能的实施方式,获得所述当前用户的人脸刚体模型后,所述获得模块1103还用于:
在显示屏幕的中心显示第二注视区域,并获取所述当前用户注视所述第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像;
基于所述第三可见光人脸图像确定所述当前用户的第三人脸位姿,并检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标;其中,所述第三人脸位姿用于表示所述当前用户人脸的姿态角度;
通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点;
判断所述当前注视点是否在所述第二注视区域内;
若不在所述第二注视区域内,将所述当前注视点移动到所述第二注视区域内,根据移动的距离对所述人脸刚体模型中的所述左眼向量和右眼向量进行微调,获得校正后的人脸刚体模型。
一种可能的实施方式,所述获得模块1103还用于:
将所述第三红外图像转换为与所述第三可见光图像同坐标系下的第四红外图像;
从所述第四红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标;
将所述左眼瞳孔中心像素坐标和所述右眼瞳孔中心像素坐标,分别转换为世界坐标系下的左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
一种可能的实施方式,所述获得模块1103还用于:
将所述人脸刚体模型中左眼向量和右眼向量,按所述第三人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标;
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线,将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼实线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
基于同一发明构思,本发明一实施例中提供一种注视点检测的装置,该装置的注视点检测方法的具体实施方式可参见注视点检测方法实施例部分的描述,重复之处不再赘述,请参见图12,该装置包括:
获取模块1201,用于获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从所述第四可见光人脸图像中获取所述当前用户人脸的预设数量的特征点,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标;
计算模块1202,用于用基于PnP的位姿测量方法对所述预设数量的特征点进行计算,获得所述当前用户的当前人脸位姿;
获得模块1203,用于基于所述当前人脸位姿更新如权利要求1-7任一项所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将所述当前左眼瞳孔中心像素坐标和所述当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标;
确定模块1204,用于根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点。
一种可能的实施方式,所述获取模块1201还用于:
将所述第四红外图像转换为与所述第四可见光图像同坐标系下的第五红外图像;
从所述第五红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳中心孔像素坐标。
一种可能的实施方式,所述获得模块1203还用于:
将所述人脸刚体模型中左眼向量和右眼向量,按所述当前人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中,获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
一种可能的实施方式,所述确定模块1204具体用于:
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线;
将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼视线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
基于同一发明构思,本发明实施例中提供了一种注视点检测的装置,包括:至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的人脸刚体模型生成的方法或注视点检测的方法。
基于同一发明构思,本发明实施例还提一种可读存储介质,包括:
存储器,
所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上所述的人脸刚体模型生成的方法或注视点检测的方法。
本领域内的技术人员应明白,本发明实施例可提供为方法、***、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种人脸刚体模型生成的方法,其特征在于,包括:
获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从所述第一可见光人脸图像中获取所述当前用户人脸的预设数量的特征点;
基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;
分别建立所述左眼球中心三维坐标、所述右眼眼球中心三维坐标到所述人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得所述当前用户的人脸刚体模型。
2.如权利要求1所述的方法,其特征在于,获取图像传感器正向拍摄当前用户的第一可见光人脸图像,包括:
在所述显示屏幕中最靠近拍摄设备的位置显示第一注视区域;
持续拍摄所述当前用户注视所述第一注视区域时的第二可见光人脸图像,直至确定正向拍摄到所述当前用户的人脸图像;
每拍摄一次,根据所述第二可见光人脸图像确定所述当前用户的人脸朝向与所述显示屏幕的第二交点,以及第二人脸位姿;其中,所述第二人脸位姿用于表示所述当前用户人脸的姿态角度;
判断所述第二交点是否在所述第一注视区域内,且所述第二人脸位姿是否在设定的误差范围内;
若所述第二交点在所述第一注视区域内,且第二人脸位姿在设定的误差范围内,确定正向拍摄到所述当前用户的人脸图像,并将对应的第二可见光人脸图像作为所述第一可见光人脸图像。
3.如权利要求2所述的方法,其特征在于,判断所述第二人脸位姿是否在设定的误差范围内,包括:
将所述第二人脸位姿的误差值抽象为以所述第一注视区域的中心为起点的线段,将所述第一注视区域的边界作为所述误差范围的界限值;
判断所述线段是否超出所述第一注视区域;
若所述线段超出所述第一注视区域,则确定所述第二人脸位姿不在所述误差范围内;
若所述线段未超出所述第一注视区域,则确定所述第二人脸位姿在所述误差范围内。
4.如权利要求1所述的方法,其特征在于,基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标,包括:
将所述预设数量的特征点对应的像素坐标转换为世界坐标下的三维坐标;
从所述预设数量的特征点中确定出左眼区域特征点和右眼区域特征点;
确定所述左眼区域特征点和所述右眼区域特征点的中心点,并将所述左眼区域特征点的中心点作为左眼中心三维坐标,将所述右眼区域特征点的中心点作为右眼中心三维坐标;
根据预设眼球半径及所述左眼中心三维坐标和所述右眼中心三维坐标,确定左眼眼球中心三维坐标和右眼眼球中心三维;
根据所述预设数量的特征点对应的三维坐标,确定所述人脸中心三维坐标。
5.如权利要求1所述的方法,其特征在于,获得所述当前用户的人脸刚体模型后,还包括:
在显示屏幕的中心显示第二注视区域,并获取所述当前用户注视所述第二注视区域时拍摄的第三可见光人脸图像和第三红外人脸图像;
基于所述第三可见光人脸图像确定所述当前用户的第三人脸位姿,并检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标;其中,所述第三人脸位姿用于表示所述当前用户人脸的姿态角度;
通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点;
判断所述当前注视点是否在所述第二注视区域内;
若不在所述第二注视区域内,将所述当前注视点移动到所述第二注视区域内,根据移动的距离对所述人脸刚体模型中的所述左眼向量和右眼向量进行微调,获得校正后的人脸刚体模型。
6.如权利要求5所述的方法,其特征在于,检测所述第三红外图像中左眼瞳孔和右眼瞳孔的中心位置,获得左眼瞳孔中心三维坐标和右眼瞳孔中心坐标,包括:
将所述第三红外图像转换为与所述第三可见光图像同坐标系下的第四红外图像;
从所述第四红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳孔中心像素坐标;
将所述左眼瞳孔中心像素坐标和所述右眼瞳孔中心像素坐标,分别转换为世界坐标系下的左眼瞳孔中心三维坐标和右眼瞳孔中心三维坐标。
7.如权利要求6所述的方法,其特征在于,通过所述第三人脸位姿更新所述人脸刚体模型的姿态,并结合所述左眼瞳孔中心三维坐标和所述右眼瞳孔中心坐标,获得所述当前用户的当前注视点,包括:
将所述人脸刚体模型中左眼向量和右眼向量,按所述第三人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标;
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线,将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼实线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
8.一种注视点检测的方法,其特征在于,包括:
获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从所述第四可见光人脸图像中获取所述当前用户人脸的预设数量的特征点,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标;
用基于PnP的位姿测量方法对所述预设数量的特征点进行计算,获得所述当前用户的当前人脸位姿;
基于所述当前人脸位姿更新如权利要求1-7任一项所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将所述当前左眼瞳孔中心像素坐标和所述当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标;
根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点。
9.如权利要求8所述的方法,其特征在于,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标,包括:
将所述第四红外图像转换为与所述第四可见光图像同坐标系下的第五红外图像;
从所述第五红外图像中获取左眼区域和右眼区域,并用瞳孔检测算法分别从所述左眼区域和所述右眼区域中获取左眼瞳孔中心像素坐标和右眼瞳中心孔像素坐标。
10.如权利要求8所述的方法,其特征在于,基于所述当前人脸位姿更新如权利要求1-7任一项所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维,包括:
将所述人脸刚体模型中左眼向量和右眼向量,按所述当前人脸位姿调整旋转角度,获得调整后的左眼向量和调整后的右眼向量;
从所述调整后的左眼向量和所述调整后的右眼向量中,获取当前左眼眼球中心三维坐标和当前右眼眼球中心三维坐标。
11.如权利要求8所述的方法,其特征在于,根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点,包括:
将所述当前左眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为左眼视线;
将所述当前右眼眼球中心三维坐标和所述左眼瞳孔三维坐标连线的延长线作为右眼视线;
确定所述左眼视线和所述右眼视线分别与所述显示屏幕的两个交点,将所述两个交点连线的中心点作为所述当前注视点。
12.一种人脸刚体模型生成的装置,其特征在于,包括:
获取模块,用于获取图像传感器正向拍摄当前用户的第一可见光人脸图像,并从所述第一可见光人脸图像中获取所述当前用户人脸的预设数量的特征点;
确定模块,用于基于所述预设数量的特征点确定所述当前用户的左眼球中心三维坐标、右眼球中心三维坐标以及人脸中心三维坐标;
获得模块,用于分别建立所述左眼球中心三维坐标、所述右眼眼球中心三维坐标到所述人脸中心三维坐标的左眼向量和右眼向量,并映射到人脸三维模型中,获得所述当前用户的人脸刚体模型。
13.一种注视点检测的装置,其特征在于,包括:
获取模块,用于获取当前用户的第四可见光人脸图像和第四红外人脸图像,并从所述第四可见光人脸图像中获取所述当前用户人脸的预设数量的特征点,从所述第四红外人脸图像中获取当前左眼瞳孔中心像素坐标和当前右眼瞳孔中心像素坐标;
计算模块,用于用基于PnPd的位姿测量方法对所述预设数量的特征点进行计算,获得所述当前用户的当前人脸位姿;
获得模块,用于基于所述当前人脸位姿更新如权利要求1-7任一项所述的人脸刚体模型,获得当前左眼眼球中心三维坐标和右眼眼球中心三维;将所述当前左眼瞳孔中心像素坐标和所述当前右眼瞳孔中心像素坐标转换为世界坐标系下的三维坐标,获得当前左眼瞳孔中心三维坐标和当前右眼瞳孔中心三维坐标;
确定模块,用于根据所述当前左眼眼球中心三维坐标、所述右眼眼球中心三维、所述当前左眼瞳孔中心三维坐标和所述当前右眼瞳孔中心三维坐标,确定所述当前用户在显示屏幕的当前注视点。
14.一种注视点检测的装置,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如权利要求1-11任一项所述的方法。
15.一种可读存储介质,其特征在于,包括存储器,
所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如权利要求1~11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011499370.6A CN114724200A (zh) | 2020-12-18 | 2020-12-18 | 人脸刚体模型及注视点检测的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011499370.6A CN114724200A (zh) | 2020-12-18 | 2020-12-18 | 人脸刚体模型及注视点检测的方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114724200A true CN114724200A (zh) | 2022-07-08 |
Family
ID=82230075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011499370.6A Pending CN114724200A (zh) | 2020-12-18 | 2020-12-18 | 人脸刚体模型及注视点检测的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114724200A (zh) |
-
2020
- 2020-12-18 CN CN202011499370.6A patent/CN114724200A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111696213B (zh) | 图像生成装置、图像生成方法以及计算机可读介质 | |
US10269139B2 (en) | Computer program, head-mounted display device, and calibration method | |
CN108038886B (zh) | 双目摄像***标定方法、装置及其汽车 | |
CN107113376B (zh) | 一种图像处理方法、装置及摄像机 | |
US20190215505A1 (en) | Information processing device, image generation method, and head-mounted display | |
US20050159916A1 (en) | Information processing apparatus, and information processing method | |
CN107038722A (zh) | 一种设备定位方法及装置 | |
CN108053375B (zh) | 图像数据修正方法、装置及其汽车 | |
JP2016173313A (ja) | 視線方向推定システム、視線方向推定方法及び視線方向推定プログラム | |
JP2011217233A (ja) | 車載カメラ校正システム及びコンピュータプログラム | |
US11960086B2 (en) | Image generation device, head-mounted display, and image generation method | |
US20220113543A1 (en) | Head-mounted display and image display method | |
KR100982171B1 (ko) | 안면 영상 촬영장치 | |
EP3833018B1 (en) | Image processing method and apparatus for stereoscopic images of nearby object in binocular camera system of parallel axis type | |
JP2006285789A (ja) | 画像処理方法、画像処理装置 | |
CN113438465A (zh) | 一种显示调节方法、装置、设备及介质 | |
JP6906943B2 (ja) | 車載器 | |
CN111915739A (zh) | 一种实时三维全景信息互动影息*** | |
CN114724200A (zh) | 人脸刚体模型及注视点检测的方法、装置及存储介质 | |
JP2017134775A (ja) | 画像処理装置、画像処理方法及びプログラム | |
US20220005225A1 (en) | Systems and methods for calibrating imaging and spatial orientation sensors | |
JP2015201734A (ja) | 画像処理装置、画像処理装置の制御方法およびプログラム | |
CN112040209B (zh) | 一种vr场景的投影方法、装置、投影***以及服务器 | |
JP2006285786A (ja) | 情報処理方法、情報処理装置 | |
CN112698725B (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 |