发明内容
本发明要解决的技术问题是:提供一种基于单目摄像头的视线测量方法及装置,通过摄像头和标定板,实现对视线数据的测量,使得操作简单高效,适用性较广。
为了解决上述技术问题,本发明提供了一种基于单目摄像头的视线测量方法,包括:
获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置;
获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,根据设置的所述第二摄像头的坐标系,计算所述标定板中每个坐标位置在所述第二摄像头的第二坐标位置,并根据所述第一坐标位置,得到所述观测点在所述第二摄像头的第三坐标位置;
获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置;
根据所述第三坐标位置和所述第五坐标位置,计算视线测量结果。
进一步地,所述获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置,具体为:
获取所述第二摄像头基于预设位置拍摄的人脸图像,检测所述人脸图像中是否包含人脸;
当检测到人脸时,获取所述人脸的特征点,基于设置的人脸坐标系,获取所述特征点在所述人脸坐标系中的第四坐标位置,其中,所述特征点包括瞳孔;
将所述第四坐标位置与默认脸部模型进行匹配,获取所述瞳孔的归一化坐标,同时获取所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵和平移向量;
根据所述瞳孔的归一化坐标和所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵和平移向量,计算所述瞳孔在所述第二摄像头的第五坐标位置。
进一步地,所述获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置,具体为:
获取第一摄像头基于观测点拍摄的标定板的第一图像,对所述第一图像进行检测;
当检测到所述第一图像中存在阿鲁克标记时,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述标定板的坐标系相对于所述第一摄像头的坐标系的旋转矩阵和平移向量,以使得到所述观测点在所述标定板的第一坐标位置。
进一步地,所述设置的所述标定板的坐标系和所述第一摄像头的坐标系,具体为:
设置所述标定板的右上角为所述标定板的坐标系的原点以所述标定板的坐标系的左边为x轴,以所述标定板的坐标系的下边为y轴;
设置所述第一摄像头的镜头中心为所述第一摄像头的坐标系的原点,以所述第一摄像头的镜头方向为z轴,以所述第一摄像头的镜头下方为y轴。
进一步地,本发明还提供了一种基于单目摄像头的视线测量装置,包括:观测点坐标获取模块、观测点坐标转换模块、瞳孔坐标获取模块和视线测量模块;
其中,所述观测点坐标获取模块,用于获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置;
所述观测点坐标转换模块,用于获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,根据设置的所述第二摄像头的坐标系,计算所述标定板中每个坐标位置在所述第二摄像头的第二坐标位置,并根据所述第一坐标位置,得到所述观测点在所述第二摄像头的第三坐标位置;
所述瞳孔坐标获取模块,用于获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置;
所述视线测量模块,用于根据所述第三坐标位置和所述第五坐标位置,计算视线测量结果。
进一步地,所述瞳孔坐标获取模块用于获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置,具体为:
获取所述第二摄像头基于预设位置拍摄的人脸图像,检测所述人脸图像中是否包含人脸;
当检测到人脸时,获取所述人脸的特征点,基于设置的人脸坐标系,获取所述特征点在所述人脸坐标系中的第四坐标位置,其中,所述特征点包括瞳孔;
将所述第四坐标位置与默认脸部模型进行匹配,获取所述瞳孔的归一化坐标,同时获取所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵和平移向量;
根据所述瞳孔的归一化坐标和所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵和平移向量,计算所述瞳孔在所述第二摄像头的第五坐标位置。
进一步地,所述观测点坐标获取模块用于获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置,具体为:
获取第一摄像头基于观测点拍摄的标定板的第一图像,对所述第一图像进行检测;
当检测到所述第一图像中存在阿鲁克标记时,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述标定板的坐标系相对于所述第一摄像头的坐标系的旋转矩阵和平移向量,以使得到所述观测点在所述标定板的第一坐标位置。
进一步地,所述观测点坐标获取模块中设置的所述标定板的坐标系和所述第一摄像头的坐标系,具体为:
设置所述标定板的右上角为所述标定板的坐标系的原点以所述标定板的坐标系的左边为x轴,以所述标定板的坐标系的下边为y轴;
设置所述第一摄像头的镜头中心为所述第一摄像头的坐标系的原点,以所述第一摄像头的镜头方向为z轴,以所述第一摄像头的镜头下方为y轴。
进一步地,本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的基于单目摄像头的视线测量方法。
进一步地,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的基于单目摄像头的视线测量方法。
本发明实施例一种基于单目摄像头的视线测量方法及装置,与现有技术相比,具有如下有益效果:
通过利用第一摄像头和第二摄像头分别获取标定板的图像,以使获取观测点在标定板中的坐标位置,以及标定板在第二摄像头中的坐标位置,并基于此,获取观测点在第二摄像头的中的坐标位置。同时将获取的第二摄像头拍摄的人脸图像,计算瞳孔在第二摄像头中的坐标位置,以此来获取视线测量结果。本发明基于将瞳孔和观测点的坐标位置转换到同一个坐标轴上,将视线测量转化为求取坐标向量,简化了数据计算的复杂度,且本发明在对视线检测的过程中,只需要基于摄像头和标定板,就能求取视线测量结果,解决了现有的测量方法需要安装大量设备,难以在狭小,有杂物的复杂环境内安装的问题,与现有技术相比,具有操作简单高效,能适应复杂环境,适用性较广的特点。
具体实施方式
下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1,图1是本发明提供的一种基于单目摄像头的视线测量方法的一种实施例的流程示意图,如图1所示,该方法包括步骤101-步骤104,具体如下:
步骤101:获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置。
本实施例中,在获取第一摄像头基于观测点拍摄的标定板的第一图像前,需要在驾驶室内进行视线测试场景布置;具体的,设置标定板和选取观测点,在驾驶位座椅上固定标定板,使得在每个观测点可以观测到标定板,在驾驶员前方固定第二摄像头,可以拍摄到标定板,当驾驶员坐在驾驶位时可以拍摄到驾驶员的脸,第二摄像头不能再移动;其中,选取的观测点为在采集视线过程中驾驶员注视的点,包括但不限于后视镜,仪表盘,车窗,中控屏;第一摄像头为已经标定出准确内参的摄像头;第二摄像头为已经标定出准确内参的红外摄像头。
本实施例中,设置的标定板为棋盘格和阿鲁科标记的结合,对标定板的设置主要是设置该标定板的长、宽、格子数量、每个格子的宽度、每个阿鲁克标记的宽度和阿鲁克标记的标识的可选数量及其长度和宽度。其中,棋盘格为一块矩形区域,内有黑白相间的方格,使用图像算法可以准确找到白色方格的;阿鲁科标记为黑色正方形边框与内部二进制编码组成的图案,内部的矩阵决定阿鲁科标记的标识,黑色的边框有利于快速检测到阿鲁科标记,而二进制编码可以验证标识;阿鲁科标记的标识为一段二进制编码,与阿鲁科标记的图案一一对应。
本实施例中,设置的所述标定板的坐标系和所述第一摄像头的坐标系;具体为,设置所述标定板的右上角为所述标定板的坐标系的原点以所述标定板的坐标系的左边为x轴,以所述标定板的坐标系的下边为y轴;设置所述第一摄像头的镜头中心为所述第一摄像头的坐标系的原点,以所述第一摄像头的镜头方向为z轴,以所述第一摄像头的镜头下方为y轴。
本实施例中,基于第一摄像头对标定板进行拍摄,得到标定板的第一图像,对第一图像进行检测,通过使用OpenCV的detectMarkers方法可以得到标定板的第一图像内每个阿鲁克标记的像素坐标,以及阿鲁克标记的标识;当检测到所述第一图像中存在阿鲁克标记时,使用OpenCV的interpolateCornersCharuco方法可以获得标定板的第一图像中的白色方格的角的标识,以及白色方格的角的像素坐标;当检测到一个或多个白色方格的角时,使用OpenCV的estimatePoseCharucoBoard方法,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述标定板的坐标系相对于所述第一摄像头的坐标系的旋转矩阵
和平移向量
,则第一摄像头在标定板坐标系中的坐标为:
。
本实施例中,将第一摄像头放置在设置的每一个观测点中,获取第一摄像头基于每个观测点拍摄的标定板的第一图像,即可计算出每一个观测点在标定板的第一坐标位置。
步骤102:获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,根据设置的所述第二摄像头的坐标系,计算所述标定板中每个坐标位置在所述第二摄像头的第二坐标位置,并根据所述第一坐标位置,得到所述观测点在所述第二摄像头的第三坐标位置。
本实施例中,预设位置为进行视线测试场景布置时选取的驾驶员前方的位置;对于第二摄像头的坐标系的设置,将所述第二摄像头的镜头中心设置为所述第二摄像头的坐标系的原点,以所述第二摄像头的镜头方向为z轴,以所述第一摄像头的镜头下方为y轴。
本实施例中,获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,基于与步骤101中计算所述标定板的坐标系相对于所述第一摄像头的坐标系的旋转矩阵
和平移向量
的相同的方法,计算标定板的坐标系相对于所述第二摄像头的坐标系的旋转矩阵
和平移向量
;并基于获取的旋转矩阵
和平移向量
,得到标定板的坐标系中的坐标位置
在第二摄像头的坐标系中的第二坐标位置为:
。
本实施例中,基于步骤101中计算出每一个观测点在标定板的第一坐标位置,将每一个观测点的坐标位置转换到第二摄像头的坐标系内,得到每一个观测点在第二摄像头的坐标系的第三坐标位置。
本实施例中,步骤101和步骤102为对观测区域的建模过程,用于求出所有观测点在第二摄像头的第三坐标位置,用于后续进行视线测量计算。
步骤103:获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置。
本实施例中,设置的人脸坐标系为以鼻尖为原点,沿鼻子表面向下为y轴,过原点与左右瞳孔连线平行且向左眼方向为x轴的空间直角坐标系。
本实施例中,获取所述第二摄像头基于预设位置拍摄的人脸图像,通过使用机器学习方法检测所述人脸图像中是否包含人脸,当检测到人脸时,同样基于使用机器学习方法来获取所述人脸的特征点,基于设置的人脸坐标系,获取所述特征点在所述人脸坐标系中的第四坐标位置,其中,所述特征点包括瞳孔、鼻尖、嘴、眉毛以及人脸各部件轮廓点。
本实施例中,还基于PnP算法将获取的人脸的特征点与默认脸部模型进行匹配,其中,默认脸部模型:一个预先建立好的脸上特征点的归一化三维坐标,基于机器学习计算的方法获取人脸特征点中的瞳孔的归一化坐标
;同时基于PnP算法匹配结果,估计摄像机的位姿,以使获取所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵
和平移向量
。
本实施例中,根据所述瞳孔的归一化坐标
和所述人脸坐标系相对于所述第二摄像头的坐标系的旋转矩阵
和平移向量
,乘以比例因子
,来计算所述瞳孔在所述第二摄像头的第五坐标位置
,其中,比例因子由瞳距乘以一个常数获得,且瞳距为事先已测量的瞳孔距离。第五坐标位置的计算公式如下所示:
步骤104:根据所述第三坐标位置和所述第五坐标位置,计算视线测量结果。
本实施例中,根据上述步骤102获取的观测点在所述第二摄像头的坐标系中的第三坐标位置
,与上述在步骤103中获取的瞳孔在所述第二摄像头的坐标系的第五坐标位置
进行相减,如下式所示:
参见图2,图2是本发明提供的一种基于单目摄像头的视线测量装置的一种实施例的结构示意图,如图2所示,该装置包括观测点坐标获取模块201、观测点坐标转换模块202、瞳孔坐标获取模块203和视线测量模块204,具体如下:
观测点坐标获取模块201,用于获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置;
观测点坐标转换模块202,用于获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,根据设置的所述第二摄像头的坐标系,计算所述标定板中每个坐标位置在所述第二摄像头的第二坐标位置,并根据所述第一坐标位置,得到所述观测点在所述第二摄像头的第三坐标位置;
瞳孔坐标获取模块203,用于获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置;
视线测量模块204,用于根据所述第三坐标位置和所述第五坐标位置,计算视线测量结果。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不在赘述。
需要说明的是,上述基于单目摄像头的视线测量装置的实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述的基于单目摄像头的视线测量方法的实施例的基础上,本发明另一实施例提供了一种基于单目摄像头的视线测量终端设备,该基于单目摄像头的视线测量终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现本发明任意一实施例的基于单目摄像头的视线测量方法。
示例性的,在这一实施例中所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于单目摄像头的视线测量终端设备中的执行过程。
所述基于单目摄像头的视线测量终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述相基于单目摄像头的视线测量终端设备可包括,但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于单目摄像头的视线测量终端设备的控制中心,利用各种接口和线路连接整个基于单目摄像头的视线测量终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于单目摄像头的视线测量终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在上述基于单目摄像头的视线测量方法的实施例的基础上,本发明另一实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时,控制所述存储介质所在的设备执行本发明任意一实施例的基于单目摄像头的视线测量方法。
在这一实施例中,上述存储介质为计算机可读存储介质,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
综上,本发明一种基于单目摄像头的视线测量方法及装置,通过获取第一摄像头基于观测点拍摄的标定板的第一图像,根据设置的所述标定板的坐标系和所述第一摄像头的坐标系,计算所述观测点在所述标定板的第一坐标位置;获取第二摄像头基于预设位置拍摄的所述标定板的第二图像,根据设置的所述第二摄像头的坐标系,计算所述标定板中每个坐标位置在所述第二摄像头的第二坐标位置,并根据所述第一坐标位置,得到所述观测点在所述第二摄像头的第三坐标位置;获取所述第二摄像头基于预设位置拍摄的人脸图像,根据设置的人脸坐标系,获取并根据所述人脸图像中的瞳孔在所述人脸坐标系中的第四坐标位置,并计算所述瞳孔在所述第二摄像头的第五坐标位置;根据所述第三坐标位置和所述第五坐标位置,计算视线测量结果。与现有技术相比,本发明通过摄像头和标定板,实现对视线数据的测量,解决了现有的测量方法需要安装大量设备,难以在狭小,有杂物的复杂环境内安装的问题,使得操作简单高效,适用性较广。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。