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

2021-10-22 07:20:52 字數 1967 閱讀 5106

二、python實現人臉特徵點檢測

#本程式可以檢測人像中的人臉特徵點

import dlib

import cv2

# 與人臉檢測相同,使用dlib自帶的frontal_face_detector作為人臉檢測器

detector = dlib.get_frontal_face_detector(

)# 使用官方提供的模型構建特徵提取器

predictor = dlib.shape_predictor(

'c:/users/administrator/desktop/dilb/shape_predictor_68_face_landmarks.dat'

)# cv2讀取

#pic = dobotedu.util.get_image(3, 0, false)#此部分呼叫了自家照相機api,你也可以自己進行拍照,等我有時間再補回去

#cv2.imwrite("c:/users/administrator/desktop/dilb/1.jpg",pic)#將**檔案儲存到file_name檔案路徑

)# 與人臉檢測程式相同,使用detector進行人臉檢測 dets為返回的結果

dets = detector(img,1)

# 使用enumerate 函式遍歷序列中的元素以及它們的下標

# 下標k即為人臉序號

for k, d in

enumerate

(dets)

:print

("dets{}"

.format

(d))

print

("detection {}: left: {} top: {} right: {} bottom: {}"

.format

( k, d.left(

), d.top(

), d.right(

), d.bottom())

)# 使用predictor進行人臉關鍵點識別 shape為返回的結果

shape = predictor(img, d)

# 獲取第乙個和第二個點的座標(相對於而不是框出來的人臉)

print

("part 0: {}, part 1: {} ..."

.format

(shape.part(0)

, shape.part(1)

))# 繪製特徵點

for index, pt in

enumerate

(shape.parts())

:print

('part {}: {}'

.format

(index, pt)

) pt_pos =

(pt.x, pt.y)

cv2.circle(img, pt_pos,1,

(255,0

,0),

2)#利用cv2.puttext輸出1-68

基於Dlib庫的人臉68個特徵點檢測

利用dlib.get frontal face detector 獲取人臉框 利用dlib.shape predictor shape predictor 68 face landmarks.dat 獲取人臉68個特徵點 import numpy as np import cv2 import dl...

人臉特徵點檢測

參考 face alignment by explicit shape regression。演算法的實現原始碼在裡的explicitshaperegression.cpp裡面。下面貼上乙個檢測結果 人臉特徵點有不少應用,比如可以對齊人臉,或者做人臉變形。在人臉資料庫裡挑選了一些人臉,對齊它們,求出...

dlib人臉68特徵點檢測提速 毫秒級

參考文章 把原本低速的dlib人臉檢測換成了高速的haar檢測,提速明顯,但是精度下降 include include include include include include include include include include include include include us...