Python基于face_recognition库的人脸识别工具实现

晚来风
晚来风
发布时间:2026-10-15| 6人浏览过
原创

本文介绍如何利用Python的face_recognition开源库实现图像中人物识别功能。通过封装add_person和compare方法,演示如何录入已知人脸特征并比对新照片。文章包含完整的环境部署说明、核心代码示例及测试结果分析,指出识别存在一定误差率,供开发者参考调整。

前言

承接上一篇关于AI识别照片中人物身份的文章,重点讲解人脸识别开源项目face_recognition的安装与使用流程。

基于该项目提供的官方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'))

代码逻辑说明如下:

首先,需要预先录入已知人脸信息,通过指定人物名称调用add_person方法完成注册。

其次,使用compare方法对输入的新照片进行比对,以判断照片中的人物身份。

首先查看用于训练或录入的样本照片。

接着查看需要进行身份验证的目标照片。

运行程序后的执行结果如下。

从结果可以看出,系统成功识别出了杨幂和邓紫棋的身份。

总结

需要提醒的是,经过多次对不同类别图片的测试,识别结果仍存在一定的误差率。建议开发者根据实际应用场景对代码进行适当调整以优化效果。

至此,关于Python实现图像中人物识别的示例代码介绍完毕。如需了解更多Python图像识别相关内容,可搜索本站过往文章或继续浏览后续教程,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。