前言
接著上一篇: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方法用來判斷照片是誰。
先看一下我準備的照片。
看一下需要驗證的照片
執行結果
可以看出已經識別出楊冪和鄧紫棋了。
總結
還是要提醒一下,我多次測試了各類圖片,識別還是有一定的誤差率的。可以根據自己的情況調整程式碼。
分享:
這個世界上沒有奇蹟,有的只是偶然和必然,以及是誰在做些什麼。一直期望著能出現奇蹟的人們是不會發生奇蹟,只有想要用自己的雙手創造奇蹟的人們,救贖之手才會伸向他們。——《悠久之翼》
如果本文對你有幫助的話,點個贊吧,謝謝!
本人CSDN主頁地址:劍客阿良_ALiang的主頁
一起學習,一起進步。