Facial Landmark Detection(人臉特征點檢測)

image

轉(zhuǎn)載地址: http://blog.csdn.net/xiamentingtao/article/details/50908190
原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375

作為計算機視覺研究員,我們很早就開始研究人臉澜掩。人臉分析領(lǐng)域最廣為人知的就是人臉識別(face recognition).但是為了識別一幅圖像中的人臉,我們首先必須要找到圖像中人臉的位置。因此人臉檢測(face detection)-定位一幅圖像中的人臉并且返回一個包圍人臉的矩形或者正方形(bounding rectangle/square)是一個熱門的研究領(lǐng)域。2001年亮蒋,Paul Viola 和Michael Jones 發(fā)表了史詩級論文<< “Rapid Object Detection using a Boosted Cascade of Simple Features.>>.在OpenCV早期甚至某種程度下在現(xiàn)在扣典,OpenCV的致命武器就是對
Viola and Jones face detector的一個比較好的實現(xiàn)妆毕。

一旦你找到了人臉附近的包圍盒,最顯然的研究當然是準確識別人臉不同特征的位置(比如贮尖,眼角笛粘、瞳孔、嘴巴湿硝、鼻子等)薪前。人臉特征檢測(face feature detection)也稱為 “facial landmark detection”, “facial keypoint detection” and “face alignment”,你可以在Google找到類似的文獻关斜。

Facial Keypoint Detection

人臉關(guān)鍵點檢測有很多應(yīng)用示括。如下做了一些列舉:

Facial feature detection improves face recognition

人臉特征點可以被用來將人臉對齊到平均人臉(mean face shape),這樣在對齊之后所有圖像中的人臉特征點的位置幾乎是相同的。直觀上來看痢畜,用對齊后的圖像訓(xùn)練的人臉識別算法更加有效垛膝,這個直覺已經(jīng)被很多論文驗證。

Head pose estimation

一旦你知道了一些特征點的位置丁稀,你也可以估計頭部的姿勢吼拥。換句話說,你可以解決頭部在空間中的定向問題线衫,或者通俗的講就是人朝那里看的問題凿可。

Face Morphing (人臉變形)

人臉特征點可以對齊人臉,這樣可以生成兩張人臉的中間圖像授账。如下圖:


image

Virtual Makeover(虛擬化妝)

在我的公司
我們已經(jīng)寫了自己的人臉特征點檢測器枯跑。檢測出的特征點被用來計算嘴的輪廓,眼睛等用來渲染虛擬化妝白热。Figure2z展示了這一效果:

image

Face Replacement

如何兩張人臉的特征點已經(jīng)估計出來了敛助,你可以將一張人臉對齊到另一張人臉,并且可以無縫換臉棘捣。你也可以做像下面一樣傻瓜的事辜腺。
https://auduno.github.io/clmtrackr/examples/facesubstitution.html

先前的報告中休建,我們展示了如何使用人臉特征點去預(yù)測人臉的吸引力

很明顯评疗,在圖片和視頻上進行人臉特征點檢測為許多有趣的應(yīng)用提供了很多的可能性测砂。下面我們就將介紹一些有用的特征點檢測工具。

Facial Feature Detection & Tracking Libraries

過去五年來百匆,這個領(lǐng)域很火砌些,部分原因是大量可以用來訓(xùn)練的數(shù)據(jù)如LFPWHelen被提供加匈。我在下一節(jié)列了很多論文存璃。但是我不建議胡亂實現(xiàn)這些論文,因為已經(jīng)有開源的實現(xiàn)雕拼。

下面的視頻中纵东,你可以看到兩個庫DlibCLM-framework.
http://7xrqgw.com1.z0.glb.clouddn.com/dlib_clm.mp4

Dlib(C++/Python)

Dlib是機器學(xué)習(xí),計算機視覺啥寇,圖像處理偎球,線性代數(shù)中眾多算法的集合。庫中大多數(shù)是頭文件辑甜,你可以直接直接包含在C++應(yīng)用中衰絮。或者你更喜歡Python?沒問題磷醋,他也有一個Python接口.

我個人更喜歡Dlib因為代碼是簡潔的猫牡,有大量的注釋,也可以被用來商用邓线。他們選擇實現(xiàn)的算法是非程视眩快的,并且是準確的褂痰,你可以很容易集成這個庫到你的C++工程中亩进,而你需要做的僅僅是包含頭文件.

如何編譯Dlib?

  1. 從Github上下載:
git clone https://github.com/davisking/dlib.git
  1. 建立Examples(OSX\Linux)
cd dlib/examples
mkdir build
cd build
cmake .. 
cmake --build . --config Release

這些例子是一個開始使用Dlib的非常好的方法∷跬幔拷貝一個例子的cpp文件归薛,修改它,修改examples/CMakeLists.txt 并且像上面一樣再一次編譯它匪蝙。很容易吧主籍!
3. 編譯dlib python 模塊

cd dlib/python_examples 
./compile_dlib_python_module.bat
  1. 設(shè)置 PYTHONPATH 環(huán)境變量
# Put the following line in .bashrc or .profile
export PYTHONPATH=/path/to/dlib/python_examples:$PYTHONPATH

  1. 測試python模塊
python -c "import dlib"

如果以上都沒有問題的話,你就設(shè)置好了逛球。

How to run Dlib’s facial landmark detector ?

當你編譯好examples后千元,為了在網(wǎng)絡(luò)攝像頭上運行人臉特征點檢測器,可以這樣做:

cd examples/build/
#Download the face landmark model 
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
tar xvjf shape_predictor_68_face_landmarks.dat.bz2
./webcam_face_pose_ex

如果你想要在單個圖像上運行颤绕,你可以這樣試試:

