對于類(lèi)似于人臉的對象,你或許需要不少于 6000個(gè)分類(lèi)器,每一個(gè)都需要成功匹配(當然,有容錯率),才能檢測出人臉。但這有一個(gè)問(wèn)題:對于人臉識別,算法從左上角開(kāi)始計算一個(gè)個(gè)數據塊,不停問(wèn)“這是張臉嗎”。每個(gè)數據塊有超過(guò) 6000個(gè)檢測,加起來(lái)的計算量會(huì )達到數百萬(wàn)級別,計算機很可能會(huì )讓你等得花兒都謝了。
實(shí)現人臉識別
實(shí)例1:
1、 首先你需要提供一個(gè)文件夾,里面是所有你希望系統認識的人的圖片。其中每個(gè)人一張圖片,圖片以人的名字命名:
known_people 文件夾下有 babe、成龍、容祖兒的照片
2、 接下來(lái),你需要準備另一個(gè)文件夾,里面是你要識別的圖片:

unknown_pic 文件夾下是要識別的圖片,其中韓紅是機器不認識的
3、 然后你就可以運行 face_recognition 命令了,把剛剛準備的兩個(gè)文件夾作為參數傳入,命令就會(huì )返回需要識別的圖片中都出現了誰(shuí):

識別成功!
自動(dòng)識別出人臉特征
實(shí)例2(通過(guò)多張圖片對比,識別出是哪一個(gè)人):
[html] view plain copy
# filename : recognize_faces_in_pictures.py
# -*- conding: utf-8 -*-
# 導入face_recogntion模塊,可用命令安裝 pip install face_recognition
import face_recognition
#將jpg文件加載到numpy數組中
babe_image = face_recognition.load_image_file('/opt/face/known_people/babe.jpeg')
Rong_zhu_er_image = face_recognition.load_image_file('/opt/face/known_people/Rong zhu er.jpg')
unknown_image = face_recognition.load_image_file('/opt/face/unknown_pic/babe2.jpg')
#獲取每個(gè)圖像文件中每個(gè)面部的面部編碼
#由于每個(gè)圖像中可能有多個(gè)面,所以返回一個(gè)編碼列表。
#但是由于我知道每個(gè)圖像只有一個(gè)臉,我只關(guān)心每個(gè)圖像中的第一個(gè)編碼,所以我取索引0。
babe_face_encoding = face_recognition.face_encodings(babe_image)[0]
Rong_zhu_er_face_encoding = face_recognition.face_encodings(Rong_zhu_er_image)[0]
unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]
known_faces = [
babe_face_encoding,
Rong_zhu_er_face_encoding
]
#結果是True/false的數組,未知面孔known_faces陣列中的任何人相匹配的結果
results = face_recognition.compare_faces(known_faces, unknown_face_encoding)
print('這個(gè)未知面孔是 Babe 嗎? {}'.format(results[0]))
print('這個(gè)未知面孔是 容祖兒 嗎? {}'.format(results[1]))
print('這個(gè)未知面孔是 我們從未見(jiàn)過(guò)的新面孔嗎? {}'.format(not True in results))

為true代表是相符的

好了,今天就分享到這里,學(xué)習python有什么好的學(xué)習方法和技巧歡迎在下面評論區留言和小編交流,有驚喜哦!
聯(lián)系客服