• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python三十行代码实现简单人脸识别的示例代码

    一、库介绍

    opencv,face_recognition,numpy,以及dlib

    注意:
    安装opencv速度可能过慢,需要更换国内镜像源,参考:https://www.jb51.net/article/208359.htm
    附带Python3.7,64位版本 dlib whl下载路径:dlib-19_jb51.rar

    二、库安装

    pip install opencv-python
    pip install face_recognition
    pip install numpy

    dlib库需进入whl文件路径下安装

    pip install dlib-19.17.99-cp37-cp37m-win_amd64.whl

    三、face_recognition库简单介绍

    face_recognition的load_image_file方法会加载图片,并返回一个ndarray类型的数据

    face_path = "C://Users//25103//Desktop//Python人脸识别//face//徐先生.jpg"
    image = face_recognition.load_image_file(face_path)
    

    face_recognition的face_encoding方法,可从返回的ndarray类型数据中提取人脸特征,可同时提取多个特征,返回值为列表类型

    face_encoding = face_recognition.face_encodings(image)[0]
    

    face_recognition的face_location方法可以获取图片中所有人脸的位置,其返回值为一个列表

    face_locations = face_recognition.face_locations(rgb_frame)
    

    四、代码实现以及注释讲解

    # coding = utf-8
    import dlib
    import cv2
    import face_recognition
    import os
    
    # 创建视频对象
    video_capture = cv2.VideoCapture(0)
    
    # 加载需要识别的人脸图片(这张图片需要仅有一张脸)
    # face_recognition的load_image_file方法会加载图片,并返回一个ndarray类型的数据
    # ndarray类型就是NumPy的数组类型,其中的元素类型可以一致也可以不一致
    face_path = "C://Users//25103//Desktop//Python人脸识别//face//徐先生.jpg"
    image = face_recognition.load_image_file(face_path)
    
    # face_recognition的face_encoding方法,可从返回的ndarray类型数据中提取人脸特征,可同时提取多个特征,返回值为列表类型
    # 因为照片中只有一个人脸,所以我们取列表的第一个值
    face_encoding = face_recognition.face_encodings(image)[0]
    
    while True:
     # 从视频对象中读取一帧照片
     ret,frame = video_capture.read()
     # 将照片缩小,加快处理速度,这里将其缩小为原图的1/4
     # frame = cv2.rectangle(frame,(0,0),fx=0.25,fy=0.25)
     # 因为cv2用的是BGR色彩,我们组要将其转化为RGB进行处理
     rgb_frame = frame[:,:,::-1] # 列表转置操作
    
     # face_recognition的face_location方法可以获取图片中所有人脸的位置,其返回值为一个列表
     face_locations = face_recognition.face_locations(rgb_frame)
     print("共从视频中找到了{}张人脸".format(len(face_locations)))
    
     # 获取视频中所有人脸的特征
     face_encodings = face_recognition.face_encodings(rgb_frame,face_locations)
    
     for face in face_encodings:
     # 比较两个特征值——encoding1与encoding2,匹配返回True,否则返回False。tolerance越低,顾名思义,容错率越低,返回值为列表类型
     match = face_recognition.compare_faces([face_encoding],face,tolerance=0.4)
     name = "不认识的人"
    
     if match[0]:
      # face为图片名称
      name = os.path.basename(face_path[0:-4])
     print("找到了{}".format(name))
    
    

    到此这篇关于Python三十行代码实现简单人脸识别的示例代码的文章就介绍到这了,更多相关Python 简单人脸识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python opencv人脸识别考勤系统的完整源码
    • 10分钟学会使用python实现人脸识别(附源码)
    • 用Python实现简单的人脸识别功能步骤详解
    • python基于opencv实现人脸识别
    • python实现图片,视频人脸识别(dlib版)
    • python实现图片,视频人脸识别(opencv版)
    • python调用百度API实现人脸识别
    • 使用python-cv2实现Harr+Adaboost人脸识别的示例
    • python3.8动态人脸识别的实现示例
    • Python3 利用face_recognition实现人脸识别的方法
    • python实现的人脸识别打卡系统
    上一篇:python匿名函数的实例用法
    下一篇:Pandas剔除混合数据中非数字的数据操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python三十行代码实现简单人脸识别的示例代码 Python,三十,行,代码,实现,