我是靠谱客的博主 细腻钢笔,最近开发中收集的这篇文章主要介绍人脸识别(摄像头)——基于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.测试代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部