opencv之人脸识别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv之人脸识别相关的知识,希望对你有一定的参考价值。

最近在做一个类似于智能广告投放的项目,简单思路是利用opencv获取摄像头图像,然后调用接口或利用其他一些离线模型进行人脸属性识别,进而投放广告。本篇先简单介绍利用opecv进行人脸识别。

# -*- coding: utf-8 -*-

import cv2

cascPath = """C:\Users\Administrator\Downloads\opencv\sources
\data\haarcascades\haarcascade_frontalface_alt2.xml""" #分类器位置,这里改为你自己的位置
faceCascade = cv2.CascadeClassifier(cascPath) #定义分类器

# 打开视频捕获设备
video_capture = cv2.VideoCapture(0) 
while True:
    if not video_capture.isOpened():
        print(‘Unable to load camera.‘)
        pass

    # 读视频帧
    ret, frame = video_capture.read() ##读取一桢图像,前一个返回值是是否成功,后一个返回值是图像本身

    # 转为灰度图像
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 调用分类器进行人脸检测
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        #flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    # 画矩形框
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    #cv2.rectangle五个参数,图片名称、两个对角点坐标、颜色数组、线宽与直线只有一点不同就是输入的两坐标点不是起点和终点而是对角线的起点和终点。


    # 显示视频
    cv2.imshow(‘Video‘, frame)


    if cv2.waitKey(1) & 0xFF == ord(‘q‘):
        break


# 关闭摄像头设备
video_capture.release()

# 关闭所有窗口
cv2.destroyAllWindows()

以上是关于opencv之人脸识别的主要内容,如果未能解决你的问题,请参考以下文章

人脸识别《一》opencv人脸识别之人脸检测

opencv之人脸识别

ROS2之OpenCV人脸识别foxy~galactic~humble

人脸识别《一》opencv人脸识别之预处理

人脸识别《一》opencv人脸识别之收集人脸并学习

在 Python 多处理进程中运行较慢的 OpenCV 代码片段