欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python实现识别图像中人物的示例代码

程序员文章站 2022-03-01 13:11:02
目录前言环境部署代码总结前言接着上一篇:ai识别照片是谁,人脸识别face_recognition开源项目安装使用根据项目提供的demo代码,调整了一下功能,自己写了一个识别人脸的工具代码。环境部署按...

前言

接着上一篇: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'))

代码说明:

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

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

先看一下我准备的照片。

Python实现识别图像中人物的示例代码

看一下需要验证的照片

Python实现识别图像中人物的示例代码

执行结果

Python实现识别图像中人物的示例代码

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

总结

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

到此这篇关于python实现识别图像中人物的示例代码的文章就介绍到这了,更多相关python识别图像中人物内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!