基於python3、 face_recognition 實現人臉檢測
阿新 • • 發佈:2018-12-15
face_recognition 是一個python的開源人臉識別庫 號稱是識別率百分之99 (雖然我沒感覺到)網上資料非常多,而且用這個做實時性的人臉識別效率還可以(雖然初始化慢...)
話不多說上程式碼
# 識別圖片中的所有人臉並顯示出來 # 匯入pil模組 ,可用命令安裝 apt-get install python-Imaging from PIL import Image # 匯入face_recogntion模組,可用命令安裝 pip install face_recognition import face_recognition import cv2 import time # 將jpg檔案載入到numpy 陣列中 t=time.time() image = face_recognition.load_image_file("yiqi.jpg") frame=cv2.imread("yiqi.jpg") # 使用預設的給予HOG模型查詢影象中所有人臉 # 這個方法已經相當準確了,但還是不如CNN模型那麼準確,因為沒有使用GPU加速 face_locations = face_recognition.face_locations(image) # 使用CNN模型 # face_locations = face_recognition.face_locations(image, number_of_times_to_upsample=0, model="cnn") # 列印:我從圖片中找到了 多少 張人臉 print("I found {} face(s) in this photograph.".format(len(face_locations))) # 迴圈找到的所有人臉 for face_location in face_locations: # 列印每張臉的位置資訊 top, right, bottom, left = face_location print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right)) # 指定人臉的位置資訊,然後顯示人臉圖片 cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) cv2.imshow('tuxiang',frame) cv2.waitKey(1) #重新整理介面 不然只會呈現灰色 print('執行時間{}'.format(time.time()-t)) time.sleep(5) #暫停五秒 展示圖片
效果圖
執行時間 0.36700010299682617s
安裝face_recognition這個庫還是有點麻煩的 推薦這個連結
雖然安裝可能會麻煩些,但是用起來確實很簡單,人臉檢測直接使用face_recognition.face_locations()方法就可以了。
使用到了opencv模組 主要是用來呈現圖片以及對人臉標框(cv2.rectangle)
使用到了time庫 主要是為了暫停看一下效果 和用來檢測一下執行時間(time.time()函式)
如果想使用face_recognition 做人臉識別,可以看我部落格 裡面有。
如有問題,或有什麼建議可加群:894243022或發郵箱 [email protected]
該文章有使用連結,如有侵權還請見諒。使用本文章或程式碼還請宣告。