EyeGaze_CNN

DMS技术–EyeGaze

据调查显示,全世界发生的交通事故中有80%的碰撞事故是由于驾驶员分心导致的,如果在车上有人能够提示驾驶员分神了,发生事故的概率可以降低30%~43%

EyeGaze Estimation,就是使用计算机视觉技术来实时监控司机是否走神的一种手段。系统可以实时地知道驾驶员的注意力在哪里,如下图所示,系统实时捕捉驾驶员的视线,图片来自于EyeSight。
在这里插入图片描述
EyeGaze技术的解决方案一般有两种方案

  • 人头角度回归+瞳孔定位,两者加权输出
  • 直接CNN分类输出

不管是哪种方案,都会遇到一个问题,那就是算法鲁棒性。眼睛很容易被遮挡,例如很多司机是近视眼,常年佩戴眼睛,或者司机偶尔戴墨镜。

业界在解决此种问题一般是两个思路

  • 使用高穿透红外相机,在硬件上创新
  • 在图像去掉眼镜

综上,EyeGaze的技术路线应该是

  • 人脸检测
  • 眼睛定位
  • 图像预处理
  • EyeGaze算法

在这里插入图片描述

1、人脸检测&眼镜定位

人脸检测算法已经非常多了,眼睛定位也属于landmark算法

2、图像预处理

图像预处理的目的是去掉眼镜,减少眼镜对算法的影响,如下图所示
在这里插入图片描述

一般都是使用GAN的方法,重新去生成一张新的图片,上图来自于GPCycleGAN

3、EyeGaze算法

EyeGaze算法的目的是得到眼镜的注释区域,第一种是类似于OpenFace中的方法,使用传统方法定位眼镜,加上图像几何运算,得到注释角度,然后根据计算得到的角度和实际场景中的安装位置进行匹配

在这里插入图片描述

第二种是直接使用CNN方法分类输出

在这里插入图片描述

如上图所示,CNN结果直接是6分类,直接输出注释区域在哪里。流程非常简单,end2end结果可以直接使用,但是其缺点是训练样本组织起来比较麻烦。

在这里插入图片描述

另外,CNN方法还有两点需要注意

  • 选取合适的CNN网络结构
  • 选取合适的图像输入

常见的网络,例如VGG,Resnet,MobileNet等,都是在ImageNet上进行预训练的,迁移到EyeGaze应用上,需要对其进行网络微调,也就是迁移学习。因为EyeGaze应用场景中图像变化不大,顶多就是瞳孔在眼睛中的位置,所以网络中的大感受野也许会影响特征提取,比如较大卷积核尺寸和较大的stride都会对特征提起有副作用。

然后,怎么选取图像的输入尺寸。

在这里插入图片描述

红色区域是带背景的人头图像作为输入,绿色区域是不带背景的人头区域,蓝色区域是人脸图像,黄色区域是只有眼睛的半张人脸图像。

经过我的实验发现,黄色区域作为CNN的输入,不管是训练还是测试,其效果都是最好的。

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章