DeepFace人脸检测(python实现)

这篇具有很好参考价值的文章主要介绍了DeepFace人脸检测(python实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Opencv人脸检测

(1)基于级联分类器的人脸检测:

https://mydreamambitious.blog.csdn.net/article/details/124851743

(2)训练自己的级联分类器:

https://mydreamambitious.blog.csdn.net/article/details/124955149

(3)基于dlib人脸检测

https://mydreamambitious.blog.csdn.net/article/details/123535760


2.MTCNN人脸检测

https://mydreamambitious.blog.csdn.net/article/details/125249753


3.DeepFace人脸检测

下载:pip install deepface -i https://pypi.tuna.tsinghua.edu.cn/simple

基于deepFace框架的人脸识别编程
deepFace是轻量级人脸识别和面部属性分析(年龄、性别、情感、种族)框架。
集成了人脸识别领域取得过历史最好成绩的几个有名的模型,包括:
VGG-Face、Google FaceNet、OpenFace、Facebook DeepFace、DeepID、ArcFace、Dlib


4.DeepFace中模型性能的比较

DeepFace人脸检测(python实现)

一般情况下,根据LFW数据集上的实验结果,FaceNet, VGG-Face, ArcFace 和 Dlib 总体性能优于: OpenFace, DeepFace 和 DeepID。
FaceNet (/w 512d) :99.65%
ArcFace : 99.40%
Dlib : 99.38%
VGG-Face : 98.78%
OpenFace : 93.80%
人类水平: 97.53%


5.实现过程

(1)导入库

import os
import cv2
import pickle
import numpy as np
from deepface import DeepFace

(2)查看DeepFace中的情况

#查看DeepFace包含的特征点
def Print_DeepFace():
    print(dir(DeepFace))

(3)两张图片进行验证是否为同一个人

模型可以使用:Facenet, OpenFace, DeepFace, DeepID,Dlib, ArcFace or Ensemble,VGG-Face;其中VGG-Face是默认设置模型

#验证两个人是否为同一个人
def VerifyPerson(img_path1='images/zhang.jpg',img_path2='images/wang.jpg'):
    img1=cv2.imread(img_path1)
    img2=cv2.imread(img_path2)

    #验证是否相似
    # 可以使用的模型
    #model_name (string): VGG-Face,
    # Facenet, OpenFace, DeepFace, DeepID,Dlib, ArcFace or Ensemble
    compare=DeepFace.verify(img1_path=img1,img2_path=img2,model_name='VGG-Face')
    print(compare)
    print('是否相似: {}'.format(compare['verified']))

    img1=cv2.resize(src=img1,dsize=(450,450))
    img2=cv2.resize(src=img2,dsize=(450,450))
    cv2.imshow('img1',img1)
    cv2.imshow('img2',img2)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

(4)对人的特征进行检测

其中包括人的表情,年龄,性别,种族等。

#对人的特征进行检测
def FaceEmotion(img_path='images/li.png'):
    img = cv2.imread(img_path)

    #检测人脸的表情
    emotion = DeepFace.analyze(img_path=img_path, actions = ['emotion', 'age', 'gender', 'race'])
    for item in emotion.items():
        print(item)
    print(emotion['emotion'])
    img = cv2.resize(src=img, dsize=(450, 450))

    x0=emotion['region']['x']
    y0=emotion['region']['y']
    w=emotion['region']['w']
    h=emotion['region']['h']
    cv2.rectangle(img=img,pt1=(x0,y0),pt2=(x0+w,y0+h),color=(0,255,0),thickness=2)

    cv2.imshow('img', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

DeepFace人脸检测(python实现)

(5)人脸的识别

img_path:是需要查找的人脸图片
model_name:模型名称
db_path:图片库的位置
distance_metric:检测使用的方法:如余弦相似度,欧式距离
model:在每次调用find函数时都会建立人脸识别模型。您可以通过预先构建的模型来加速功能:model = DeepFace.build_model('VGG-Face'),这里的模型名称必须和model_name相同
enforce_detection:如果无法检测到人脸,该函数将引发异常。如果不想获得异常,请将此设置为True。这对于低分辨率图像可能很方便
detector_backend:retinaface, mtcnn, opencv, ssd or dlib
prog_bar:是否设置进度条

#从图片文件夹下查找指定的人脸图片
def FindFace(img_path='images/zhang.jpg'):
   
    model=DeepFace.build_model('VGG-Face')
    findResult=DeepFace.find(img_path=img_path,model_name='Facenet',db_path='images',model=model)
    print(findResult)

之后会产生一个.pkl文件,这个文件在自己设置的图片库位置:db_path:图片库的位置
DeepFace人脸检测(python实现)

(6)流媒体和实时人脸检测

dp_path:人脸库的路径,使用相同的.jpg文件
time_threshold:表示多长时间时间显示图片
frame_threshold:聚焦人脸需要多少帧
detector_backend:后端采用的检测方式,默认是opencv,还有其他:mtcnn,ssd,dlib, retinaface
distance_metric:检测使用的方法:如余弦相似度,欧式距离
enable_facial_analysis:人脸分析,默认为True;如果为false的话,仅仅对人脸进行识别
source:设置为0,表示默认打开摄像头进行检测,或者使用视频的路径

#流媒体和实时人脸检测
def DeepFaceStream():
    DeepFace.stream(db_path='images',model_name='VGG-Face',time_threshold=1,frame_threshold=2)

(7)读取.pkl文件

#读取.pkl文件
def readPKL(PKL_Name='images/representations_facenet.pkl'):
    fp=open(PKL_Name,'rb')
    content=pickle.load(fp)
    print(content)

(8)提取特征向量

#提取特征向量
def Feature(img_path='images/zhang.jpg'):
    model=DeepFace.build_model('Facenet')
    features=DeepFace.represent(img_path=img_path,model_name='Facenet',model=model)
    print(features)

DeepFace人脸检测(python实现)文章来源地址https://www.toymoban.com/news/detail-446238.html

if __name__ == '__main__':
    print('PyCharm')
    # Print_DeepFace()
    # VerifyPerson()
    # FaceEmotion()
    # DeepFaceStream()
    # FindFace()
    # readPKL()
    Feature()

到了这里,关于DeepFace人脸检测(python实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速通过pycharm搭建python+opencv实现人脸检测

      首先导入opencv 1代码实现效果,在界面下显示所要显示的图片 在同一目录下存放显示的图片 img = cv.imread(\\\'face1.jpg\\\')函数字符串变量填写存放照片的名字 为了让人眼看到照片所以使用cv.waitKey(0),起到delay的作用 2代码实现效果对图片进行灰度转换 灰度转换可以让计算机更轻易对

    2024年02月16日
    浏览(34)
  • 使用Python和OpenCV实现实时人脸检测并保存截图

    在本篇博客中,我们将使用Python和OpenCV库实现一个实时人脸检测的小项目。我们将利用OpenCV中的Haar级联分类器来检测摄像头捕获的图像中的人脸。 通过摄像头实时捕获视频流。 使用Haar级联分类器检测视频帧中的人脸。 在检测到的人脸周围绘制矩形框。 实时显示检测结果。

    2024年02月11日
    浏览(40)
  • OpenCV+FFmpeg 实现人脸检测Rtmp直播推流(Python快速实现)

    windows平台笔记本摄像头视频采集、人脸识别,识别后将视频推流到RTMP流媒体服务器,在任意客户端可以进行RTMP拉流播放。 效果如图: 使用VLC播放器进行拉流。 需要先安装OpenCV的python包以及FFmpeg。 对于ffmpeg有两种调用方式,但这两种方式都需要先安装ffmpeg,调用的具体区别

    2024年02月12日
    浏览(42)
  • 基于opencv与mediapipe的面部跟踪(人脸检测追踪)python代码实现

            面部跟踪主要是从图像或视频中检测出人脸并输出人脸位置及其大小等有效信息,并在后续帧中继续捕获人脸的位置及其大小等信息,实时跟踪人脸。此技术可用于海关、机场、视频会议、拍照对焦、面部打码等业务场景。(与人脸识别是不同范畴)         本

    2024年01月17日
    浏览(73)
  • Python|OpenCV-实现自动“追踪并检测”视频中的人脸识别(14)

    前言 本文是该专栏的第15篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在本专栏之前,笔者在文章《Python|OpenCV-实现检测人脸以及性别检测(12)》中,有详细介绍通过OpenCV实现对图像中的人物人脸进行性别以及人脸检测,对此领域感兴趣的同学,可直接点击翻阅

    2024年04月14日
    浏览(42)
  • 毕业设计——基于python-contrib-opencv的人脸识别及检测系统设计与实现(实现电脑端摄像头读取视频,实时人脸录入,人脸检测,人脸识别等功能)

    如需完整源码,可以联系博主获取 基于python-contrib-opencv,dlib,pyqt5。能够实现电脑端摄像头读取视频,实时人脸录入,人脸检测,人脸识别等功能。 一、引言 随着计算机视觉和人工智能技术的不断发展,人脸识别技术已成为智能安防、身份验证等领域的关键技术之一。而基于

    2024年04月12日
    浏览(55)
  • OpenCV、Dlib 和深度学习中的各种人脸检测方法与性能比较--包含C++ 和 Python 代码实现

    文末附基于Python和C++两种方式实现的测试代码下载链接 在本教程中,我们将讨论 OpenCV、Dlib 和深度学习中的各种人脸检测方法,并对这些方法进行定量比较。我们将为以下面部检测器共享 C++ 和 Python 代码: OpenCV 中的 Haar 级联人脸检测器 OpenCV 中基于深度学习的人脸检测器。

    2024年02月10日
    浏览(48)
  • 人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)

    import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument(“-i”, “–image”, required=True, help=“path to input image”) ap.add_argument(“-p”, “–prototxt”, required=True, help=“path to Caffe ‘deploy’ prototxt file”) ap.add_argument(“-m”, “–model”, required=True, help=“path to Caffe pre-trained model”)

    2024年04月16日
    浏览(58)
  • 【OpenCV-Python】——Haar人脸检测&深度学习人脸检测&EigenFaces/FisherFaces/LBPH人脸识别

    目录 前言: 1、人脸检测 1.1 基于Haar的人脸检测 1.2 基于深度学习的人脸检测

    2024年02月05日
    浏览(54)
  • 基于opencv的简单人脸检测(python)

            OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由一系列的C函数和少量C++类构成,同时提供Python、Java和MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。         在windows系统下,建议使用python的包安

    2024年01月22日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包