Python如何实现基于Dlib的人脸识别系统

  介绍

这篇文章将为大家详细讲解有关Python如何实现基于Dlib的人脸识别系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python有哪些常用库

Python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8。ipyhton等。

人脸识别系统的实现流程与之前是一样的,只是这里我们借助了dlib和face_recognition这两个库来实现.face_recognition是对dlib库的包装,使对dlib的使用更方便,所以首先要安装这2个库。

pip3  install  dlib   pip3  install  face_recognition

然后,还要安装imutils库

, pip3  install  imutils

我们看一下项目的目录结构:

。   ├──数据集   │,,,├──,alan_grant  [22, entries  exceeds  filelimit,, not  opening  dir)   │,,,├──,claire_dearing  [53, entries  exceeds  filelimit,, not  opening  dir)   │,,,├──,ellie_sattler  [31, entries  exceeds  filelimit,, not  opening  dir)   │,,,├──,ian_malcolm  [41, entries  exceeds  filelimit,, not  opening  dir)   │,,,├──,john_hammond  [36, entries  exceeds  filelimit,, not  opening  dir)   │,,,└──,owen_grady  [35, entries  exceeds  filelimit,, not  opening  dir)   ├──,例子   │,,,├──,example_01.png   │,,,├──,example_02.png   │,,,└──,example_03.png   ├──输出   │,,,├──,lunch_scene_output.avi   │,,,└──,webcam_face_recognition_output.avi   ├──,视频   │,,,└──,lunch_scene.mp4   ├──encode_faces.py   ├──encodings.pickle   ├──recognize_faces_image.py   ├──recognize_faces_video_file.py   ├──recognize_faces_video.py   └──search_bing_api.py   ,   10,目录,,12,文件

首先,提取128维的人脸嵌入:

命令如下:

python3  encode_faces.py ——dataset  dataset ——encodings  encodings.pickle  -d 猪

记住:如果你的电脑内存不够大,请使用猪模型进行人脸检测,如果内存够大,可以使用cnn神经网络进行人脸检测。

看代码:

#,使用   #,python  encode_faces.py ——dataset  dataset ——encodings  encodings.pickle   ,   #,import 从而,necessary 包   得到imutils  import 路径   import  face_recognition   import  argparse   import 泡菜   import  cv2   import 操作系统   ,   #,construct 从而,argument  parser 以及parse 从而参数   时间=ap  argparse.ArgumentParser ()   ap.add_argument(“我,“——dataset",,需要=True,   帮助=皃ath 过多;input  directory  of  faces  +, images")   ap.add_argument (“-e",,“——encodings",,需要=True,   帮助=皃ath 过多;serialized  db  of  facial  encodings")   ap.add_argument (“-d",,“——detection-method",,=str,类型,默认=癶og",   帮助=癴ace  detection  model 用使用:,either “猪”,或是“cnn”“)   时间=args  var (ap.parse_args ())   ,   #,grab 从而,paths 用,input  images  our 拷贝数据集   print(“[信息],quantifying 面临…“)   时间=imagePaths 列表(paths.list_images (args (“dataset")))   ,   #,initialize 从而,list  of  known  encodings 以及known 名字   时间=knownEncodings  []   时间=knownNames  []   ,   #,loop 配套;从而image 路径   for (我,imagePath),拷贝列举(imagePaths):   #,extract 从而,person  name 得到,image 路径   print(“[信息],processing  image  {}/{}“.format(小姐:+,- 1,   len (imagePaths)))   时间=name  imagePath.split (os.path.sep) [2]   ,   #,load 从而,input  image 以及convert  it 得到RGB  (OpenCV 排序)   #,用dlib  ordering  (RGB)   时间=image  cv2.imread (imagePath)   rgb =, cv2.cvtColor(图片,,cv2.COLOR_BGR2RGB)   ,   #,detect 从而;(x, y) -coordinates  of 从而bounding 盒子   #,corresponding 用each  face 拷贝,input 形象   时间=boxes  face_recognition.face_locations (rgb,   模型=args (“detection_method"))   ,   #,compute 从而,facial  embedding  for 从而脸   时间=encodings  face_recognition.face_encodings (rgb,,盒子)   ,   #,loop 配套,并编码   for  encoding 拷贝;编码:   #,add  each  encoding  +, name 用our  set  of  known  names    #,编码   knownEncodings.append(编码)   knownNames.append(名字)   ,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python如何实现基于Dlib的人脸识别系统