利用Dilb獲取人臉的68個landmark

2021-10-12 17:29:22 字數 2991 閱讀 5110

#人臉檢測畫框

detector = dlib.get_frontal_face_detector(

)# 獲取人臉關鍵點檢測器

predictor = dlib.shape_predictor(

"shape_predictor_68_face_landmarks.dat"

)#獲取人臉框位置資訊

dets = detector(gray,1)

#1表示取樣(upsample)次數 0識別的人臉少點,1識別的多點,2識別的更多,小臉也可以識別

for face in dets:

shape = predictor(img, face)

# 尋找人臉的68個標定點

# 遍歷所有點,列印出其座標,並圈出來

#人臉檢測畫框

detector = dlib.get_frontal_face_detector(

)# 獲取人臉關鍵點檢測器

predictor = dlib.shape_predictor(

"shape_predictor_68_face_landmarks.dat"

)#獲取人臉框位置資訊

dets = detector(gray,1)

#1表示取樣(upsample)次數 0識別的人臉少點,1識別的多點,2識別的更多,小臉也可以識別

for i in

range

(len

(dets)):

shape = predictor(img, dets[i]

)# 尋找人臉的68個標定點

# 遍歷所有點,列印出其座標,並圈出來

for pt in shape.parts():

pt_pos =

(pt.x, pt.y)

cv2.circle(img, pt_pos,2,

(0,0

,255),

1)#img, center, radius, color, thickness

cv2.imshow(

"image"

, img)

cv2.waitkey(0)

#等待鍵盤輸入

cv2.destroyallwindows(

)

import cv2

import dlib

import numpy as np

cap = cv2.videocapture(0)

cap.isopened(

)def

key_points

(img)

: points_keys =

predictor_path =

"shape_predictor_68_face_landmarks.dat"

detector = dlib.get_frontal_face_detector(

) predictor = dlib.shape_predictor(predictor_path)

rects = detector(img,1)

for i in

range

(len

(rects)):

landmarks = np.matrix(

[[p.x,p.y]

for p in predictor(img,rects[i]

).parts()]

)for point in landmarks:

pos =

(point[0,

0],point[0,

1]) cv2.circle(img,pos,2,

(255,0

,0),

-1)return img

while

(true):

ret, frame = cap.read(

)# gray = cv2.cvtcolor(frame)

face_key = key_points(frame)

cv2.imshow(

'frame'

,face_key)

if cv2.waitkey(1)

&0xff

==ord

('q'):

break

cap.release(

)#釋放攝像頭

cv2.destroyallwindows(

)#關閉所有影象視窗

樣例:

人臉68特徵點檢測(Dilb庫安裝,只需兩步!!)

二 python實現人臉特徵點檢測 本程式可以檢測人像中的人臉特徵點 import dlib import cv2 與人臉檢測相同,使用dlib自帶的frontal face detector作為人臉檢測器 detector dlib.get frontal face detector 使用官方提供...

17 2 21 人臉識別中68個特徵點的檢測順序

對於一些常用的人臉庫常常會提供對應的人臉框的位置以及人臉的特徵點的座標。雖然往往會有68個特徵點的座標,但是如果是用於人臉對齊,並不需要用到所有的點座標。所以知道特徵點的檢測順序能夠幫助我們很快的找到我們所需要的特定點座標。如圖1所示,圖中將68個特徵點的檢測順序一次標註了出來。摘自 當然不是所有的...

棧利用率的獲取

棧用於儲存變數,隨著函式呼叫深度和變數的數量而變化.設定小了會出現棧溢位,設定大了會浪費.rt thread的統計方法是將執行緒棧都填充為 當需要的時候,檢查是否被修改為其他值.利用率 已使用 棧大小.if defined arch cpu stack grows upward ptr rt uin...