前期文章我们分享了如何使用python与dlib来进行人脸识别,以及来进行人脸部分的识别,
如下图,dlib人脸数据把人脸分成了68个数据点,从图片可以看出,人脸识别主要是识别:人眉,人眼,人鼻,人嘴以及人脸下颚边框,每个人脸的部位都有不同的数据标签从1-68
当我们识别出人脸的这68个点,可以通过访问不同的数据点来检测到人脸的部分数据
- · 口可以访问 [48,68] 。
- · 右眉可以访问 [17,22]。
- · 左眉可以访问 [22,27] 。
- · 右眼可以访问 [36,42]。
- · 左眼 可以访问 [42,48]。
- · 鼻可以访问 [27,35]。
- · 下巴边框可以访问 [0,17]
通过访问不同的数据点,来进行人脸上的部位检测,要想对人眼瞌睡检测,首先我们检测到人眼,下图可以看出人眼有6个数据点
通过这6个数据点,可以来定位人眼的6个数据点的坐标,从下图可以看出当人眼睁眼时,人眼上的6个数据点的坐标与人眼闭眼时的数据点坐标不完全一样,通过计算6个数据点的坐标差异,便可以通过距离的计算来判断人眼是否闭眼了,通过设置一个阈值,当人眼闭眼的时间超过阈值时,我们定义为这个人已经瞌睡了,此方案用于高速行驶的司机