Facial Landmark Detection(人脸特征点检测)

image

转载地址: http://blog.csdn.net/xiamentingtao/article/details/50908190
原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375

作为计算机视觉研究员,我们很早就开始研究人脸。人脸分析领域最广为人知的就是人脸识别(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),这样在对齐之后所有图像中的人脸特征点的位置几乎是相同的。直观上来看,用对齐后的图像训练的人脸识别算法更加有效,这个直觉已经被很多论文验证。

Head pose estimation

一旦你知道了一些特征点的位置,你也可以估计头部的姿势。换句话说,你可以解决头部在空间中的定向问题,或者通俗的讲就是人朝那里看的问题。

Face Morphing (人脸变形)

人脸特征点可以对齐人脸,这样可以生成两张人脸的中间图像。如下图:


image

Virtual Makeover(虚拟化妆)

在我的公司
我们已经写了自己的人脸特征点检测器。检测出的特征点被用来计算嘴的轮廓,眼睛等用来渲染虚拟化妆。Figure2z展示了这一效果:

image

Face Replacement

如何两张人脸的特征点已经估计出来了,你可以将一张人脸对齐到另一张人脸,并且可以无缝换脸。你也可以做像下面一样傻瓜的事。
https://auduno.github.io/clmtrackr/examples/facesubstitution.html

先前的报告中,我们展示了如何使用人脸特征点去预测人脸的吸引力

很明显,在图片和视频上进行人脸特征点检测为许多有趣的应用提供了很多的可能性。下面我们就将介绍一些有用的特征点检测工具。

Facial Feature Detection & Tracking Libraries

过去五年来,这个领域很火,部分原因是大量可以用来训练的数据如LFPWHelen被提供。我在下一节列了很多论文。但是我不建议胡乱实现这些论文,因为已经有开源的实现。

下面的视频中,你可以看到两个库DlibCLM-framework.
http://7xrqgw.com1.z0.glb.clouddn.com/dlib_clm.mp4

Dlib(C++/Python)

Dlib是机器学习,计算机视觉,图像处理,线性代数中众多算法的集合。库中大多数是头文件,你可以直接直接包含在C++应用中。或者你更喜欢Python?没问题,他也有一个Python接口.

我个人更喜欢Dlib因为代码是简洁的,有大量的注释,也可以被用来商用。他们选择实现的算法是非常快的,并且是准确的,你可以很容易集成这个库到你的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. 设置 PYTHONPATH 环境变量
# Put the following line in .bashrc or .profile
export PYTHONPATH=/path/to/dlib/python_examples:$PYTHONPATH

  1. 测试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.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上编译这个库有点儿挑战但是也不太难。库依赖于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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容