人臉識別之Python DLib庫進行人臉關鍵點識別

dicksonjyl560101發表於2019-06-16


https://www.toutiao.com/a6702287840765542920/


一、首先安裝DLib模組

這裡只介紹linux安裝的過程,windows安裝過程請自行百度

1、首先,安裝dlib、skimage前;先安裝libboost

sudo apt-get install libboost-python-dev cmake

接下來到dlib官網dlib.net下載最新的dlib版本(我下的是dlib-19.7),進入檔案所在目錄解壓

bzip2 -d dlib-19.7.tar.bz2

tar xvf dlib-19.7.tar

這是一個二級解壓過程,解壓得到檔案dlib-19.7,進入該目錄下,執行如下命令安裝dlib

python setup.py install

安裝完成後,切換到python,鍵入import dlib,無異常提示表明安裝成功!

接著安裝skimage

sudo apt-get install python-skimage

二、人臉檢測


人臉識別之Python DLib庫進行人臉關鍵點識別


首先呼叫dlib.get_frontal_face_detector() 來載入dlib自帶的人臉檢測器

dets = detector(img, 1)將檢測器應用在輸入圖片上,結果返回給dets(引數1表示對圖片進行上取樣一次,有利於檢測到更多的人臉);

dets的個數即為檢測到的人臉的個數;

遍歷dets可以獲取到檢測到的每個人臉四個座標極值。

為了框出檢測到的人臉,用dlib.image_window()來載入顯示視窗,window.set_image(img)先將圖片顯示到視窗上,再利用window.add_overlay(dets)來繪製檢測到的人臉框;

dlib.hit_enter_to_continue()用於等待點選(類似於opencv的cv2.waitKey(0),不加這個會出現閃退)。

檢測結果如下圖:


人臉識別之Python DLib庫進行人臉關鍵點識別


三、關鍵點的提取

實現關鍵點描述需要用到用於特徵提取的官方模型,下載地址如下:

http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2


人臉識別之Python DLib庫進行人臉關鍵點識別


首先通過dlib.shape_predictor(predictor_path)從路徑中載入模型,返回的predictor就是特徵提取器

對dets遍歷,用predictor(img, d)計算檢測到的每張人臉的關鍵點;

獲取每個關鍵點座標shape.parts()的x,y值,存入landmark矩陣(模型預設提取68個關鍵點,所以landmark為68×2矩陣)。

關鍵點提取結果如下:


人臉識別之Python DLib庫進行人臉關鍵點識別


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2647776/,如需轉載,請註明出處,否則將追究法律責任。

相關文章