Python实现人脸识别功能,face_recognition的使用 | 机器学习

简介: Python实现人脸识别功能,face_recognition的使用 | 机器学习

前言

接着上一篇:AI识别照片是谁,人脸识别face_recognition开源项目安装使用 | 机器学习_阿良的博客-CSDN博客


根据项目提供的demo代码,调整了一下功能,自己写了一个识别人脸的工具代码。


环境部署

按照上一篇的安装部署就可以了。


代码

不废话,直接上代码。


#!/user/bin/env python
# coding=utf-8
"""
@project : face_recognition
@author  : 剑客阿良_ALiang
@file   : test.py
@ide    : PyCharm
@time   : 2022-01-11 19:50:58
"""
import face_recognition
known_faces = [[], []]
def add_person(image_path: str, name: str):
    image = face_recognition.load_image_file(image_path)
    try:
        encoding = face_recognition.face_encodings(image)[0]
        known_faces[0].append(name)
        known_faces[1].append(encoding)
    except IndexError:
        print("I wasn't able to locate any faces in at least one of the images. Check the image files. Aborting...")
def compare(new_image: str):
    new1 = face_recognition.load_image_file(new_image)
    unknown_face_encoding = face_recognition.face_encodings(new1)[0]
    results = face_recognition.compare_faces(known_faces[1], unknown_face_encoding,0.5)
    print(known_faces[0])
    print(results)
    name = ''
    for i in range(0, len(known_faces[0])):
        if results[i]:
            print(i)
            name = known_faces[0][i]
            break
    if name == '':
        return 'I do not who'
    else:
        return name
if __name__ == '__main__':
    add_person('data/1.jpg', '杨幂')
    add_person('data/2.jpg', '迪丽热巴')
    add_person('data/3.jpg', '宋轶')
    add_person('data/4.jpg', '邓紫棋')
    print(compare('data/121.jpg'))
    print(compare('data/123.jpg'))

代码说明:


1、先将一些人脸录进去,指定人物名称,方法为add_person。


2、compare方法用来判断照片是谁。


先看一下我准备的照片。


image.png


看一下需要验证的照片

image.png



执行结果


image.png


可以看出已经识别出杨幂和邓紫棋了。


总结

还是要提醒一下,我多次测试了各类图片,识别还是有一定的误差率的。可以根据自己的情况调整代码。


分享:


       这个世界上没有奇迹,有的只是偶然和必然,以及是谁在做些什么。一直期望着能出现奇迹的人们是不会发生奇迹,只有想要用自己的双手创造奇迹的人们,救赎之手才会伸向他们。


                                                                                                               ——《悠久之翼》


相关文章
|
11天前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
38 0
|
2天前
|
云计算 Python
用python给你写个简单的计算器功能网页啊
这张图片展示了阿里巴巴集团的组织架构图,涵盖了核心电商、云计算、数字媒体与娱乐、创新业务等主要板块,以及各板块下的具体业务单元和部门。
|
5天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
11 1
|
6天前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
14 2
|
7天前
|
机器学习/深度学习 算法 Python
深度解析机器学习中过拟合与欠拟合现象:理解模型偏差背后的原因及其解决方案,附带Python示例代码助你轻松掌握平衡技巧
【10月更文挑战第10天】机器学习模型旨在从数据中学习规律并预测新数据。训练过程中常遇过拟合和欠拟合问题。过拟合指模型在训练集上表现优异但泛化能力差,欠拟合则指模型未能充分学习数据规律,两者均影响模型效果。解决方法包括正则化、增加训练数据和特征选择等。示例代码展示了如何使用Python和Scikit-learn进行线性回归建模,并观察不同情况下的表现。
66 3
|
6天前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
16 1
|
7天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
32 2
|
8天前
|
设计模式 开发者 Python
Python中的装饰器:简化代码与增强功能
【10月更文挑战第9天】在编程的世界里,效率和可读性是衡量代码质量的两大关键指标。Python语言以其简洁明了的语法赢得了无数开发者的青睐,而装饰器则是其独特魅力之一。本文将深入探讨装饰器的工作原理、使用方法以及如何通过自定义装饰器来提升代码的重用性和可维护性,让读者能够更加高效地编写出既优雅又功能强大的代码。
|
7天前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
19 1
|
11天前
|
机器学习/深度学习 人工智能 数据挖掘
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第6天】在人工智能领域,机器学习已成为核心技术。本文指导初学者使用Python与Scikit-learn入门机器学习,涵盖基本概念、环境搭建、数据处理、模型训练及评估等环节。Python因简洁性及其生态系统成为首选语言,而Scikit-learn则提供了丰富工具,简化数据挖掘与分析流程。通过实践示例,帮助读者快速掌握基础知识,为进一步深入研究奠定坚实基础。
19 4