1.一种结合双向LSTM和Itracker的视线跟踪方法,其特征在于,所述方法包括以下步骤:
S1.数据预处理:对原始图像进行透视变换,训练模型在特定的虚拟空间下进行视线估计,步骤如下:
S1.1.使人脸参考点在距相机固定距离的图像中心,过程如下:首先,假设a是相机空间下的人脸参考点的坐标,则根据虚拟相机下人脸参考点求得z轴为 然后,假设 是头部姿态的旋转矩阵,为了使x轴与头部水平方向平行,使得vx=vy×vz,其中vy=vz×hx;
S1.2.通过warp变换矩阵将人脸转换为特定相机空间下图像平面,过程如下:‑1
通过warp变换矩阵W实现,W=C0MCn ,其中C0是原相机的内参数矩阵,假设虚拟相机和T
参考点的距离为d,转换矩阵M=SR,其中 R=[rx,ry,rz];Cn是虚拟相机的内参数矩阵,由输入图像决定;
使用gn=Rg0,其中gn代表归一化后的视线向量,g0代表初始视线向量,使用欧拉角表示‑1
单位向量间的约束关系;在测试阶段,对于每一个预测结果,使用g0=R gn将结果从虚拟相机空间下转换到原相机空间下;
S2.使用双向LSTM的网络结构并结合时序信息进行视线估计,整体架构分为静态模块和时态模块;
S2.1.静态模块的处理过程如下:静态模块由两个分支CNN和统一的全连接层组成,CNN将脸、左眼、右眼分别输入到网络的一个分支中,最后从每个分支中提取合并特征映射到屏幕上,得到最终二维凝视点;其中一个分支将左眼图像和右眼图像进行连接,形成单一的6通道输入,从拼接的眼睛图像中提取特征,另一分支则从规范化的面部中提取特征,FC层将这两部分的特征进行融合,将学习到的特征作为多对一双向LSTM的输入;
S2.2.时态模块的处理过程如下:LSTM结构包含一系列重复的LSTM细胞,每个LSTM细胞包含3个单元,分别是遗忘门、输入门、输出门;这些单元允许LSTM内存单元能够在很长的一段时间内存储和传输信息,其中(xt,ct‑1,ht‑1)表示输入层,(ht,ct)表示隐藏层;
在时刻t,ft,it,ot分别表示遗忘门、输入门、输出门,每个LSTM细胞首先使用遗忘门滤掉所需要丢弃的信息;
ft=σ(wifxt+bif+whfht‑1+bhf) (1)其中(Wif,bif)和(Whf,bhf)分别代表映射输入层和隐藏层到遗忘门的权重矩阵和偏差项,其中σ是激活函数,选择的激活函数为sigmoid函数;
然后,LSTM内存单元在输入门合并有效信息;
gt=tanh(Wigxt+big+Whght‑1+bhg) (2)it=σ(Wiixt+bii+Whiht‑1+bhi) (3)ct=ftct‑1+itgt (4)其中(Wig,big)和(Whg,bhg)分别表示映射输入层和隐藏层到细胞的权重矩阵和偏差项,(Wii,bii)和(Whi,bhi)分别表示映射输入层和隐藏层到输入门的权重矩阵和偏差项;
最终,LSTM细胞从输出门获取输出隐藏层ot=σ(Wioxt+bio+Whoht‑1+bho) (5)ht=ottanh(ct) (6)其中(Wio,bio)和(Who,bho)分别代表映射输入层和隐藏层到输出层的权重矩阵和偏差项;
双向LSTM包含正向LSTM和反向LSTM,一个序列是由三个图像帧组成的,最后的视线跟踪预测是由一个全连接层获得的,这一层将最后一帧的前向单元和后向单元映射得到最终的二维凝视向量g;
g=fc(ht,htr) (7)。