二、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...