Facial Landmark Detection(人臉特徵點檢測)_alignment

來源:互聯網
上載者:User

原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375

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

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

人臉關鍵點檢測有很多應用。如下做了一些列舉: Facial feature detection improves face recognition

人臉特徵點可以被用來將人臉對齊到平均人臉(mean face shape),這樣在對齊之後所有映像中的人臉特徵點的位置幾乎是相同的。直觀上來看,用對齊後的映像訓練的Face Service演算法更加有效,這個直覺已經被很多論文驗證。 Head pose estimation

一旦你知道了一些特徵點的位置,你也可以估計頭部的姿勢。換句話說,你可以解決頭部在空間中的定向問題,或者通俗的講就是人朝那裡看的問題。 Face Morphing (人臉變形)

人臉特徵點可以對齊人臉,這樣可以產生兩張人臉的中間映像。如下圖:
Virtual Makeover(虛擬化妝)

在我的公司
我們已經寫了自己的人臉特徵點檢測器。檢測出的特徵點被用來計算嘴的輪廓,眼睛等用來渲染虛擬化妝。Figure2z展示了這一效果:
Face Replacement

如何兩張人臉的特徵點已經估計出來了,你可以將一張人臉對齊到另一張人臉,並且可以無縫換臉。你也可以做像下面一樣傻瓜的事。
https://auduno.github.io/clmtrackr/examples/facesubstitution.html

先前的報告中,我們展示了如何使用人臉特徵點去預測人臉的吸引力。

很明顯,在圖片和視頻上進行人臉特徵點檢測為許多有趣的應用提供了很多的可能性。下面我們就將介紹一些有用的特徵點偵查工具。 Facial Feature Detection & Tracking Libraries

過去五年來,這個領域很火,部分原因是大量可以用來訓練的資料如LFPW、Helen被提供。我在下一節列了很多論文。但是我不建議胡亂實現這些論文,因為已經有開源的實現。

下面的視頻中,你可以看到兩個庫Dlib和CLM-framework.
http://7xrqgw.com1.z0.glb.clouddn.com/dlib_clm.mp4 Dlib(C++/Python)

Dlib是機器學習,電腦視覺,影像處理,線性代數中眾多演算法的集合。庫中大多數是標頭檔,你可以直接直接包含在C++應用中。或者你更喜歡Python?沒問題,他也有一個Python介面.

我個人更喜歡Dlib因為代碼是簡潔的,有大量的注釋,也可以被用來商用。他們選擇實現的演算法是非常快的,並且是準確的,你可以很容易整合這個庫到你的C++工程中,而你需要做的僅僅是包含標頭檔. 如何編譯Dlib? 從Github上下載:

git clone https://github.com/davisking/dlib.git
建立Examples(OSX\Linux)
cd dlib/examplesmkdir buildcd buildcmake .. cmake --build . --config Release

這些例子是一個開始使用Dlib的非常好的方法。拷貝一個例子的cpp檔案,修改它,修改examples/CMakeLists.txt 並且像上面一樣再一次編譯它。很容易吧。
3. 編譯dlib python 模組

cd dlib/python_examples ./compile_dlib_python_module.bat
設定 PYTHONPATH 環境變數
# Put the following line in .bashrc or .profileexport PYTHONPATH=/path/to/dlib/python_examples:$PYTHONPATH
測試python模組
python -c "import dlib"

如果以上都沒有問題的話,你就設定好了。 How to run Dlib’s facial landmark detector ?

當你編譯好examples後,為了在網路攝影機上運行人臉特徵點檢測器,可以這樣做:

cd examples/build/#Download the face landmark model wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2tar 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上編譯這個庫有點兒挑戰但是也不太難。庫依賴於OpenCV3和X11.

有兩個重要的事說明Dlib可以挑戰CLM-Framework。首先,Dlib比CLM-Framework更快。其次,Dlib的license允許你商用。如果要挑一個的,我會使用Dlib.有趣的是,CLM-Framework依賴於Dlib. 如何編譯CLM-Framework。

編譯CLM-Framework在OSX上有點兒複雜。對於Windows和linux,這裡有一份詳細的說明.為了在OSX上編譯version 1.3.0,我使用了linux的指示,但是發生了很多改變。

許多依賴項可以使用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臉部偵測器。

編譯後,可執行檔在bin路徑中.對於視頻中展現的網路攝影機Demo,你可以這樣使用:

bin/SimpleCLM
Face++ ( FacePlusPlus ) : Web API

人臉特徵點檢測最好的實現之一就是Face++.他們在300 Faces in-the-Wild
Landmark Detection Challenge,2013取得了冠軍。他們提供了一個易用的API。問題是你需要上傳一張圖片到他們的伺服器,這個將帶來很多隱私上的擔憂。但是如果隱私不是問題的話,Face++是一個好的選擇。你可以在
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]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.