對於類似於人臉的對象,你或許需要不少於 6000個分類器,每一個都需要成功匹配(當然,有容錯率),才能檢測出人臉。但這有一個問題:對於Face Service,演算法從左上方開始計算一個個資料區塊,不停問“這是張臉嗎”。每個資料區塊有超過 6000個檢測,加起來的計算量會達到數百萬層級,電腦很可能會讓你等得花兒都謝了。
在這裡還是要推薦下我自己建的Python開發學習群:483546416,群裡都是學Python開發的,如果你正在學習Python ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份2018最新的Python進階資料和進階開發教程,歡迎進階中和進想深入Python的小夥伴
實現Face Service
執行個體1:
1、 首先你需要提供一個檔案夾,裡面是所有你希望系統認識的人的圖片。其中每個人一張圖片,圖片以人的名字命名:
known_people 檔案夾下有 babe、成龍、容祖兒的照片
2、 接下來,你需要準備另一個檔案夾,裡面是你要識別的圖片:
unknown_pic 檔案夾下是要識別的圖片,其中韓紅是機器不認識的
3、 然後你就可以運行 face_recognition 命令了,把剛剛準備的兩個檔案夾作為參數傳入,命令就會返回需要識別的圖片中都出現了誰:
識別成功。
自動識別出人臉特徵
執行個體2(通過多張圖片對比,識別出是哪一個人):
[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")
#擷取每個影像檔中每個面部的面部編碼
#由於每個映像中可能有多個面,所以返回一個編碼列表。
#但是由於我知道每個映像只有一個臉,我只關心每個映像中的第一個編碼,所以我取索引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("這個未知面孔是 Babe 嗎? {}".format(results[0]))
print("這個未知面孔是 容祖兒 嗎? {}".format(results[1]))
print("這個未知面孔是 我們從未見過的新面孔嗎? {}".format(not True in results))
為true代表是相符的
好了,今天就分享到這裡,學習python有什麼好的學習方法和技巧歡迎在下面評論區留言和小編交流,有驚喜哦。