opencvpython实战_OpenCV计算机视觉实战(Python版)

该博客介绍了一个基于OpenCV和Python的疲劳检测系统,通过计算眼睛的形状比例来判断是否闭眼,并设置了阈值来判断连续闭眼的帧数,用于识别人是否处于疲劳状态。该系统使用了dlib库来检测面部特征并计算眼睛的 EAR (Eye Aspect Ratio)。
摘要由CSDN通过智能技术生成

疲劳检测

#导入工具包

from scipy.spatial import distance as dist

from collections import OrderedDict

import numpy as np

import argparse

import time

import dlib

import cv2

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))

])

# http://vision.fe.uni-lj.si/cvww2016/proceedings/papers/05.pdf

def eye_aspect_ratio(eye):

# 计算距离,竖直的

A = dist.euclidean(eye[1], eye[5])

B = dist.euclidean(eye[2], eye[4])

# 计算距离,水平的

C = dist.euclidean(eye[0], eye[3])

# ear值

ear = (A + B) / (2.0 * C)

return ear

# 输入参数

ap = argparse.ArgumentParser()

ap.add_argument("-p", "--shape-predictor", required=True,

help="path to facial landmark predictor")

ap.add_argument("-v", "--video", type=str, default="",

help="path to input video file")

args = vars(ap.parse_args())

# 设置判断参数

EYE_AR_THRESH = 0.3

EYE_AR_CONSEC_FRAMES = 3

# 初始化计数器

COUNTER = 0

TOTAL = 0

# 检测与定位工具

print("[INFO] loading facial landmark predictor...")

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值