Dlib Python 檢測人臉特征點 Face Landmark Detection


首先安裝Dlib,Opencv庫

Dlib安裝鏈接:http://www.cnblogs.com/as3asddd/p/7237280.html

環境:Mac Sierra 10.12.1 Python 2.7.1

設置特征檢測器,dlib有已經訓練的好的需要下載,也可以自己根據需要訓練

下載鏈接:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

下載完之后解壓,將路徑送到dlib.shape_predictor()里面

import cv2
import dlib
detector = dlib.get_frontal_face_detector()
landmark_predictor = dlib.shape_predictor('/Users/apple/Downloads/shape_predictor_68_face_landmarks.dat')
img = cv2.imread('/Users/apple/Desktop/test.jpg')
faces = detector(img,1)
if (len(faces) > 0):
    for k,d in enumerate(faces):
        cv2.rectangle(img,(d.left(),d.top()),(d.right(),d.bottom()),(255,255,255))
        shape = landmark_predictor(img,d)
        for i in range(68):
            cv2.circle(img, (shape.part(i).x, shape.part(i).y),5,(0,255,0), -1, 8)
            cv2.putText(img,str(i),(shape.part(i).x,shape.part(i).y),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,2555,255))
cv2.imshow('Frame',img)
cv2.waitKey(0)

人臉68個特征點位置


{
	IdxRange jaw;       // [0 , 16]
	IdxRange rightBrow; // [17, 21]
	IdxRange leftBrow;  // [22, 26]
	IdxRange nose;      // [27, 35]
	IdxRange rightEye;  // [36, 41]
	IdxRange leftEye;   // [42, 47]
	IdxRange mouth;     // [48, 59]
	IdxRange mouth2;    // [60, 67]
}

detector是dlib訓練好的人臉檢測器,是基於HOG特征的

shape = landmark_predictor(img,d)

我們想要的特征點全部保存在了shape里面,d是dlib.rectangle(),里面保存着人臉檢測矩形的左上和右下坐標,shape.part(i)是第i個特征點

landmark_predictor也是dlib訓練好的人臉特征檢測器,是基於Ensemble of Regression Trees的,在CVPR2014的論文有過,單人臉的特征點檢測速度極快,Dlib就是實現了這種算法的,想要研究一下的可以看一下,這里附上論文鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM