1. 程式人生 > >基於python3、 face_recognition 實現人臉檢測

基於python3、 face_recognition 實現人臉檢測

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] 

該文章有使用連結,如有侵權還請見諒。使用本文章或程式碼還請宣告。