./face_landmark_detection_ex shape_predictor_68_face_landmarks.dat faces/*.jpg

CLM-Framework (C++)

CLM-framework,也被稱為劍橋人臉跟蹤器幸海,是一個用來進行人臉特征點檢測和頭部姿勢估計的C++庫祟身。你可以看看他在包含的video文件里工作的多么好啊物独!在OSX上編譯這個庫有點兒挑戰(zhàn)但是也不太難袜硫。庫依賴于OpenCV3和X11.

有兩個重要的事說明Dlib可以挑戰(zhàn)CLM-Framework。首先挡篓,Dlib比CLM-Framework更快婉陷。其次,Dlib的license允許你商用官研。如果要挑一個的秽澳,我會使用Dlib.有趣的是,CLM-Framework依賴于Dlib.

如何編譯CLM-Framework戏羽?

編譯CLM-Framework在OSX上有點兒復(fù)雜担神。對于Windows和linux,這里有一份詳細的說明.為了在OSX上編譯version 1.3.0,我使用了linux的指示蛛壳,但是發(fā)生了很多改變杏瞻。

許多依賴項可以使用brew安裝.

在文件CMakeLists.txt(如下劃掉的被后面的取代)

find_package( OpenCV 3.0 REQUIRED )

find_package( OpenCV 3.0 REQUIRED HINTS /path/to/opencv )

INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})

INCLUDE_DIRECTORIES(/opt/X11/include)

在文件exe/SimpleCLM/SimpleCLM.cpp中

writerFace = VideoWriter(tracked_videos_output[f_n], CV_FOURCC(‘D’,’I’,’V’,’X’), 30, captured_image.size(), true);

writerFace = VideoWriter(tracked_videos_output[f_n], CV_FOURCC(‘M’,’P’,’4′,’V’), 15, captured_image.size(), true);

如何運行CLM-Framework人臉檢測器所刀?

編譯后衙荐,可執(zhí)行文件在bin路徑中.對于視頻中展現(xiàn)的網(wǎng)絡(luò)攝像頭Demo,你可以這樣使用:

bin/SimpleCLM

Face++ ( FacePlusPlus ) : Web API

人臉特征點檢測最好的實現(xiàn)之一就是Face++.他們在300 Faces in-the-Wild
Landmark Detection Challenge,2013取得了冠軍浮创。他們提供了一個易用的API忧吟。問題是你需要上傳一張圖片到他們的服務(wù)器,這個將帶來很多隱私上的擔憂斩披。但是如果隱私不是問題的話溜族,F(xiàn)ace++是一個好的選擇。你可以在
http://www.faceplusplus.com/demo-landmark/
看到一個Demo.

Facial Feature Detection Research

許多不同的方法都可以用來解決這個問題垦沉。很難再博客中對其歸類煌抒。我簡單地列出了一些重要論文。
1. Active Appearance Model (AAM) by T. Cootes, G. Edwards and C. J. Taylor. [1998]
2. Face Alignment through Subspace Constrained Mean-Shifts by Jason M. Saragih, Simon Lucey and Jeffrey F. Cohn. [2009]
3. Localizing Parts of Faces Using a Consensus of Exemplars by Peter N. Belhumeur, David W. Jacobs, David J. Kriegman, Neeraj Kumar [ 2011 ]
4. Face Alignment by Explicit Shape Regression by Xudong Cao Yichen Wei Fang Wen Jian Sun [2012]
5. Supervised Descent Method and Its Applications to Face Alignment by Xuehan Xiong and Fernando De la Torre [2013]
6. Constrained Local Neural Fields for robust facial landmark detection in the wild by Tadas Baltrusaitis, Peter Robinson, and Louis-Philippe Morency. [2013]
7. Extensive Facial Landmark Localization with Coarse-to-fine Convolutional Network Cascade by Erjin Zhou, Haoqiang Fan, Zhimin Cao, Yuning Jiang and Qi Yin. [2013]
8. Face alignment at 3000 fps via regressing local binary features by S Ren, X Cao, Y Wei, J Sun. [2014]
9. Facial Landmark Detection by Deep Multi-task Learning by Zhanpeng Zhang, Ping Luo, Chen Change Loy, and Xiaoou Tang. [2014]
10.One Millisecond Face Alignment with an Ensemble of Regression Trees by Vahid Kazemi and Josephine Sullivan. [2014]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厕倍,一起剝皮案震驚了整個濱河市寡壮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讹弯,老刑警劉巖况既,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異组民,居然都是意外死亡棒仍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門臭胜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莫其,“玉大人癞尚,你說我怎么就攤上這事÷叶福” “怎么了否纬?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛋褥。 經(jīng)常有香客問我临燃,道長,這世上最難降的妖魔是什么烙心? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任膜廊,我火速辦了婚禮,結(jié)果婚禮上淫茵,老公的妹妹穿的比我還像新娘爪瓜。我一直安慰自己,他們只是感情好匙瘪,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布铆铆。 她就那樣靜靜地躺著,像睡著了一般丹喻。 火紅的嫁衣襯著肌膚如雪薄货。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天碍论,我揣著相機與錄音谅猾,去河邊找鬼。 笑死鳍悠,一個胖子當著我的面吹牛税娜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藏研,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼敬矩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蠢挡?” 一聲冷哼從身側(cè)響起弧岳,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袒哥,沒想到半個月后缩筛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡堡称,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年瞎抛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片却紧。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡桐臊,死狀恐怖胎撤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情断凶,我是刑警寧澤伤提,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站认烁,受9級特大地震影響肿男,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜却嗡,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一舶沛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窗价,春花似錦如庭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至帝牡,卻和暖如春往毡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背否灾。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工卖擅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人墨技。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挎狸,于是被迫代替她去往敵國和親扣汪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容