项目大体思路是这样的:先准备俩张图片,提取特征向量然后存储起来,让后拿第三章人脸图片来检测,查看是否匹配,匹配则输出名字和图像。

主要方法:

demo:

# 1、加载库
import face_recognition
import cv2
import numpy as np
# 2、加载图片
fei =cv2.imread("../images/liyifei3.jpg")
en = cv2.imread("../images/chenqiaoen.jpg")
# 3、BGR转换RGB(逆序)
fei_RGB = fei[:,:,::-1]
en_RGB = en[:,:,::-1]
# 4、检测人脸
fei_face = face_recognition.face_locations(fei_RGB)
en_face = face_recognition.face_locations(en_RGB)
# 5、人脸特征编码
fei_encoding = face_recognition.face_encodings(fei_RGB,fei_face)[0] #0表示第一张人脸
en_encoding = face_recognition.face_encodings(en_RGB,en_face)[0]
# 6、把所有人脸组合在一起,当数据库使用
encodings = [fei_encoding,en_encoding]
names = ["liyifei","chenqiaoen"]
# 7、打开摄像头,读取视频流
cap = cv2.VideoCapture(0)if not cap.isOpen():raise IOError("Camera Rrror")
while True:ret,frame = cap.read()#调整窗口大小为一半frame = cv2.resize(frame,(0,0),fx=0.5,fy=0.5)# 8、BRG转换RGBframe_RGB = frame[:,:,::-1]# 9、读取每一帧,人脸检测faces_locations = face_recognition.face_locations(frame_RGB)# 10、人脸特征编码facces_locations = face_recognition.face_encodings(frame_RGB,faces_locations)# 11、与数据库中的所有人脸进行匹配(拿到对应的特征和编码)for (top,right,bottom,left),face_encoding in zip(faces_locations,faces_locations):# 12、进行匹配matches = face_recognition.compare_faces(encodings,face_encoding)# 13、计算俩张图片的欧氏距离distance = face_recognition.face_distance(encodings,face_encoding)min_distance = np.argmin(distance) #0,1,2# 14、判断距离,很近是同一个人,如果很远就不是同一个人,获取名字,匹配或取名字,不匹配返货unkonwname = "Unknown"if matches[min_distance]:name = names[min_distance]# 15、人脸画矩形框和名称cv2.rectangle(frame,(left,top),(top,right),(0,255,0),3)# 16、绘制显示对应人脸的名字cv2.rectangle(frame,(left,bottom-30),(right,bottom),(0,0,255),3)# 17、显示名字cv2.putText(frame,name,(left+10,bottom-10),cv2.FONT_HERSHEY_COMPLEX,1,(255,255,255),1)#判断是q按键,退出cv2.imshow("face recoginition",frame)if cv2.waitKey(1) & 0xFF == ord('q'):break
# 18、释放资源
cap.release()
cv2.destroyAllWindows()

face_recognition库实现人脸识别demo相关推荐

  1. 【人脸识别(三)】:使用face_recognition库实现人脸识别,python实现

    人脸识别(一):Ubuntu Python安装dlib C++ library 人脸识别(二):如何使用 dlib 实现简单的人脸识别功能 人脸识别(四):人脸识别理论.原理.分类.概括,请针对性学习 ...

  2. python人脸识别库_基于Python的face_recognition库实现人脸识别

    Python Python开发 Python语言 基于Python的face_recognition库实现人脸识别 一.face_recognition库简介 face_recognition是Pyt ...

  3. 【安卓学习之第三方库】 人脸识别SDK

    █ [安卓学习之第三方库] 人脸识别 █ 相关文章: - ● [安卓学习之第三方库]库的使用2-jar类库的使用(以dom4j为例)和升级(以极光推送为例) ● [安卓学习之第三方库] 消息推送之极光 ...

  4. Android基于虹软(ArcSoft)实现从0到1的人脸识别demo

    Android基于虹软(ArcSoft)实现从0到1的人脸识别demo 1.在虹软的开发者中心创建一个自己的应用,将APP_ID与SDK_KEY记录下来,后面会用到.创建完后就可以下载SDK了. 2. ...

  5. 在Ubuntu 18.04上部署Intel OpenVINO Toolkit并使用CPU与iGPU运行官方人脸识别Demo

    本博客依据Intel OpenVINO Toolkit 官方资料,经博主亲自实践,踩雷排坑后记录分享. intel NCS & OpenVINO 交流QQ群:608483784 测试平台软件版 ...

  6. android 人脸识别demo

    Android 人脸识别 demo 可以使用 Google 的 Mobile Vision API 来实现.这是一个免费的.开源的库,可以帮助开发人员在应用程序中检测人脸.识别人脸.扫描条形码和二维码 ...

  7. PHP虹软人脸识别,虹软人脸识别demo使用教程

    最近在研究虹软家的arcface 人脸识别 demo,现在就给大家分享一下官方的demo 工程如何使用? 1.下载代码: git clone https://github.com/asdfqwrasd ...

  8. Android人脸识别Demo竖屏YUV方向调整和图片保存

    2019独角兽企业重金招聘Python工程师标准>>> 本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况. 1.首先可 ...

  9. python dlib opencv人脸识别准确度_基于dlib和opencv库的人脸识别

    基于dlib和opencv库的人脸识别 需下载68个特征点的人脸检测模型: http://dlib.net/files/ 文件名为shape_predictor_68_face_landmarks.d ...

最新文章

  1. 更换pip安装源头成阿里云或清华的
  2. 震惊!html文件注释也会影响运行代码!(werkzeug.routing.BuildError: Could not build url for endpoint)莫名其妙
  3. 【TensorFlow-windows】keras接口——ImageDataGenerator裁剪
  4. python curl 获取返回值_python获取系统命令的返回值 | curl in python
  5. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql
  6. android中的 listview控件,聊聊Android中的ListView控件
  7. 漫画:80 端口争夺战
  8. VScode怎么查看python源码
  9. YOLO1、YOLO2、YOLO3对比
  10. 高德地图导航SDK使用
  11. 利用 Google 搜索学术论文和资源的一些心得
  12. orangepizero编译ch934x驱动
  13. Android TextView设置下划线
  14. Linux 运维之路001
  15. 小程序开发外包需要注意哪些问题?
  16. Hexo-neat插件优化提升访问效率
  17. 设置按钮5秒后可以点击下一步||5秒后自动关闭网页
  18. 绕线画算法python_一种绕线画自动生成及加工的方法和设备与流程
  19. Citrix WI5.4 配置参数一
  20. 汽车与计算平台产业链

热门文章

  1. 计算机音乐数字乐谱未闻花名,secret base(未闻花名)半音阶口琴谱动漫歌曲谱 acg谱...
  2. 用计算机演银河系,科学家首次用计算机模拟出类银河星系
  3. iOS 动画专题(UIView二维形变动画与CAAnimation核心动画)
  4. 【逗老师带你学IT】PRTG HTTP API获取指定传感器流量图表图片
  5. 使用RKE搭建docker-k8s集群
  6. js双击会触发两次单击事件的解决方案
  7. 中控屏成智能家居新宠?
  8. C语言:十进制转换为二进制的数学方法
  9. C语言实现三子棋(九宫格)的游戏
  10. Linux查看日志和关闭、杀死进程命令