dlib人臉識別
1、dlib安裝
代碼的編寫在jupyter notebook中來完成
jupyter notebook是一個工具
pip install jupyter ------------>安裝使用
如何啟動:
命令行輸入:jupyter notebook
前提,環境變量配置成功
dlib安裝-------------> pip install dlib
dlib有不同的版本,最新版本(19.17.0),經過測試,dll包不完備,所以上次我在使用時,出了一點問題,隨着時間的推移,修復
建議大家安裝之前的版本(19.8.1)
pip install dlib==19.8.1
2、dlib人臉識別
cv2和dlib異同
都可以識別人臉
cv2級聯方式識別人臉,啟用算法時,人臉特征數據:haar
dlib底層使用的是深度神經網絡
所以dlib識別准確率,要比opencv(cv2)高
pip install opencv-python
我們就可以在代碼中,導包了
dlib調用相應方法,識別人臉
face_detector = dlib.get_frontal_face_detector()
調用:
人臉坐標數據
faces = face_detector(image,1)
繪制:
for face in faces:
left = face.left()
top = face.top()
right = face.right()
bottom = face.bottom()
cv2.rectangle(jin,pt1 = (left,top),pt2 = (right,bottom),color = [0,0,255],thickness = 2)
3、dlib多張人臉的識別
jupyter執行代碼 Ctrl + Enter
多張人臉和單張人臉識別的代碼完全一樣的
4、dlib可以識別視頻中的人臉
視頻操作,首先讀取視頻
cv2工具---------> opencv------->計算機視覺
演示,視頻每一張圖片,進行顯示
cv2.waitKey(10) -------->毫秒,快進感覺
視頻中人臉可以檢測,但是播放速度變慢,為什么???
因為人臉識別,算法應用,大量計算,計算時,花時間的
5、dlib可以標記人臉的關鍵點(輪廓點)
1、識別人臉
2、輪廓識別人臉關鍵點
人臉68個關鍵點:嘴巴,鼻子,眼睛,眉毛,輪廓
shape = dlib.shape_predictor('./shape_predictor_68_face_landmarks.dat')
facemarks = shape(jin,face)
for mark in facemarks.parts():
x = mark.x
y = mark.y
cv2.circle(jin,center = (x,y),radius = 2,color = [0,255,0],thickness = 2)