1.在vs2019+Anaconda+python3.7環境下安裝
打開Anaconda prompt選定一個python環境,安裝cmake和boost
pip install cmake -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install boost -i https://pypi.tuna.tsinghua.edu.cn/simple
2.編譯dlib。
從官網下載python3.7 dlib源文件。
https://pypi.org/project/dlib/#files
在Anaconda prompt中輸入pyhton setup.py install,進行編譯。
等待結束dlib編譯成功。
3.安裝opencv
pip install opencv-python==3.4.1.15 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-contrib-python==3.4.1.15 -i https://pypi.tuna.tsinghua.edu.cn/simple
4.下載人臉關鍵點檢測模型
https://gitee.com/sclu/face-detect-opencv
5.打開jupyter選擇安裝dlib的python環境,import dlib進行測試
1 import numpy as np 2 import cv2 3 import dlib 4 5 detector = dlib.get_frontal_face_detector() 6 predictor = dlib.shape_predictor('E:/shape_predictor_68_face_landmarks.dat') 7 8 # cv2讀取圖像 9 img = cv2.imread("E:/test.jpg") 10 11 # 取灰度 12 img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) 13 14 # 人臉數rects 15 rects = detector(img_gray, 0) 16 for i in range(len(rects)): 17 landmarks = np.matrix([[p.x, p.y] for p in predictor(img,rects[i]).parts()]) 18 for idx, point in enumerate(landmarks): 19 # 68點的坐標 20 pos = (point[0, 0], point[0, 1]) 21 print(idx,pos) 22 23 # 利用cv2.circle給每個特征點畫一個圈,共68個 24 cv2.circle(img, pos, 2, color=(0, 255, 0)) 25 # 利用cv2.putText輸出1-68 26 font = cv2.FONT_HERSHEY_SIMPLEX 27 cv2.putText(img, str(idx+1), pos, font, 0.3, (0, 0, 255), 1,cv2.LINE_AA) 28 29 cv2.namedWindow("img", 2) 30 cv2.imshow("img", img) 31 cv2.waitKey(0)