之前实践了下脸+ +在线人脸识别版本,这回做一下离线版本.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,因此定位到这一块。
<强> 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实现人脸识别的方法