dlib 人臉檢測
阿新 • • 發佈:2019-01-11
採用經典的梯度方向直方圖(HOG特徵)提取+線性分類器+影象金字塔+滑動視窗的人臉檢測方法。該方法速度快,只能檢測80*80或更大的人臉,但可以通過影象上取樣來檢測更小的人臉。與OpenCV的人臉檢測相比,召回率更高,誤檢率更低,且人臉框更準確,檢測速度同樣很快。
程式碼實現:
import cv2 import dlib detector = dlib.get_frontal_face_detector() #獲取dlib正臉檢測器 img = cv2.imread("a.jpg") #opencv讀取圖片,並顯示 img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) #灰度處理 rects = detector(img_gray, 0) #0次上取樣,dlib的人臉檢測器只能檢測80*80和更大的人臉,若需要檢測比它小的人臉,需對影象上取樣 print("The number of faces: {}".format(len(rects))) #識別到的人臉個數 for rect in rects: #cv2.rectangle()畫出矩形,引數1:影象,引數2:矩形左上角座標,引數3:矩形右下角座標,引數4:畫線對應的rgb顏色,引數5:線的寬度 cv2.rectangle(img, (rect.left(),rect.top()), (rect.right(),rect.bottom()), (0,0,255),2) cv2.namedWindow("img", 2) #圖片視窗可調節大小 cv2.imshow("img", img) #顯示影象 cv2.waitKey(0) #等待按鍵,隨後退出
執行結果:
The number of faces: 1