Python3利用face_recognition实现人脸识别的方法

  

  

之前实践了下脸+ +在线人脸识别版本,这回做一下离线版本.github上面有关于face_recognition的相关资料,本人只是做个搬运工,对其中的一些内容进行搬运,对其中一些例子进行实现。

  


  

  

face_recognition是一个强大,简单,易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取,识别,操作人脸。本项目的人脸识别是基于业内领先开的c++源库dlib中的深度学习模型,用标记的脸在野外人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。

  

(关于兼容树莓派,以后有板子了再做一下)

  

  

https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md
  https://face-recognition.readthedocs.io/en/latest/face_recognition.html

  

  
      <李> ubuntu16.04(其他环境的安装可以参考第一个链接,官方有说明)   <李> pycharm(可忽略,怎么舒服怎么来)   <李> python3李   <李> opencv(我的是4.1.2,三点几的版本应该也一样)   
  

实际上只需要安装face_recognition,当然,没有opencv的也需要安装一下opencv

        pip3安装face_recognition      

  

由于需要做一些图片的比对,因此需要准备一些图片,本文图片取自以下链接

  https://www.zhihu.com/question/314169580/answer/872770507

  

  

官方还有提供命令行的操作(这个没去做),本文不做这个,我们只要是要在python中用face_recognition,因此定位到这一块。
  

  

 Python3利用face_recognition实现人脸识别的方法”> <br/>
  </p>
  <p>这个api文档地址就是上面的第二个链接。进去之后可以看到:</p>
  <p> <img src=

  

<强> part1。识别图片中的人是谁

  

代码

        # part1   #识别图片中的人是谁   进口face_recognition   known_image=face_recognition.load_image_file (“lyf1.jpg”)   unknown_image=face_recognition.load_image_file (“lyf2.jpg”)      lyf_encoding=face_recognition.face_encodings (known_image) [0]   unknown_encoding=face_recognition.face_encodings (unknown_image) [0]      结果=face_recognition.compare_faces ([lyf_encoding], unknown_encoding)   #真/假的列表值指示这known_face_encodings匹配编码检查      print(类型(结果))   打印(结果)      如果结果[0]==True:   打印(“是的”)   其他:   打印(“不”)      

结果

  
  

& lt;类的列表在
  (真正的)
  是的

     

<强>第二部分。从图片中找到人脸

  

代码

        # part2   #从图片中找到人脸(定位人脸位置)      进口face_recognition   进口cv2      形象=face_recognition.load_image_file (“lyf1.jpg”)      face_locations_useCNN=face_recognition.face_locations(图片、模型=癱nn”)   使用#模型——人脸检测模型。“猪”是不准确但更快的alt=" Python3利用face_recognition实现人脸识别的方法">

  

<强> part3。找到人脸并将其裁剪打印出来(使用cnn定位人脸)

  

代码

        # part3   #找到人脸并将其裁剪打印出来(使用cnn定位人脸)      从公益诉讼导入图像   进口face_recognition      # jpg文件加载到一个numpy数组   形象=face_recognition.load_image_file (“lyf1.jpg”)      face_locations=face_recognition。face_locations(形象,number_of_times_to_upsample=0,模型=癱nn”)      print(“我发现{}的脸在这张照片(s)。“.format (len (face_locations)))      在face_locations face_location:   上,下,左=face_location   打印(“一脸位于像素位置:{},左:{},底部:{},右:{}”。格式(前、左、底部右))      face_image=图像(上,下,左:对)   pil_image=Image.fromarray (face_image)   pil_image.show ()      

Python3利用face_recognition实现人脸识别的方法