人脸检测的Viola-Jones方法

对于人脸识别这种类型的应用来说,通常都会分为几个步骤:

  1. 人脸检测(Face Detection)。检测到人脸所在的区域。并进行一系列的矫正。

  2. 人脸校准(Face Alignment)。人脸校准指的是在图片中寻找到鼻子、眼睛、嘴巴之类的位置。


    Face Detect & align

    如图中,红色的框是在进行检测,白色的点是在进行校准。

  3. 信息识别(Info Recognition)。进行性别、年龄等信息的分析和识别。

这三个问题可以说每一个都是一个非常广泛的研究领域,有很多值得做的工作。本文只做一些简单的介绍。

人脸检测

Viola-Jones方法

传统的人脸检测算法是Viola-Jones算法。在OpenCV中的人脸检测功能也是使用的这种算法。它有三个核心步骤:Haar-like特征、Adaboost分类器和Cascade级联分类器。

Haar-like特征

所谓Haar-like特征其实很好理解。Haar-like特征类似于下图:

而所谓的Haar-like的特征值就是图中白色的像素值求和,求和之后与黑色的像素值做差得到的。即

feature=sum(white)-sum(black)

但是在一幅图中这样的特征是非常多的。根据Viola-Jones的论文,一幅24*24的图中这样的Haar-like特征就会达到18万种之多(具体的计算方式我们以后再说)。所以我们可以引入积分图(Integral Image)技术。积分图是一张与原图像大小完全相同的图片,不同之处在于其每一点的像素值是其左上角所有像素值的和。如图


Integral Image

在这样一幅图中,我们记某一点的像素值为ii(x),则当我们想要计算D区域中所有像素和时,使用ii(4)-ii(2)-ii(3)+ii(1)即可。这就可以大大减少计算时间,提升效率。

Adaboost方法

有了特征,想要得到区分函数是非常容易的。常见的SVM方法和KNN方法都是可以做到的。但尽管本身的计算并不复杂,但Haar特征还是太多了。尤其现在图片分辨率动辄成千上万。从这些特征中选取合适的特征就非常重要。从工程中得到的实践结果是,我们可以通过结合很多个弱分类器从而组合成一个强分类器。这就是Adaboost方法。用数学的方式就可以表示为:

F(x) =Σαf(x)

其中F为强分类器,f为弱分类器。x是特征向量,α为权重。Adaboost是一种序列化的方式,需要经过很多步。举个例子来看。


Adaboost example

在上图中,每个数据点都有一个类别的标签,不妨设红色为1,绿色为-1。每个数据点也有一个权重wt。初始权重均为1。

我们不妨先随意分一下看看。

ada eg2

看上去错误的还挺多的。我们可以经过几次平移选一个相对比较好的。虽然看上去就和乱分差不多。

ada eg3

这是只有一个线性划分函数的情况下比较好的结果了,但是仍然有很多错误的结果,我们不妨把它们的权重加大。

ada eg4

这个时候就发现了一个新的问题,类似地,我们把现在的权重情况下的数据点进行分类。

ada eg5

之后再加大划分错误的点的权重,并再次进行划分。

ada eg6

反复数次后就可以在数个线性分类器(或者说弱分类器)的基础上,构造一个非线性的分类器(强分类器)。而且这个分类器还比较好地完成了分类的任务。


ada 6

渣渣我还做了个gif展示效果。


adaboost

Cascade分类器

在VJ方法中的第三个亮点就是使用了级联分类器。简单来说,就是先将几个通过Adaboost方法得到的强分类器进行排序,排序原则是简单的放在前边。因为通常来说人脸只占一小部分,所以可以很放心地在前几层分类器就拒绝掉大部分非人脸区域。只要前一级拒绝了,就不在进入下一级分类器,这可以大大提高速度。其本质是一颗退化决策树。

Cascade Classifier

结果

在Viola和Jones的论文中,共建立了38层分类器来检测正面的人脸。使用了4916张人工标记的人脸,并调整到了24*24的分辨率。测试结果如下:


results

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

推荐阅读更多精彩内容