人脸识别

Eric讨论 | 贡献2024年7月20日 (六) 10:36的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

人脸识别(Facial recognition),

简介

时间轴

快速入门

使用Python语言,通过OpenCV提供的Haar级联分类器,人脸检测,只支持正面人脸,不能遮挡。

import cv2

# 加载预训练的人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 打开摄像头
cap = cv2.VideoCapture(0)

while True:
    # 读取摄像头帧
    ret, frame = cap.read()
    
    # 转换为灰度图像
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    
    # 在检测到的人脸周围绘制矩形
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
    
    # 显示结果
    cv2.imshow('Face Detection', frame)
    
    # 按'q'退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()

软件

开源项目

名称 描述
OpenCV 简单易用,一个开源的计算机视觉库,可以实时图像处理,识别。支持多种编程语言。
Haar Cascade人脸检测:正脸,不能遮挡。
DNN 人脸检测:OpenCV3.3版本后支持。
dlib 是一个流行的C++库,包含了许多的机器学习算法,也有Python绑定。
face_recognition 基于dlib构建的Python库。
DeepFace
InsightFace

资源

网站

文章