-
大小: 88.68MB文件類型: .zip金幣: 1下載: 0 次發(fā)布日期: 2022-07-23
- 語(yǔ)言: Python
- 標(biāo)簽: python3??人臉識(shí)別??40行代碼??shape_predic??dlib_face_re??
資源簡(jiǎn)介
python3 版本的40行代碼的人臉識(shí)別實(shí)踐,運(yùn)行文件夾中test.py原文地址在這里https://blog.csdn.net/xingchenbingbuyu/article/details/68482838,是python2版本的我改成python3版本,把里面需要到官網(wǎng)下載的東西也打包進(jìn)去節(jié)省大家時(shí)間,大家能直接試了,省得手累
代碼片段和文件信息
#?-*-?coding:?UTF-8?-*-
import?sysosdlibglobnumpy
from?skimage?import?io
if?len(sys.argv)?!=?5:
????print(“請(qǐng)檢查參數(shù)是否正確“)
????exit()
#?1.人臉關(guān)鍵點(diǎn)檢測(cè)器
predictor_path?=?sys.argv[1]
#?2.人臉識(shí)別模型
face_rec_model_path?=?sys.argv[2]
#?3.候選人臉文件夾
faces_folder_path?=?sys.argv[3]
#?4.需識(shí)別的人臉
img_path?=?sys.argv[4]
#?1.加載正臉檢測(cè)器
detector?=?dlib.get_frontal_face_detector()
#?2.加載人臉關(guān)鍵點(diǎn)檢測(cè)器
sp?=?dlib.shape_predictor(predictor_path)
#?3.?加載人臉識(shí)別模型
facerec?=?dlib.face_recognition_model_v1(face_rec_model_path)
#?win?=?dlib.image_window()
#?候選人臉描述子list
descriptors?=?[]
#?對(duì)文件夾下的每一個(gè)人臉進(jìn)行:
#?1.人臉檢測(cè)
#?2.關(guān)鍵點(diǎn)檢測(cè)
#?3.描述子提取
for?f?in?glob.glob(os.path.join(faces_folder_path?“*.jpg“)):
????print(“Processing?file:?{}“.format(f))
????img?=?io.imread(f)
????#win.clear_overlay()
????#win.set_image(img)
????#?1.人臉檢測(cè)
????dets?=?detector(img?1)
????print(“Number?of?faces?detected:?{}“.format(len(dets)))
????for?k?d?in?enumerate(dets):??
????????#?2.關(guān)鍵點(diǎn)檢測(cè)
????????shape?=?sp(img?d)
????????#?畫出人臉區(qū)域和和關(guān)鍵點(diǎn)
????????#?win.clear_overlay()
????????#?win.add_overlay(d)
????????#?win.add_overlay(shape)
????????#?3.描述子提取,128D向量
????????face_descriptor?=?facerec.compute_face_descriptor(img?shape)
????????#?轉(zhuǎn)換為numpy?array
????????v?=?numpy.array(face_descriptor)??
????????descriptors.append(v)
#?對(duì)需識(shí)別人臉進(jìn)行同樣處理
#?提取描述子,不再注釋
img?=?io.imread(img_path)
dets?=?detector(img?1)
dist?=?[]
for?k?d?in?enumerate(dets):
????shape?=?sp(img?d)
????face_descriptor?=?facerec.compute_face_descriptor(img?shape)
????d_test?=?numpy.array(face_descriptor)?
????#?計(jì)算歐式距離
????for?i?in?descriptors:
????????dist_?=?numpy.linalg.norm(i-d_test)
????????dist.append(dist_)
#?候選人名單
candidate?=?[‘Unknown1‘‘Unknown2‘‘Unknown3‘‘liudehua‘‘unknown4‘]
#?候選人和距離組成一個(gè)dict
c_d?=?dict(zip(candidatedist))
cd_sorted?=?sorted(c_d.items()?key=lambda?d:d[1])
print(cd_sorted)
print(“\n?The?person?is:?“cd_sorted[0][0])
dlib.hit_enter_to_continue()
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-09-06?15:16??ck\
?????文件????22466066??2018-09-06?14:40??ck\dlib_face_recognition_resnet_model_v1.dat
?????目錄???????????0??2018-09-06?14:47??ck\img1\
?????文件????????7320??2018-09-06?14:43??ck\img1\?(1).jpg
?????文件???????57173??2018-09-06?14:43??ck\img1\?(2).jpg
?????文件???????65259??2018-09-06?14:43??ck\img1\?(3).jpg
?????文件????????7085??2018-09-06?14:44??ck\img1\?(4).jpg
?????文件????????5809??2018-09-06?14:44??ck\img1\?(5).jpg
?????文件????99693937??2018-09-06?14:01??ck\shape_predictor_68_face_landmarks.dat
?????文件????????2390??2018-09-06?15:14??ck\test.py
?????文件????????7085??2018-09-06?14:44??ck\test1.jpg
評(píng)論
共有 條評(píng)論