python 人脸识别_Python实现人脸识别

本文介绍了使用Python的人脸识别库face_recognition进行人脸识别的过程,包括环境配置、从本地图片和摄像头进行人脸检测、以及人脸比对的步骤。通过该库,作者成功实现了人脸识别功能。
摘要由CSDN通过智能技术生成

今天配置了一天的开发环境,终于写了一套人脸识别的程序c0ee41f1433e555ea7184032fac545e5.pngc0ee41f1433e555ea7184032fac545e5.pngc0ee41f1433e555ea7184032fac545e5.pngebfee56b2839bb036bdcc2181b12b8cf.png
    用的库是face_recognition,这是一款免费、开源、实时、离线的Python人脸识别库。Github网址为https://github.com/ageitgey/face_recognition。

    我电脑上安装了Anaconda,dlib会自动获取。Windows系统安装dlib可直接在网站https://pypi.org/simple/dlib/下载对应版本的whl文件,用pip安装,简单高效。

852b0367596d6a054d3d455cd8c6eb49.png

c7f104e91e5ea7cff495249013ed45a0.png

#读取照片并圈出人脸import numpy as npimport cv2import face_recognitionimage = face_recognition.load_image_file("mypic.jpg")#return (A,B,C,D)(top, right, bottom, left) (D,A,B,C)face_locations = face_recognition.face_locations(image)print(face_locations)image1=image*1image1[:,:,0]=image[:,:,2]image1[:,:,2]=image[:,:,0]for (A,B,C,D) in face_locations:    cv2.rectangle(image1,(D,A),(B,C),(0,255,0),2)cv2.imshow('image',image1)cv2.waitKey(0)cv2.destroyAllWindows()

(1)从本地读图片并使用face_recognition和opencv识别人脸并标注显示

#摄像头读取并识别人脸import numpy as npimport cv2 import face_recognitioncap=cv2.VideoCapture(0)while True:    ret,frame=cap.read() #return (A,B,C,D)(top, right, bottom, left) (D,A,B,C)    face_locations = face_recognition.face_locations(frame)     for (A,B,C,D) in face_locations:        cv2.rectangle(frame,(D,A),(B,C),(0,255,0),2)    cv2.imshow('image',frame)    if cv2.waitKey(1)& 0xFF == ord('q'):        breakcap.release()cv2.destroyAllWindows()

(2)从摄像头读取图像并显示

#人脸比对,单对单的比对,和多对单的比对import numpy as npimport cv2import face_recognitionzhujun=face_recognition.face_encodings(face_recognition.load_image_file('zhujun.jpg'))dongqing=face_recognition.face_encodings(face_recognition.load_image_file('dongqing.jpg'))#ss=face_recognition.compare_faces([dongqing,lisisi],zhujun)#hezhao=face_recognition.face_encodings(face_recognition.load_image_file('mypic.jpg'))#ss=face_recognition.compare_faces(hezhao,lisisi,0.5)hezhao=face_recognition.load_image_file('mypic.jpg') locations=face_recognition.face_locations(hezhao)for [A,B,C,D] in locations:    face=hezhao[A:C,D:B,:]    faceencoding=face_recognition.face_encodings(face)    ss=face_recognition.compare_faces(faceencoding,zhujun[0],0.5)    print(ss)

(3)人脸比对

200d68dac2ea3bfe3220b86cf8e8ec66.png

最后的实现

哈哈哈

有点酷

留言区

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值