资源简介
基于python dlib和sklearn的眨眼检测完整工程,详细请参考我的博客:http://blog.csdn.net/hongbin_xu/article/details/79033116。
代码片段和文件信息
#coding=utf-8
import numpy as np
import cv2
import dlib
from scipy.spatial import distance
import os
from imutils import face_utils
# 计算EAR
def eye_aspect_ratio(eye):
# print(eye)
A = distance.euclidean(eye[1] eye[5])
B = distance.euclidean(eye[2] eye[4])
C = distance.euclidean(eye[0] eye[3])
ear = (A + B) / (2.0 * C)
return ear
pwd = os.getcwd()# 获取当前路径
model_path = os.path.join(pwd ‘model‘)# 模型文件夹路径
shape_detector_path = os.path.join(model_path ‘shape_predictor_68_face_landmarks.dat‘)# 人脸特征点检测模型路径
detector = dlib.get_frontal_face_detector()# 人脸检测器
predictor = dlib.shape_predictor(shape_detector_path)# 人脸特征点检测器
EYE_AR_THRESH = 0.3# EAR阈值
EYE_AR_CONSEC_frameS = 3# 当EAR小于阈值时,接连多少帧一定发生眨眼动作
# 对应特征点的序号
RIGHT_EYE_START = 37 - 1
RIGHT_EYE_END = 42 - 1
LEFT_EYE_START = 43 - 1
LEFT_EYE_END = 48 - 1
frame_counter = 0
blink_counter = 0
cap = cv2.VideoCapture(1)
while(1):
ret img = cap.read()
gray = cv2.cvtColor(img cv2.COLOR_BGR2GRAY)
rects = detector(gray 0)
for rect in rects:
print(‘-‘*20)
shape = predictor(gray rect)
points = face_utils.shape_to_np(shape)# convert the facial landmark (x y)-coordinates to a NumPy array
# points = shape.parts()
leftEye = points[LEFT_EYE_START:LEFT_EYE_END + 1]
rightEye = points[RIGHT_EYE_START:RIGHT_EYE_END + 1]
leftEAR = eye_aspect_ratio(leftEye)
rightEAR = eye_aspect_ratio(rightEye)
print(‘leftEAR = {0}‘.format(leftEAR))
print(‘rightEAR = {0}‘.format(rightEAR))
ear = (leftEAR + rightEAR) / 2.0
leftEyeHull = cv2.convexHull(leftEye)
rightEyeHull = cv2.convexHull(rightEye)
cv2.drawContours(img [leftEyeHull] -1 (0 255 0) 1)
cv2.drawContours(img [rightEyeHull] -1 (0 255 0) 1)
# for pt in leftEye:
# pt_pos = (pt[0] pt[1])
# cv2.circle(img pt_pos 2 (255 0 0) 1)
# for pt in rightEye:
# pt_pos = (pt[0] pt[1])
# cv2.circle(img pt_pos 2 (0 255 0) 1)
if ear < EYE_AR_THRESH:
frame_counter += 1
else:
if frame_counter >= EYE_AR_CONSEC_frameS:
blink_counter += 1
frame_counter = 0
cv2.putText(img “blinks:{0}“.format(blink_counter) (10 30) cv2.FONT_HERSHEY_SIMPLEX 0.7 (00255) 2)
cv2.putText(img “EAR:{:.2f}“.format(ear) (300 30) cv2.FONT_HERSHEY_SIMPLEX 0.7 (00255) 2)
cv2.imshow(“frame“ img)
if cv2.waitKey(1) & 0xFF == ord(“q“):
break
cap.release()
cv2.destroyAllWindows()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-11 12:07 bl
目录 0 2018-01-11 12:07 bl
文件 1077 2018-01-11 12:05 bl
文件 96 2018-01-11 12:05 bl
文件 1784 2018-01-11 12:05 bl
文件 3488 2018-01-11 12:05 bl
文件 80 2018-01-11 12:05 bl
文件 96 2018-01-11 12:05 bl
文件 88 2018-01-11 12:05 bl
文件 3488 2018-01-11 12:05 bl
文件 3488 2018-01-11 12:05 bl
文件 88 2018-01-11 12:05 bl
文件 88 2018-01-11 12:05 bl
文件 80 2018-01-11 12:05 bl
文件 890 2018-01-10 23:24 bl
文件 515 2018-01-10 23:23 bl
文件 5705 2018-01-11 00:28 bl
文件 5705 2018-01-11 00:28 bl
文件 5690 2018-01-11 00:29 bl
文件 5690 2018-01-11 00:29 bl
目录 0 2018-01-11 11:34 bl
文件 1077 2018-01-11 11:23 bl
文件 96 2018-01-11 11:23 bl
文件 1656 2018-01-11 11:23 bl
文件 3232 2018-01-11 11:23 bl
文件 80 2018-01-11 11:23 bl
文件 96 2018-01-11 11:23 bl
文件 88 2018-01-11 11:23 bl
文件 41056 2018-01-11 11:23 bl
文件 3232 2018-01-11 11:23 bl
文件 88 2018-01-11 11:23 bl
............此处省略63个文件信息
相关资源
- opencv_python-3.3.0+contrib-cp36-cp36m-win_amd
- python爬取天气数据并制图分析
- 2017年传智黑马python基础加就业班视频
- python三剑客
- 吴恩达老师机器学习课的笔记,Pyth
- tensorflow_gpu-1.13.1-cp37
- Python和Gephi实现中国知网合作关系知识
- Python编程从入门到实践.pdf
- Python爬虫开发项目实战电子书 本书为
- OpenCV 3计算机视觉:Python语言实现
- Python语言程序设计扫描版_斯坦福大学
- Python语言在Abaqus中的应用DVD光盘
- 利用python绘制热图、计算网络节点d
-
64位系统的ba
semap和pyproj(适合pyth - Python课程期末作业.7z
- 菊安酱机器学习PDF.rar
- 凯斯西储大学(CWRU)轴承数据集含数
- Python-VoiceactivitydetectionVAD语音端点检测
- numpy-1.19.3+mkl-cp38-cp38-win_amd64.whl
- python语言在abaqus中的应用随书光盘.
- 量化投资:以Python为工具.蔡立耑(带
- Python机器学习基础教程中文版Introdu
- Python技术手册(第2版)[扫描版]
- Python语言在Abaqus中的应用 源代码
- 数据结构与算法+Python语言描述.zip
- 基于Python的卷积神经网络的分类
- Python核心编程(第二版).pdf 高清带书
- Deep Learning for Computer Vision with Python三
- python CAD 二次开发自动出图程序
- 编写高质量代码 改善Python程序的91个
评论
共有 条评论