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方法用來判斷照片是誰。

先看一下我准備的照片。

file

看一下需要驗證的照片

file

執行結果

file

可以看出已經識別出楊冪和鄧紫棋了。

總結

還是要提醒一下,我多次測試了各類圖片,識別還是有一定的誤差率的。可以根據自己的情況調整代碼。

分享:

這個世界上沒有奇跡,有的只是偶然和必然,以及是誰在做些什么。一直期望着能出現奇跡的人們是不會發生奇跡,只有想要用自己的雙手創造奇跡的人們,救贖之手才會伸向他們。——《悠久之翼》

如果本文對你有幫助的話,點個贊吧,謝謝!

file

本人CSDN主頁地址:劍客阿良_ALiang的主頁

一起學習,一起進步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM