文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中如何实现简单人脸识别的示例

2023-06-14 08:06

关注

这篇文章给大家分享的是有关Python中如何实现简单人脸识别的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、库介绍

opencv,face_recognition,numpy,以及dlib

注意:
安装opencv速度可能过慢,需要更换国内镜像源。

二、库安装

pip install opencv-pythonpip install face_recognitionpip 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-8import dlibimport cv2import face_recognitionimport 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中如何实现简单人脸识别的示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