实战五、openCv实现疲劳监测

from collections import OrderedDict#带顺序的字典
import dlib
import cv2
import numpy as np
import time

#先检测人脸框在整张图像中的位置,再得出各个关键点相对于人脸框的位置(检测更加准确)

#设置参数:人脸关键点有68个
#1-17脸颊,18-22左眉毛,23-27右眉毛,28-36鼻子,37-42左眼睛,43-48右眼睛,49-68嘴巴
FACIAL_LANDMARKS_68_IDXS=OrderedDict([#参数是有顺序的,不会是乱序的
    ("mouth",(48,68)),
    ("right_eyebrow",(17,22)),
    ("left_eyebrow",(22,27)),
    ("right_eye",(36,42)),
    ("left_eye",(42,48)),
    ("nose",(27,36)),
    ("jaw",(0,17))
])


#将人脸框中的68个关键点转换为坐标数组的形式
def shape_to_np(shape,dtype="int"):
    coords=np.zeros((shape.num_parts,2),dtype=dtype)#检测68*2
    for i in range(0,shape.num_parts):#遍历每一个关键点,shape.num_parts=68
        coords[i]=(shape.part(i).x,shape.part(i).y)#遍历每一个关键点,得到坐标
    return coords



#疲劳监测:眨眼次数检测
#ear指标就是睁着眼睛的时候竖向距离大一些,闭上眼睛的竖向距离小一些
d
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值