Python實(shí)現(xiàn)識(shí)別圖像中人物的示例代碼
前言
接著上一篇:AI識(shí)別照片是誰,人臉識(shí)別face_recognition開源項(xiàng)目安裝使用
根據(jù)項(xiàng)目提供的demo代碼,調(diào)整了一下功能,自己寫了一個(gè)識(shí)別人臉的工具代碼。
環(huán)境部署
按照上一篇的安裝部署就可以了。
代碼
不廢話,直接上代碼。
#!/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、先將一些人臉錄進(jìn)去,指定人物名稱,方法為add_person。
2、compare方法用來判斷照片是誰。
先看一下我準(zhǔn)備的照片。

看一下需要驗(yàn)證的照片

執(zhí)行結(jié)果

可以看出已經(jīng)識(shí)別出楊冪和鄧紫棋了。
總結(jié)
還是要提醒一下,我多次測(cè)試了各類圖片,識(shí)別還是有一定的誤差率的。可以根據(jù)自己的情況調(diào)整代碼。
到此這篇關(guān)于Python實(shí)現(xiàn)識(shí)別圖像中人物的示例代碼的文章就介紹到這了,更多相關(guān)Python識(shí)別圖像中人物內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從Pyspark UDF調(diào)用另一個(gè)自定義Python函數(shù)的方法步驟
PySpark,通常稱為Apache Spark的Python API,是為分布式數(shù)據(jù)處理而創(chuàng)建的,使用UDF,可以擴(kuò)展和定制 PySpark 的功能以滿足某些需求,在本文中,我們將學(xué)習(xí)如何從Pyspark UDF調(diào)用另一個(gè)自定義Python函數(shù),需要的朋友可以參考下2023-11-11
PyQt中使用QProcess運(yùn)行一個(gè)進(jìn)程的示例代碼
這篇文章主要介紹了在PyQt中使用QProcess運(yùn)行一個(gè)進(jìn)程,本例中通過按下按鈕,啟動(dòng)了windows系統(tǒng)自帶的記事本程序,即notepad.exe, 因?yàn)樗趙indows的系統(tǒng)目錄下,該目錄已經(jīng)加在了系統(tǒng)的PATH環(huán)境變量中,所以不需要特別指定路徑,需要的朋友可以參考下2022-12-12
Python隨機(jī)函數(shù)庫random的使用方法詳解
這篇文章主要介紹了Python隨機(jī)函數(shù)庫random的使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python中強(qiáng)大的命令行庫click入門教程
click是Python的一個(gè)命令行工具,極其好用。不信?一試便知。下面這篇文章主要給大家介紹了Python中強(qiáng)大的命令行庫click,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2016-12-12
python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng)
本文將結(jié)合實(shí)例代碼,介紹python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
python使用cStringIO實(shí)現(xiàn)臨時(shí)內(nèi)存文件訪問的方法
這篇文章主要介紹了python使用cStringIO實(shí)現(xiàn)臨時(shí)內(nèi)存文件訪問的方法,涉及Python使用cStringIO模塊操作內(nèi)存的技巧,需要的朋友可以參考下2015-03-03
pyqt4教程之實(shí)現(xiàn)半透明的天氣預(yù)報(bào)界面示例
這篇文章主要介紹了pyqt4實(shí)現(xiàn)半透明的天氣預(yù)報(bào)界面示例,需要的朋友可以參考下2014-03-03

