将opencv中haarcascade_frontalface_default.xml文件下载到本地,我们调用它辅助进行人脸识别。
识别图像中的人脸
#coding:utf-8 import cv2 as cv # 读取原始图像 img = cv.imread('face.png') # 调用熟悉的人脸分类器 识别特征类型 # 人脸 - haarcascade_frontalface_default.xml # 人眼 - haarcascade_eye.xml # 微笑 - haarcascade_smile.xml face_detect = cv.CascadeClassifier('haarcascade_frontalface_default.xml') gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) # 检查人脸 按照1.1倍放到 周围最小像素为5 face_zone = face_detect.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5) print ('识别人脸的信息:',face_zone) # 绘制矩形和圆形检测人脸 for x, y, w, h in face_zone: # 绘制矩形人脸区域 thickness表示线的粗细 cv.rectangle(img, pt1=(x, y), pt2=(x+w, y+h),color=[0,0,255], thickness=2) # 绘制圆形人脸区域 radius表示半径 cv.circle(img, center=(x+w//2, y+h//2), radius=w//2, color=[0,255,0], thickness=2) # 设置图片可以手动调节大小 cv.namedWindow("Easmount-CSDN", 0) # 显示图片 cv.imshow("Easmount-CSDN", img) # 等待显示 设置任意键退出程序 cv.waitKey(0) cv.destroyAllWindows()
注意,此算法只能检测正脸,并且任何算法都有一定的准确率。如上图所示,图像中有一处被错误地检测为人脸。
CascadeClassifier:
是OpenCV中人脸检测的一个级联分类器,既可以使用Haar,也可以使用LBP特征。以Haar特征分类器为基础的对象检测技术是一种非常有效的技术。它是基于机器学习且使用大量的正负样本训练得到分类器。
Haar-like矩形特征:
是用于物体检测的数字图像特征。这类矩形特征模板由两个或多个全等的黑白矩形相邻组合而成,而矩形特征值是白色矩形的灰度值的和减去黑色矩形的灰度值的和,矩形特征对一些简单的图形结构,如线段、边缘比较敏感。如果把这样的矩形放在一个非人脸区域,那么计算出的特征值应该和人脸特征值不一样,所以这些矩形就是为了把人脸特征量化,以区分人脸和非人脸。
LBP:
是一种特征提取方式,能提取出图像的局部的纹理特征,最开始的LBP算子是在3X3窗口中,取中心像素的像素值为阀值,与其周围八个像素点的像素值比较,若像素点的像素值大于阀值,则此像素点被标记为1,否则标记为0。这样就能得到一个八位二进制的码,转换为十进制即LBP码,于是得到了这个窗口的LBP值,用这个值来反映这个窗口内的纹理信息。LBPH是在原始LBP上的一个改进,在opencv支持下我们可以直接调用函数直接创建一个LBPH人脸识别的模型。比如:cv.face.LBPHFaceRecognizer_create()。
detectMultiScale:
检测人脸算法,其参数:
– image表示要检测的输入图像
– objects表示检测到的人脸目标序列
– scaleFactor表示每次图像尺寸减小的比例
– minNeighbors表示每一个目标至少要被检测到3次才算是真的目标,因为周围的像素和不同的窗口大小都可以检测到人脸
– minSize表示目标的最小尺寸
– maxSize表示目标的最大尺寸
识别视频中的人脸
将视频中每一帧图像取出,进行图像人脸识别,标记识别到的人脸,显示每一帧图像。
#coding:utf-8 import cv2 as cv import numpy as np # 加载视频 cap = cv.VideoCapture('wang.mp4') # 调用熟悉的人脸分类器 识别特征类型 # 人脸 - haarcascade_frontalface_default.xml # 人眼 - haarcascade_eye.xm # 微笑 - haarcascade_smile.xml face_detect = cv.CascadeClassifier('haarcascade_frontalface_default.xml') while True: # 读取视频片段 flag, frame = cap.read() if flag == False: break # 灰度处理 gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) # 检查人脸 按照1.1倍放到 周围最小像素为5 face_zone = face_detect.detectMultiScale(gray, scaleFactor = 1.5, minNeighbors = 8) # 绘制矩形和圆形检测人脸 for x, y, w, h in face_zone: cv.rectangle(frame, pt1 = (x, y), pt2 = (x+w, y+h), color = [0,0,255], thickness=2) cv.circle(frame, center = (x + w//2, y + h//2), radius = w//2, color = [0,255,0], thickness = 2) # 显示图片 cv.imshow('video', frame) # 设置退出键和展示频率 if ord('q') == cv.waitKey(25): break # 释放资源 cv.destroyAllWindows() cap.release()
识别摄像头中的人脸
#coding:utf-8 import cv2 as cv # 识别电脑摄像头并打开 cap = cv.VideoCapture(0) # 调用熟悉的人脸分类器 识别特征类型 # 人脸 - haarcascade_frontalface_default.xml # 人眼 - haarcascade_eye.xm # 微笑 - haarcascade_smile.xml face_detect = cv.CascadeClassifier('haarcascade_frontalface_default.xml') while True: # 读取视频片段 flag, frame = cap.read() if flag == False: break # 灰度处理 gray = cv.cvtColor(frame, code=cv.COLOR_BGR2GRAY) # 检查人脸 按照1.1倍放到 周围最小像素为5 face_zone = face_detect.detectMultiScale(gray, scaleFactor = 1.1, minNeighbors = 5) # 绘制矩形和圆形检测人脸 for x, y, w, h in face_zone: cv.rectangle(frame, pt1 = (x, y), pt2 = (x+w, y+h), color = [0,0,255], thickness=2) cv.circle(frame, center = (x + w//2, y + h//2), radius = w//2, color = [0,255,0], thickness = 2) # 显示图片 cv.imshow('video', frame) # 设置退出键和展示频率 if ord('q') == cv.waitKey(40): break # 释放资源 cv.destroyAllWindows() cap.release()
以上就是python基于opencv实现人脸识别的详细内容,更多关于python opencv 人脸识别的资料请关注其它相关文章!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]