美文网首页
python+opencv检测人脸并且判断表情

python+opencv检测人脸并且判断表情

作者: 美雨知春 | 来源:发表于2020-11-24 17:44 被阅读0次

opencv检测人脸
人脸检测需要对人脸做一个标准特征,然后对于输入的每一帧图像计算这些特征,标准特征和人脸实时特征进行比对,根据概率输出人脸及其表情,这也是人工智能的初衷
opencv里已经对人脸特征做了一个标准特征文件
人脸特征: "/Python/Python39/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml"
眼睛特征: "
/Python/Python39/Lib/site-packages/cv2/data/haarcascade_eye.xml"
微笑特征: "***/Python/Python39/Lib/site-packages/cv2/data/haarcascade_smile.xml"
利用这些特征文件很快就能检测到人脸
代码如下:

import cv2
import numpy as np


def get_image(path):  # 获取图片
    img = cv2.imread(path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    return img, gray


def walk():
    img_path = "D://dev//python//img/lena512color.tiff"
    save_path = "D://dev//python//img/lena512save.jpg"
    original_img, gray = get_image(img_path)
    cv2.equalizeHist(gray, gray)
    faceadd = "***/Python/Python39/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml"
    eyeadd = "***/Python/Python39/Lib/site-packages/cv2/data/haarcascade_eye.xml"
    smileadd = "***/Python/Python39/Lib/site-packages/cv2/data/haarcascade_smile.xml"

    face_detector = cv2.CascadeClassifier(faceadd)
    eye_detector = cv2.CascadeClassifier(eyeadd)
    smile_detector = cv2.CascadeClassifier(smileadd)
    faces = face_detector.detectMultiScale(gray, 1.15, 5)
    cv2.imshow("face_img", original_img)
    for x, y, w, h in faces:
        cv2.rectangle(original_img, (x, y), (x + w, y + h), (0, 0, 255), 2)
        # 把脸单独拿出来检测脸
        face_img = gray[y:y + h, x:w + x]

        eyes = eye_detector.detectMultiScale(face_img, 1.3, 5, 0, (40, 40))
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(original_img, (x + ex, y + ey), (x + ex + ew, y + ey + eh), (255, 0, 0), 2)
            smile = smile_detector.detectMultiScale(face_img, 1.16, 35, 0, (25, 25))
            if (len(smile) >= 0):
                print("检测到微笑")
            cv2.putText(original_img, 'Smile', (x, y - 20), 3, 1.3, (0, 255, 0), 2)
    cv2.imshow('crop_img', original_img)
    cv2.waitKey(20171219)
    cv2.imwrite(save_path, original_img)


walk()

原始图像:


lena原始图像.PNG

处理后图像


识别人脸、眼睛、表情.PNG

相关文章

  • python+opencv检测人脸并且判断表情

    opencv检测人脸人脸检测需要对人脸做一个标准特征,然后对于输入的每一帧图像计算这些特征,标准特征和人脸实时特征...

  • python+opencv人脸检测

    环境配置:请参考下面我的文章: https://www.jianshu.com/p/86a32db2488b 这里...

  • Face数据集下载地址

    人脸公开数据集 人脸识别 人脸检测 人脸表情 人脸年龄 人脸性别 其他 1.PubFig: Public Figu...

  • 安卓OpenCV开发(二)人脸检测

    重点是人脸检测,检测,检测。 就是把人脸检测出来,不是识别,不是识别,不是识别。识别的意思,就是检测到人脸,并且通...

  • 人脸识别系统的技术原理

    人脸识别系统的技术原理 人脸识别技术包含三个部分: (1)人脸检测 面貌检测是指在动态的场景与复杂的背景中判断是否...

  • Keras实现人脸活体检测

    未经同意,不得转载 人脸活体检测(Face Anti-spoofing),在人脸识别前判断当前输入的人脸是否是真人...

  • 【技术综述】一文道尽“人脸数据集”

    今天,给大家送上一份大礼 没错,我就是喜欢写一些“一文道尽” 这一次我将从人脸检测,关键点检测,人脸识别,人脸表情...

  • MTCNN

      人脸任务总体上分为:人脸检测、人脸关键点检测、人脸判别、人脸识别、人脸聚类等。  作者认为人脸检测和人脸关键点...

  • Android人脸表情检测开源方案

    实现检测人脸功能的控件(FaceDetector.Face 需要手机的GooglePlay Service支持,不...

  • opencv之人脸检测项目实战(二)

    自我介绍 目录 一、人脸检测整体架构1.1 什么是人脸检测?1.2 人脸检测的应用场景1.3 人脸检测核心架构二、...

网友评论

      本文标题:python+opencv检测人脸并且判断表情

      本文链接:https://www.haomeiwen.com/subject/hxqwiktx.html