我是靠谱客的博主 细腻钢笔,最近开发中收集的这篇文章主要介绍人脸识别(摄像头)——基于face_recognition库1.需要用到的方法2.人脸识别的流程3.测试代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
1.需要用到的方法
2.人脸识别的流程
3.测试代码
1.需要用到的方法
官方指南参考:
face_recognition package — Face Recognition 1.4.0 documentation
2.人脸识别的流程
参考人脸识别——基于DLib库_Mr_Nobody17的博客-CSDN博客
照片准备:
(之前总是被人说像陈坤,2018年世界人工智能大会人脸识别的AI识别出像陈坤和雷军)
chunkun.jpg leijun.jpg
3.测试代码
# 1.加载库
import cv2
import numpy as np
import face_recognition
# 2.加载图片
chen=cv2.imread('chenkun.jpg')
lei=cv2.imread('leijun.jpg')
# 3.BGR转RGB
chen_RGB=chen[:,:,::-1]
lei_RGB=lei[:,:,::-1]
# 4.检测人脸
chen_face=face_recognition.face_locations(chen_RGB)
lei_face=face_recognition.face_locations(lei_RGB)
# 5.人脸特征编码
chen_encoding=face_recognition.face_encodings(chen_RGB,chen_face)[0]
lei_encoding=face_recognition.face_encodings(lei_RGB,lei_face)[0]
# 6.把所有人脸放在一起,当作数据库使用
encodings=[chen_encoding,lei_encoding]
names=['chen kun','lei jun']
# 7.打开摄像头,读取视频流
capture=cv2.VideoCapture(0)
if not capture.isOpened():
raise IOError('Camera Error!')
while True:
ret,frame=capture.read()
frame=cv2.resize(frame,None,fx=0.8,fy=0.8)
# 8.BGR转RGB
frame_RGB=frame[:,:,::-1]
# 9.人脸检测
faces_locations=face_recognition.face_locations(frame_RGB)
# 10.人脸特征编码
faces_encodings=face_recognition.face_encodings(frame_RGB,faces_locations)
# 11.与数据库中的所有人脸进行匹配
for (top,right,bottom,left),face_encoding in zip(faces_locations,faces_encodings):
# 12.进行匹配
matches = face_recognition.compare_faces(encodings,face_encoding)
# 13.计算距离
distances = face_recognition.face_distance(encodings,face_encoding)
min_distance_index=np.argmin(distances)
# 14.判断:如果匹配,获取名字
name='unknown'
if matches[min_distance_index]:
name=names[min_distance_index]
# 15.绘制人脸的矩形框
cv2.rectangle(frame,(left,top),(right,bottom),(0,0,255),2)
# 16.显示对应人脸的名字
cv2.putText(frame,name,(left+30,bottom-30),cv2.FONT_HERSHEY_COMPLEX,0.5,(255,0,0))
# 17.显示匹配值
cv2.putText(frame, str(distances[min_distance_index]), (left + 30, bottom), cv2.FONT_HERSHEY_COMPLEX, 0.5, (255, 0, 0))
# 18.显示整个效果
cv2.imshow('face recognition',frame)
# 19.判断Q,推出
if cv2.waitKey(1) & 0xff == ord('q'):
break
# 20.关闭所有的资源
capture.release()
cv2.destoryAllWindows()
好吧,最近果然胖了很多,更像雷军了。
最后
以上就是细腻钢笔为你收集整理的人脸识别(摄像头)——基于face_recognition库1.需要用到的方法2.人脸识别的流程3.测试代码的全部内容,希望文章能够帮你解决人脸识别(摄像头)——基于face_recognition库1.需要用到的方法2.人脸识别的流程3.测试代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复