资源简介
工程中包含训练好的模型,内部有详细的配置教程,方法简单效果明显,程序运行流畅。
代码片段和文件信息
“““
从视屏中识别人脸,并实时标出面部特征点
“““
import dlib #人脸识别的库dlib
import numpy as np #数据处理的库numpy
import cv2 #图像处理的库OpenCv
class face_emotion():
def __init__(self):
# 使用特征提取器get_frontal_face_detector
self.detector = dlib.get_frontal_face_detector()
# dlib的68点模型,使用作者训练好的特征预测器
self.predictor = dlib.shape_predictor(“shape_predictor_68_face_landmarks.dat“)
#建cv2摄像头对象,这里使用电脑自带摄像头,如果接了外部摄像头,则自动切换到外部摄像头
self.cap = cv2.VideoCapture(0)
# 设置视频参数,propId设置的视频参数,value设置的参数值
self.cap.set(3 480)
# 截图screenshoot的计数器
self.cnt = 0
def learning_face(self):
# 眉毛直线拟合数据缓冲
line_brow_x = []
line_brow_y = []
# cap.isOpened() 返回true/false 检查初始化是否成功
while(self.cap.isOpened()):
# cap.read()
# 返回两个值:
# 一个布尔值true/false,用来判断读取视频是否成功/是否到视频末尾
# 图像对象,图像的三维矩阵
flag im_rd = self.cap.read()
# 每帧数据延时1ms,延时为0读取的是静态帧
k = cv2.waitKey(1)
# 取灰度
img_gray = cv2.cvtColor(im_rd cv2.COLOR_RGB2GRAY)
# 使用人脸检测器检测每一帧图像中的人脸。并返回人脸数rects
faces = self.detector(img_gray 0)
# 待会要显示在屏幕上的字体
font = cv2.FONT_HERSHEY_SIMPLEX
# 如果检测到人脸
if(len(faces)!=0):
# 对每个人脸都标出68个特征点
for i in range(len(faces)):
# enumerate方法同时返回数据对象的索引和数据,k为索引,d为faces中的对象
for k d in enumerate(faces):
# 用红色矩形框出人脸
cv2.rectangle(im_rd (d.left() d.top()) (d.right() d.bottom()) (0 0 255))
# 计算人脸热别框边长
self.face_width = d.right() - d.left()
# 使用预测器得到68点数据的坐标
shape = self.predictor(im_rd d)
# 圆圈显示每个特征点
for i in range(68):
cv2.circle(im_rd (shape.part(i).x shape.part(i).y) 2 (0 255 0) -1 8)
#cv2.putText(im_rd str(i) (shape.part(i).x shape.part(i).y) cv2.FONT_HERSHEY_SIMPLEX 0.5
# (255 255 255))
# 分析任意n点的位置关系来作为表情识别的依据
mouth_width = (shape.part(54).x - shape.part(48).x) / self.face_width # 嘴巴咧开程度
mouth_higth = (shape.part(66).y - shape.part(62).y) / self.face_width # 嘴巴张开程度
# print(“嘴巴宽度与识别框宽度之比:“mouth_width_arv)
# print(“嘴巴高度与识别框高度之比:“mouth_higth_arv)
# 通过两个眉毛上的10个特征点,分析挑眉程度和皱眉程度
brow_sum = 0 # 高度之和
frown_sum = 0 # 两边眉毛距离之和
for j in range(17 21):
brow_sum += (shape.part(j
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-05-15 13:28 人脸识别情绪识别程序\
目录 0 2018-05-15 13:30 人脸识别情绪识别程序\Python4.24.3\
目录 0 2018-05-15 13:28 人脸识别情绪识别程序\Python4.24.3\.vs\
目录 0 2018-05-15 13:28 人脸识别情绪识别程序\Python4.24.3\.vs\Python4.24.3\
目录 0 2018-05-15 13:28 人脸识别情绪识别程序\Python4.24.3\.vs\Python4.24.3\v14\
文件 33280 2018-05-21 21:30 人脸识别情绪识别程序\Python4.24.3\.vs\Python4.24.3\v14\.suo
目录 0 2018-05-15 13:28 人脸识别情绪识别程序\Python4.24.3\Python4.24.3\
文件 7707 2018-04-25 01:14 人脸识别情绪识别程序\Python4.24.3\Python4.24.3\Python4.24.3.py
文件 2168 2018-04-25 00:36 人脸识别情绪识别程序\Python4.24.3\Python4.24.3\Python4.24.3.pyproj
文件 99693937 2018-04-25 01:06 人脸识别情绪识别程序\Python4.24.3\Python4.24.3\shape_predictor_68_face_landmarks.dat
文件 839 2018-04-25 00:31 人脸识别情绪识别程序\Python4.24.3\Python4.24.3.sln
文件 108 2018-05-15 13:31 人脸识别情绪识别程序\程序配置说明.txt
相关资源
- OpenCV 3计算机视觉 Python语言实现第二
- dlib-19.19.0-cp38-cp38-win_amd64.whl
- 机器学习-使用OpenCV和Python进行智能图
- OpenCV 3计算机视觉:Python语言实现(以
- Practical Python and OpenCV + Case Studies 3rd
- Python+opencv实时的人眼识别以+眨眼检测
- python2和python3版本可用的OpenCV安装包
- shape_predictor_68_face_landmarks.dat
- OpenCV+Python+Dlib面部标定、眨眼和疲劳
- OpenCV 3.x with Python By Example(2nd) 无水
- OpenCV算法精解:基于Python与C
- python dlib+openCV 实现人脸融合
- Python+Dlib库实现人脸合成
- python计算机视觉PDF+源码+数据高清非扫
- python dlib 换脸完整工程
- Python-PySceneDetect基于PythonOpenCV实现的视
- Python+OpenCv实现AI人脸识别身份认证系
- Dlib人脸特征标定.ipynb可直接运行
- ALL_demos.rar贾老师python-OpenCV源码
- 多边型标注工具python-opencv实现
- Python-基于OpenCVKerasTensorFlow实现深度换
- 论文研究-基于Python与OpenCV的舌象分割
- 基于OpenCV 3 LBPH 人脸识别 Python代码
- 卡尔曼滤波器事例:预测鼠标轨迹
- 基于face_recognition和OpenCV的人脸识别程
- 利用OpenCV检测人脸python程序
- OpenCV-Python实现的图片拼接源代码
- python opencv3人脸识别windows
- python+OpenCV人间检测源码
- 基于Python3.6和Opencv3的活动轮廓模型
评论
共有 条评论