PyTorch人脸检测

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客

人脸检测解决的问题是确定一幅图上有没有人脸,而人脸识别解决的问题是这张脸是谁的。可以说人脸检测是人脸识别的前期工作。这里介绍Dlib库,它提供了Python接口,里面有人脸检测器,有训练好的人脸关键点检测器。

安装OpenCV,可以通过下载OpenCV的.whl文件,使用pip install opencv_python-3.4.0-cp36-

cp36m-win_amd64.whl命令来安装。如果import cv2报错ImportError: numpy.core.multiarray failed to import,出现这个问题的解决方法是下载最新版本的NumPy,解决方法是输入命令pip install numpy ++-++ --upgrade,结果如图11-3所示表示成功解决。

图11-3

进行实时图像捕获,首先需要学点OpenCV的基础知识,起码知道如何从摄像头获取当前拍到的图像。本项目使用Dlib库,Dlib库提供的功能十分丰富,它提供了Python接口,里面有人脸检测器,也有训练好的人脸关键点检测器。

程序代码如下:

复制代码
##########实时检测视频中的人脸###############################
import cv2
import dlib
predictor_path = ".\shape_predictor_68_face_landmarks.dat"

#使用dlib自带的frontal_face_detector作为人脸检测器
detector = dlib.get_frontal_face_detector()
# 使用官方提供的模型构建特征提取器
predictor = dlib.shape_predictor(predictor_path)

#初始化窗口
win = dlib.image_window()
cap = cv2.VideoCapture(0) 	#获取摄像头
while cap.isOpened():  		#读取摄像头的图像,函数 isOpened用于判断摄像头是否开启
    ok,cv_img = cap.read()  
    img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR) #转灰度化,简化图像信息
 
   # 与人脸检测程序相同,使用detector进行人脸检测,dets为返回的结果
    dets = detector(img, 0)
shapes =[]
if cv2.waitKey(1) & 0xFF == ord('q'):
    print("q pressed")
    break
else:
    # 使用enumerate 函数遍历序列中的元素以及它们的下标
    # 下标k即为人脸序号
    for k, d in enumerate(dets):
        # 使用predictor进行人脸关键点识别, shape为返回的结果 
        shape = predictor(img, d)
        #绘制特征点
        for index, pt in enumerate(shape.parts()):
            pt_pos = (pt.x, pt.y)
            cv2.circle(img, pt_pos, 1, (0,225, 0),2) #利用cv2.putText输出1-68
            font = cv2.FONT_HERSHEY_SIMPLEX
            cv2.putText(img, str(index+1),pt_pos,font,
                        0.3, (0, 0, 255), 1, cv2.LINE_AA)
    win.clear_overlay()
    win.set_image(img)
    if len(shapes)!= 0 :
        for i in range(len(shapes)):
            win.add_overlay(shapes[i])        
    win.add_overlay(dets)       

cap.release()
cv2.destroyAllWindows()  

运行结果如图11-4所示。

图11-4

《PyTorch深度学习与企业级项目实战(人工智能技术丛书)》(宋立桓,宋立林)【摘要 书评 试读】- 京东图书 (jd.com)

相关推荐
卓豪终端管理12 分钟前
如何安全地管理固定功能设备?
java·大数据·开发语言·网络·人工智能·安全
Sherlock Ma18 分钟前
基于LightRAG进行本地RAG部署(包括单卡多卡本地模型部署、调用阿里云或DeepSeekAPI的部署方法、RAG使用方法)
人工智能·阿里云·大模型·aigc·检索增强·rag·deepseek
User_芊芊君子21 分钟前
从0到1:让AI赋能计算机的全流程实践指南
人工智能
友恒写实27 分钟前
Python面试官:你来解释一下协程的实现原理
后端·python
人工智能交叉前沿技术,31 分钟前
机器学习在催化剂设计中的应用理论加实操
人工智能·机器学习
声网32 分钟前
Edge 浏览器推出 Copilot Vision:免费实时解析屏幕内容;Aqua Voice:极速 AI 语音输入工具丨日报
人工智能
苏牧keio35 分钟前
3 Python语法快速入门(基础篇)
python
努力犯错玩AI36 分钟前
16.4B参数仅激活2.8B!Kimi-VL-A3B开源:长文本、多模态、低成本的AI全能选手
人工智能·后端·开源
Watermelo61742 分钟前
《Science》观点解读:AI无法创造真正的智能体(AI Agent)
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·数据挖掘
suke1 小时前
企业级部署实操: SGLang 多节点集群部署 Qwen 系列大模型
人工智能·ai编程