如何利用opencv实现人脸识别功能
发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,本篇内容主要讲解"如何利用opencv实现人脸识别功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何利用opencv实现人脸识别功能"吧!目录一、环境
千家信息网最后更新 2025年11月20日如何利用opencv实现人脸识别功能
本篇内容主要讲解"如何利用opencv实现人脸识别功能",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何利用opencv实现人脸识别功能"吧!
目录
一、环境
二、使用Haar级联进行人脸检测
三、Haar级联结合摄像头
四、使用SSD的人脸检测
五、 SSD结合摄像头人脸检测
一、环境
pip install opencv-python
python3.9
pycharm2020
人狠话不多,直接上代码,注释在代码里面,不说废话。
二、使用Haar级联进行人脸检测
测试案例:

代码:(记得自己到下载地址下载对应的xml)
# coding=gbk"""作者:川川@时间 : 2021/9/5 16:38https://github.com/opencv/opencv/tree/master/data/haarcascades"""import cv2# 待检测的图片路径imagepath="2.jpg"image = cv2.imread(imagepath)#读取图片gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#图像转换为灰度图:face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')#加载使用人脸识别器faces = face_cascade.detectMultiScale(gray)#检测图像中的所有面孔#为每个人脸绘制一个蓝色矩形for x, y, width, height in faces: # 这里的color是 蓝 黄 红,与rgb相反,thickness设置宽度 cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2)# 最后,让我们保存新图像cv2.imwrite("beauty_detected.jpg", image)效果:

效果可以看出这个效果并不是很好。
三、Haar级联结合摄像头
代码:(还是用的前面得xml)
# coding=gbk"""摄像头人脸识别作者:川川@时间 : 2021/9/5 17:15Haar级联结合摄像头"""import cv2#创建新的cam对象cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)#初始化人脸识别器(默认的人脸haar级联)face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')while True: # 从摄像头读取图像 _, image = cap.read() # 转换为灰度 image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测图像中的所有人脸 faces = face_cascade.detectMultiScale(image_gray, 1.3, 5) # 为每个人脸绘制一个蓝色矩形 for x, y, width, height in faces: cv2.rectangle(image, (x, y), (x + width, y + height), color=(255, 0, 0), thickness=2) cv2.imshow("image", image) if cv2.waitKey(1) == ord("q"): breakcap.release()cv2.destroyAllWindows()效果:
四、使用SSD的人脸检测
代码:
# coding=gbk"""图片人脸识别作者:川川@时间 : 2021/9/5 17:22"""import cv2import numpy as np# 下载链接:https://raw.githubusercontent.com/opencv/opencv/master/samples/dnn/face_detector/deploy.prototxtprototxt_path = r"./deploy.prototxt.txt"# 下载链接:https://raw.githubusercontent.com/opencv/opencv_3rdparty/dnn_samples_face_detector_20180205_fp16/res10_300x300_ssd_iter_140000_fp16.caffemodelmodel_path =r"./res10_300x300_ssd_iter_140000_fp16.caffemodel"model = cv2.dnn.readNetFromCaffe(prototxt_path, model_path)image = cv2.imread("2.jpg")h, w = image.shape[:2]blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300),(104.0, 177.0, 123.0))model.setInput(blob)output = np.squeeze(model.forward())font_scale = 1.0for i in range(0, output.shape[0]): confidence = output[i, 2] if confidence > 0.5: box = output[i, 3:7] * np.array([w, h, w, h]) start_x, start_y, end_x, end_y = box.astype(np.int) cv2.rectangle(image, (start_x, start_y), (end_x, end_y), color=(255, 0, 0), thickness=2) cv2.putText(image, f"{confidence*100:.2f}%", (start_x, start_y-5), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (255, 0, 0), 2)cv2.imshow("image", image)cv2.waitKey(0)cv2.imwrite("beauty_detected.jpg", image)效果:
我们可以看到现在的识别效果非常好了。
五、 SSD结合摄像头人脸检测
代码:
# coding=gbk"""作者:川川@时间 : 2021/9/5 17:26SSD结合摄像头的人脸检测"""import cv2import numpy as npprototxt_path = "deploy.prototxt.txt"model_path = "res10_300x300_ssd_iter_140000_fp16.caffemodel"model = cv2.dnn.readNetFromCaffe(prototxt_path, model_path)cap = cv2.VideoCapture(0)while True: _, image = cap.read() h, w = image.shape[:2] blob = cv2.dnn.blobFromImage(image, 1.0, (300, 300), (104.0, 177.0, 123.0)) model.setInput(blob) output = np.squeeze(model.forward()) font_scale = 1.0 for i in range(0, output.shape[0]): confidence = output[i, 2] if confidence > 0.5: box = output[i, 3:7] * np.array([w, h, w, h]) start_x, start_y, end_x, end_y = box.astype(np.int) cv2.rectangle(image, (start_x, start_y), (end_x, end_y), color=(255, 0, 0), thickness=2) cv2.putText(image, f"{confidence*100:.2f}%", (start_x, start_y-5), cv2.FONT_HERSHEY_SIMPLEX, font_scale, (255, 0, 0), 2) cv2.imshow("image", image) if cv2.waitKey(1) == ord("q"): breakcv2.destroyAllWindows()cap.release()效果:
可以发现SSD效果特别好!
到此,相信大家对"如何利用opencv实现人脸识别功能"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
人脸
检测
摄像头
效果
摄像
代码
作者
图像
时间
川川
功能
图片
内容
灰度
环境
矩形
蓝色
链接
识别器
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国网网络安全整改
武汉综合电子商务系统软件开发
网络安全班会心得400字
学习电脑网络技术哪个学校好
梦幻新诛仙不同服务器能组队吗
化学专业 软件开发
服务器里安全组要不要删掉
node加密数据库
河北互联网科技有限公司招聘
dnf单数据库外网架设教程
服务器之间通过什么连接的
组态软件开发监控系统软
剩余库存数据库
嘉定区智能化软件开发代理品牌
兰州虎盟网络技术
德宏从零学java软件开发
怎么去掉网络安全设置
2021年国家网络安全宣传单
如何做好数据库的安全性
观战服务器数据请求失败
微信服务器响应不了怎么办
图像处理软件开发流程图
厦航软件开发招聘看成绩吗
绝世仙王灵溪海服务器
山西企业软件开发诚信企业推荐
网络安全思考与探索
善成天下网络技术有限公司
密云区正规软件开发价格网
深圳软件开发贵阳
服务器安全狗端口设置