介绍
这篇文章将为大家详细讲解有关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 nullPython如何实现基于Dlib的人脸识别系统