3d结构光人脸识别别里面的请注意背光和侧光是怎么回事,怎么搞啊

人脸识别到底是怎么回事?_网易科技
人脸识别到底是怎么回事?
用微信扫码二维码
分享至好友和朋友圈
图像是空间数据挖掘的重要内容之一,本文用图片形象地解读如何使用云模型和数据场进行人脸表情分析和识别。一、基于云模型的人脸表情分析实验的原始数据取自JAFFE(Japanese Female Facial Expression)数据库(Lyonsetal., 1998)。JAFFE 数据库是一个开放的人脸表情图像数据库,包括KA、KL、KM、KR、MK、NA、NM、TM、UY、YM共10个不同的日本女性,每个人有AN、DI、FE、HA、NE、SA、SU共7种不同表情的人脸图像,分别为愤怒、厌恶、害怕、快乐、无表情、悲哀、惊讶,每种表情有3、4 张样本图像,总数是213张表情图像。原始图像为256×256 像素。基于云模型的JAFFE人脸表情分析。不同人的相同表情分析。作为输入的原始图像的图像云滴,反映的是1种表情在10个人表现的不同个性特征。在{Ex,En,He}图像中,Ex 揭示的是1种表情的基本共性,为其标准表情,可以反映表情的平均状态;En 揭示的是10个不同人对1种标准表情的偏离程度,可以反映10个不同人对1 种表情的表现程度,即受个人性格、环境影响的程度;He 揭示的是10个不同人对1种标准表情的偏离程度的离散度,可以反映10个不同人对1种表情的表现程度的差异,即个人性格、环境等因素对不同人的影响程度。相同人的不同表情分析。作为输入的原始图像的图像云滴,反映1个人的7种表情的不同个性特征。在{Ex,En,He}图像中,Ex 揭示的是1个人的基本共性,为其标准人脸的正常表情,可以反映1个人心平气和的状态;En 揭示的是1个人的不同表情对标准人脸的偏离程度,可以反映1个人在内外因素影响下的情绪波动的程度,即受环境影响的程度;He 揭示的是1个人的不同表情对标准人脸的偏离程度的离散度,可以反映1个人在内外因素影响下的情绪波动的程度的差异,即心理素质的稳定性。不同人的不同表情分析。输入的原始图像,反映的是不同人不同表情的个性特征,输出的数字特征{Ex,En,He}图像,反映的是不同人不同表情的共同共性特征,尽管输入的图片是不同人的不同表情图像,但这些输入的图像是在共同共性特征基础上添加了不同的个性特征。在{Ex,En,He}图像中,Ex 揭示的是人与表情的基本共性,为其标准人脸表情,可以反映人脸表情的平均状态;En 揭示的是不同人不同表情对这种标准人脸表情的偏离程度,可以反映不同人不同表情对这种标准人脸表情的表现程度,即受个人性格、环境影响的程度;He 揭示的是不同人不同表情对这种标准人脸表情的偏离程度的离散度,可以反映不同人不同表情对这种标准人脸表情的表现程度的差异,即个人性格、环境等因素对人脸表情的影响程度。把人脸图像的每个像素点看作二维空间中的数据对象,把每个像素点的灰度归一标准化到[0,1]区间,并视为数据对象的质量,那么在1幅图像中,每个像素点都向周围辐射能量,所有像素点的相互作用构成数据场。二、基于数据场的人脸表情识别基于人脸图像数据场的面部识别具体流程图。预处理后的标准人脸图像。基于人脸图像数据场的面部表情识别,首先对原始人脸图像进行尺度归一化,具体来说,就是以原始人脸图像的左、右两眼中心为基准,对图像进行旋转、切割和缩放,并结合椭圆掩模消除头发和背景的影响,最终得到32×32 像素的标准化人脸图像人脸图像数据场的等势线分布。对JAFFE 数据库中213张人脸图像进行统一处理,并采用基于数据力场的聚类算法对“特征脸”空间中的投影数据进行聚类划分,图为影响因子σ=0.05时相应的人脸图解像数据场的等势线分布。显然,代表不同面部表情的简化人脸图像在二维“特征脸”空间中具有相对较好的可分性。最终的识别结果如上表所示,该方法具有良好的正确识别率。基于特征点的简化人脸图像。对标准化人脸图像进行灰度变换,采用基于人脸图像数据场的特征提取方法提取每幅人脸图像的重要特征点,形成简化人脸图像;对简化人脸图像集合进行K-L变换得到的前6个主特征向量所对应的“特征脸”图像。对简化人脸图像集合进行K-L变换,计算总体离差矩阵的特征向量,构成公共“特征脸”空间。测试人脸图像在“特征脸”空间的二维投影。将简化人脸图像投影到公共“特征脸”空间中,得到的前两个主特征向量张成的二维“特征脸”空间中投影数据分布,以相应的投影系数作为人脸图像的逻辑特征。最后,根据逻辑特征,所有人脸图像在新的特征空间中形成二次数据场,根据数据间的相互作用和自组织聚集性实现人脸图像的聚类识别。具体地,再从JAFFE 数据库中选出10 幅不同表情的正面人脸灰度图像,其中7 幅图像来自同一个人,另外3幅来自3个陌生人。生成人脸数据场:可以得到自然聚类的人脸拓扑结构:
基于数据场的自然聚类。显然3个陌生人I、H、J的聚类速度最慢。
本文来源:科学网
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈人脸识别不光治闯红灯 孩子丢了27年都能找回来_新浪山东_新浪网
  上线一个多月,济南交警的人脸识别抓拍系统已经抓拍了269起行人、非机动车闯红灯违法行为。随着人脸识别技术的成熟,你的这张脸可能会变成你的活体数据库,身份验证、支付全靠他搞定!靠脸吃饭的时代要来啦,你准备好了吗?
  一个多月抓取了269个闯红灯的
  从5月初开始,济南交警在治理非机动车、行人闯红灯方面使出大招——利用人脸识别系统进行抓拍,通过抓拍来的照片准确地在千万人中锁定你的身份。
  “5月3日以来,这套系统一共抓取了269起行人、非机动车闯红灯违法行为。”济南市交警支队科研所相关负责人对齐鲁晚报记者说。
  闯红灯的行人和非机动车驾驶人被拍下来,交警部门如何确定其身份呢?
  济南市交警支队科研所民警魏景伙介绍,红灯亮起后,若有行人仍越过停止线,系统会自动抓拍4张照片,保留15秒视频。“照片和视频资料会回传到交警部门,我们从4张照片中挑中面部特征最清晰的一张,将违法人头像从照片中抠出来,再把这张抠图与省公安厅人口信息管理平台联网进行对比。”
  齐鲁晚报记者了解到,由于高清摄像头有夜间补光功能,即使凌晨抓拍也能做到成像清晰。即便是一群人闯红灯,系统抓拍照片也能将每个人相貌特征截取下来,当天就能确定违法人身份。
  “识别系统通过人脸识别,会把相似度最高的前30人调取出来,按相似度从高到低进行排序,一般相似度在95%以上的都可确定此人身份,工作人员会通过肉眼识别等方法反复确认。当然,有的照片是低头、侧脸角度无法识别。”魏景伙说。
  目前,济南市只有两个路口有抓拍系统,下一步市区约50个主要路口将陆续安装该系统。
  支付宝“刷脸支付”要来了
  人脸识别技术不仅在交警部门整治闯红灯中大显身手,作为人工智能一项重要内容,BAT都将其作为下一个风口进行布局。
  马云在德国汉诺威IT博览会上刷脸买礼物已过去两年有余,近日,网上流出的一则支付宝刷脸支付视频再次将这项技术推向大众视野。在曝光的视频中,用户支付时只需要进行脸部扫描,之后输入手机号码后四位进行验证,即可完成支付。
  据悉,在实验室内测环节连手机号码都不需要输入,只进行刷脸就能完成一次完整支付。为了技术大规模普及商用,才加入了二次验证来保护账户安全,降低风险。有消息显示,支付宝合作伙伴的门店不久将上线“刷脸支付”这一功能。
  而在近日举行的百度联盟峰会上,李彦宏透露百度北京总部不仅可以刷脸过安检闸机,还可以刷脸支付。现场演示的一个视频里,一名百度员工通过刷脸在百度食堂吃上了饭,喝上了可乐。
  刷脸支付意味着什么?它能让广大消费者省去记密码、输密码的繁琐,99%的人脸识别率降低了信息和密码被窃取的风险,你自己便是一张行走的活体银行卡,秒识别、秒验证让支付生活更加方便快捷。
  人脸寻亲,孩子丢了27年都能找回来
  在今年的百度联盟峰会上,李彦宏分享了百度人脸识别技术如何帮一对七旬老人利用一张照片找到走失8个月的儿子的真实故事。之前,百度已经利用人脸识别成功帮助被拐27年的“孩子”找到了亲人。
  百度研究院院长林元庆透露,年龄跨度越大人脸识别难度越大。百度人脸识别用数据训练好的模型作为底座,然后用跨年龄数据对其更新,做到跨年龄人脸识别。
  今年5月,沈阳地铁站安装上线了旷视(Face++)人脸识别系统,运行仅27小时就识别出两名网上逃犯。该系统1秒内可将实时照片与公安网上逃犯数据库内的几十万数据进行计算对比,如发现逃犯警务室内的警报系统会瞬时响起。
  人脸识别还会让鉴黄师失业。浪潮就向直播平台七牛派驻了“鉴黄师”——名为NF5568M4的GPU服务器。其精度浮点计算能力可达每秒40万亿次,可承载海量的并发鉴黄任务。
  机器怎么认出网红脸
  “同样一张图,人可以在图中看到一个五官分明的人,在机器眼中却什么也不是,因为电脑只知道0和1。”苏州科达科技股份有限公司相关负责人谢永澎说。该公司从事人脸识别技术研究,运用于门禁系统、公安安全系统中。
  机器怎么辨识人脸呢?这其实就是提取人脸几何数据,在人脸上找到鼻尖,眼角,嘴角等特征点,比如两眼间距离,鼻子和嘴角连线和水平线所成的角度等。“各类门禁系统进行识别时,员工给出正脸,机器拿着识别出的数据,在已有的公司人员数据库中找到这是哪一个人,这类人脸识别技术相对来说比较简单。”谢永澎说。
  如果只拍到低头或侧脸照片,在神化妆技术、或者双胞胎兄弟面前,人脸识别系统会不会出现错误?在谢永澎看来,人脸识别成功的关键突破在于计算机拥有学习技能,通过一张张图片辨别积累经验,不断提高鉴别精确度。齐鲁晚报记者了解到,百度AI为了达到与人类相似的水平深度学习了2亿张图片。
  (齐鲁晚报·齐鲁壹点 记者 韩笑)
06-16 08:11|分享
06-16 08:09|分享
06-16 08:08|分享
06-16 08:07|分享
06-16 08:05|分享
06-16 08:04|分享
06-16 08:01|分享
06-16 07:58|分享
06-16 07:53|分享
06-15 17:50|分享
新浪地方站百度人脸识别搜索是怎么实现的?
如果用户给出一张图片,百度识图会判断里面是否出现人脸,如果有,百度识图在相似图片搜索之外,同时会全网寻找出现过的类似人像。
如何通过一张图片,找到另一张图片?
对于搜索引擎而言,寻找图片之间的内在联系,与常见的关键词搜索并没有本质区别&&都是通过关键特征的比对,按照一定的逻辑规则完成匹配。然而不同之处也是显而易见的,以图片为输入发起的搜索,存在多种搜索含义的可能。
比方,一张图片可能既包括风景又包括人,用户想要寻找的是类似风景、类似布局结构的图片还是类似的人?谷歌以图搜图功能,甚至可以根据一张图片猜出拍摄地,但并不会尝试对图片中的人物精确匹配。多数搜索引擎都会如此。
而且大部分以图片作为输入的搜索引擎,例如tineye(2008年上线)、搜狗识图(2011年上线)等,本质上是进行图片近似拷贝检测,即搜索看起来几乎完全一样的图片。2010年推出的百度识图()也是如此。
在经历两年多的沉寂之后,百度识图开始向另一个方向探索。
上周的百度年会中,李彦宏特意提到百度识图:&以图搜图的准确率从20%提升到80%&。不过与之前相比,百度识图找到相似图片的能力似乎并未显著提升,那么改变从何而来?李彦宏把这种明显的提升归因于刚上线的人脸识别搜索。
与之前的区别在于,如果用户给出一张图片,百度识图会判断里面是否出现人脸,如果有,百度识图在相似图片搜索之外,同时会全网寻找出现过的类似人像。
新增加的技术简而言之,首先是人脸检测并提取出特征表达,随后再据此进行数据库对比,最后按照相似度排序返回结果。其实,人脸检测并不是新技术,相关研究已有三十年历史,然而直到去年底,百度才决定推动这一技术付诸实施。
这里面自然有战略层面的考虑。两年前,李彦宏就对未来做出读图时代的判断;去年的KDD大会上,李彦宏提出的九大待解技术挑战中,基于内容的图像搜索技术被列在第三;现实层面百度的图片相关产品、云相册等均对这一技术有需求。
百度还希望借助这一途径,挖掘图片之间的联系,进而激发二次浏览。然而要把想法变为现实,百度至少要解决两个问题:一是算法,二是数据。
&&算法方面。同样是基于图片进行搜索,人脸识别和以图搜图并不一样。百度资深工程师陶吉告诉创事记,百度人脸识别首先并不关注完整的图像结构,其次颜色也没有任何意义。最主要的特征表达来自于脸部纹理,并进行一些再加工。
具体算法作为商业机密,难以对外界披露。不过资料显示,目前人脸识别算法中LBP是比较流行的一种特征提取方式,即通过像素周边8个临近像素的灰度值和中心灰度值比较,得到一个八位编码,然后再根据编码的直方图进行分类。
而影响算法效果的因素还可能包括预处理、特征选择、特征点定位精度、分类器设计和后处理乃至各种方式的融合、阈值选择等各个方面。
一张图片中,人脸至少有40&40像素(约一个指甲盖大小),才会被当作有效的识别对象。如果一张图片中多个人像,目前百度的解决办法是仅识别尺寸最大的那个,未来百度将提供焦点选择功能,用户可以通过选点确定搜索对象。
&&数据方面。算法的改善如果算是充分条件,数据的处理则是必要条件。从机器搜索的角度看,光照、姿态、表情、角度等因素,均是影响巨大的因素,所谓&笑和不笑,都是不同&。所以用来训练的数据量越大,变化的包容性就越好。
人脸识别搜索实际使用时,同一张人脸积累的数据越多,越能在匹配对比时提供更好的支持。为此百度需要把全网近百亿规模的图片抽取出来,然后把没有人脸的数据去掉,再海量扫描一遍,建立起尽量高效的索引。
人脸识别引入搜索引擎,必然会加剧外界关于隐私泄漏的担心。百度强调人脸搜索只会在公开的信息范围内进行,封闭的个人相册并不会被触及。
这还涉及准确率、召回率等概念。假设数据库里有一百张刘德华的图片,用刘德华的头像发起搜索,前50张结果中40张是真正的刘德华,那么前50张的召回率就是40%,准确率是80%。同样假如数据库中只有两张路人甲的图片,当用路人甲的头像发起搜索,前50张可能只有1张真正的路人甲,那么前50张的召回率是50%,准确率是2%。
由于名人在网上的照片较多,能被用户感知到的准确率要比普通人高很多,而召回率是用户感知不到的。据透露,人脸识别搜索技术会在百度云相册内部进一步结合,帮助用户在图片之间建立联系,而且未来不排除开放API的可能。
除了上述技术讨论之外,从百度的研发体系看,人脸识别搜索也颇具代表性。
这个先后投入几十个工程师、百度基础技术部的多媒体部门负责核心算法的项目,去年11月下旬立项,12月底就已经上线运行。这个速度在百度并不常见,因此也有人半开玩笑的说这是百度近期&改作风&运动成效的代表。
值得注意的是百度新成立的基础技术部。这个部门由百度首席科学家王海峰带领,并且直接向李彦宏汇报。据说一些李彦宏会亲自参与一些重点项目。自然语言处理、互联网数据挖掘、多媒体、推荐和个性化等技术研发,均由百度基础技术部负责。
还是在百度年会上,谈及近期遇到的挑战,李彦宏称百度不会忽视渠道的价值,但技术才是未来产业的关键。&相信技术的力量,未来就在我们手里&,李彦宏发出这样的号召。显然,百度的&变奏&已是必然要上演。
相关报道:
新闻热线:010-
责任编辑:任光飞
名企动态: |
标志着Windows迈出个性化计算的第一步……
本站特聘法律顾问:于国富律师
Copyright (C) 1997-人脸识别技术大总结(1):Face Detection & Alignment - 文章 - 伯乐在线
& 人脸识别技术大总结(1):Face Detection & Alignment
搞了一年人脸识别,寻思着记录点什么,于是想写这么个系列,介绍人脸识别的四大块:Face detection, alignment, verification and identification(recognization),本别代表从一张图中识别出人脸位置,把人脸上的特征点定位,人脸校验和人脸识别。(后两者的区别在于,人脸校验是要给你两张脸问你是不是同一个人,人脸识别是给你一张脸和一个库问你这张脸是库里的谁。
今天先介绍第一部分和第二部分。 主要说三篇顶会文章。
人脸检测(detection)在opencv中早就有直接能拿来用的haar分类器,基于Viola-Jones算法。但是毕竟是老掉牙的技术,Precision/Recall曲线渣到不行,在实际工程中根本没法给boss看,作为MSRA脑残粉,这里介绍一种MSRA在14年的最新技术:Joint Cascade Face Detection and Alignment(ECCV14)。这篇文章直接在30ms的时间里把detection和alignment都给做了,PR曲线彪到很高,时效性高,内存占用却非常低,在一些库上虐了Face++和Google Picasa,正好契合这篇想讲的东西。可以作为本节的主线。
人脸校准(alignment)是给你一张脸,你给我找出我需要的特征点的位置,比如鼻子左侧,鼻孔下侧,瞳孔位置,上嘴唇下侧等等点的位置。如果觉得还是不明白,看下图:
图中红色框框就是在做detection,白色点点就是在做alignment。
如果知道了点的位置做一下位置驱动的变形,脸就成正的了,如何驱动变形不是本节的重点,在此省略。
首先介绍一下下面正文要写的东西,由于干货非常多所以可能会看着看着就乱了,所以给出框架图:
=================================
废话说了这么多,正文开始~
作者建立了一个叫post classifier的分类器,方法如下:
1.样本准备:首先作者调用opencv的Viola-Jones分类器,将recal阀值设到99%,这样能够尽可能地检测出所有的脸,但是同时也会有非常多的不是脸的东东被检测出来。于是,检测出来的框框们被分成了两类:是脸和不是脸。这些图片被resize到96*96。
2.特征提取:接下来是特征提取,怎么提取呢?作者采用了三种方法:
第一种:把window划分成6*6个小windows,分别提取SIFT特征,然后连接着36个sift特征向量成为图像的特征。
第二种:先求出一个固定的脸的平均shape(27个特征点的位置,比如眼睛左边,嘴唇右边等等),然后以这27个特征点为中心提取sift特征,然后连接后作为特征。
第三种:用他们组去年的另一个成果Face Alignment at 3000 FPS via Regressing Local Binary Features (CVPR14) ,也就是图中的3000FPS方法,回归出每张脸的shape,然后再以每张脸自己的27个shape points为中心做sift,然后连接得到特征。
3.分类:将上述的三种特征分别扔到线性SVM中做分类,训练出一个能分辨一张图是不是脸的SVM模型。
紧接着作者将以上三种方法做出的分类器和初始分类器进行比对,画了一个样本分布的图:
这个图从左到右依次是原始级联分类器得到的样本分类分布和第一种到第三种方法提取的特征得到的样本分类分布。可见做一下shape alignment可以得到一个更好的分类效果。但是问题来了:如果把所有的windows都做一下alignment,即使是3000 faces per second的速度一张图可能也要处理上1秒,这无法满足一般一秒30帧的实时需求。作者也说,用opencv分类器,参数设成99%的recall率将会带来很严重的效率灾难——一张图能找出来3000个框,处理一张图都要好几秒。
这么渣的效率可咋办呢?以上内容已经证明了alignment确实对detection的preciseness有帮助,这就够啦,对下面的工作也是个启发——能不能在做detection的同时把alignment做了呢?alignment的中间结果是否能给detection带来一些帮助呢?后面慢慢讲。先说两个通用的面部检测和矫正的模型:
1.级联检测分类器(bagging):不失一般性,一个简单的级联分类器是这样的:
图中的Ci代表的是第i个弱分类器。x代表的是特征向量,f代表分类得分。每个Ci会根据自己的分类方法对x输出一个分类结果,比如是一张脸或者不是一张脸,而fn(n=1~N)都会对应一个thresholdΘi,让任意一个fn小于对应的Θi的时候,样本就会被拒绝。通常不是一张脸的图片在经过前几个弱分类器的判断后就会被拒绝,根本不用做后面的判断,所以速度很快。
2.级联回归校准(我这翻译…+_+):这里介绍的是另一个人在10年发的文章:Cascaded Pose Regression (CVPR10),给图像一个初始shape(通常采用平均shape),然后通过一次一次的回归把shape回归到正确的地方。算法结构很简单,但是效果确实非常好:
回归过程如下:首先提取特征,原作者采用的是Pose-Indexed point features,然后根据特征训练回归函数(可以用线性回归,CART,随机森林等等),原作者采用了一个叫Random Fern Regressor的东西,这里翻译成随机蕨好了(这名字…),回归出这一阶段的偏移量,然后shape加上这个偏移量,反复这一过程,直到迭代上限或者shape错误率不再下降。随机蕨的算法过程和随机森林类似,他是一个半朴素贝叶斯模型。首先选取M组每组K个特征建立M个蕨(弱分类器),然后假设蕨内特征是相关的,蕨间特征是独立的,这样从统计学上随机蕨是一个完整的把朴素贝叶斯分类器,让计算变得简单:
式中C代表分类,ci代表第I类,M代表蕨数量。
综上,这样回归的过程可以总结成如下形式:
S代表shape,St代表在回归第t阶段的shape,他等于上一阶段的shape加上一个偏置,这个偏置就是上述回归方法之一搞定的。比如随机森林或者随机蕨,或者线性回归。
现在再说说怎么训练得到这个回归Rt。
有两种思路:一种是像刚才随机蕨那样,每个每个蕨的叶子节点存储一个偏移量,计算训练的时候落入这个叶子节点的样本偏移之平均,然后作为最终的叶子节点偏移量。其实就是在优化一个如下目标函数:
然而MSRA组在3000fps中采用的是另一种方法,形状的偏移量ΔδS为:
目标函数是:
其实也是同样的思路,Φ代表特征提取函数,论文中称Φ的输出为局部二值特征(LBF),W为线性回归参数矩阵,其实就是把提取出来的特征映射到一个二维的偏移量上,是一个2*lenth(特征空间维数)的变换矩阵。
首先讲Φ是怎么训练的:Φ其实就是一个随机森林。输入像素差特征(pixel-difference features),输出一个offest。训练的时候随机给每个根节点像素差特征中的一部分。非叶节点的分裂依据是从输入的pixel-difference features中找出能够做到最大的方差衰减的feature。在最后的叶子节点上写上落在叶子节点上的样本偏移量,这个偏移量在之前说到的fern里有用,但是在这里没啥用,因为作者最后不是用这个做回归的而是用LBF,详细的得往下看。如果有多个样本都落在这里,则求平均。这样训练出来的东西就是下面这个公式所表达的东西:
可能有读者看到这就会不懂了,不用管这个公式,等下面的看完了就会懂了。
但是我只想要其中的Φ,于是这里给出了LBF(local binary feature)的定义,直接简单粗暴地统计所有树叶节点是否被该样本落入,如果落入了就记为1否则记为0,然后把所有的01串连起来就是LBF了。还是看图说话:
先看b,随机森林的三棵树,样本经过三棵树后分别落在了第1,2,3个叶子节点上,于是三棵树的LBF就是10.连接起来就是.然后看a,把27个特征点的lbf都连接起来形成总的LBF就是Φ了。
接下来是训练w:之前已经得到了wΦ(I,S)以及Φ(I,S),现在想求w,这还不容易吗,直接算呀。不过作者又调皮了,他说他不想求w,而是想求一个总的大W=[w1,w2,w3,…,w27].怎么求呢?得做二次回归。至于为什么要这么做下面会介绍。目标函数:
后面加了个L2项,因为W是炒鸡sparse的,防止过拟合。做线性回归即可得到W。
现在解释一下为啥不直接用w1w2w3…而是要再回归出来一个W:原因有两个:
1. 再次回归W可以去除原先小wi叶子节点上的噪声,因为随机森林里的决策树都是弱分类器嘛噪声多多滴;
2.大W是全局回归(之前的一个一个小w也就是一个一个特征点单独的回归是local回归),全局回归可以有效地实施一个全局形状约束以减少局部误差以及模糊不清的局部表现。
这样一来,测试的时候每输入一张图片I,先用随机森林Φ求出它的LBF,然后在用W乘一下就得到了下一个stage的shape,然后迭代几次就得到了最终的shape。所以效率十分的快。
好了,兜了一大圈该回来了,刚才讲的是两个uniform的model来做detection和shape regression的。接下来该讲作者是怎么边detection边regression shape的了!
作者建立了一个分类回归树,就叫CRT好了。这个CRT在距离根节点比较近的几层偏重于分类,在接近叶子节点的几层偏重于回归,具体实现上,每个节点究竟用于回归还是分类呢?用一个概率p表示用于分类的概率,自然回归就是1-p了。而这个p随着深数的深度减小,作者采用了一个经验公式:
知道了CRT怎么建立,那就直接就看算法细节吧!边测试是不是脸边做特征点回归的算法如下:
这个模型的训练方法如下:
这样就算完了吗?不,既然要实现,就要细看一下以上用到的各类算法细节:
部分摘自其他博客,详见参考文献。
1.CART(Classification And Regression Tree)
思想:递归地将输入空间分割成矩形
优点:可以进行变量选择,可以克服missing data,可以处理混合预测
缺点:不稳定
分类训练过程:
就这样不断分割之后可以建立如下这样的决策树:
2.Bagging (Breiman1996): 也称bootstrap aggregation
Bagging的策略:
– 从样本集中用Bootstrap采样选出n个样本
– 在所有属性上,对这n个样本建立分类器(CART or SVM or …)
– 重复以上两步m次,i.e.build m个分类器(CART or SVM or …)
– 将数据放在这m个分类器上跑,最后vote看到底分到哪一类
Fit many large trees to bootstrap resampled versions of the training data, and classify by majority vote.
下图是Bagging的选择策略,每次从N个数据中采样n次得到n个数据的一个bag,总共选择B次得到B个bags,也就是B个bootstrap samples.
流程图如下:
3.随机森林:
随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出,并被注册成了商标。简单来说,随机森林就是由多棵CART(Classification And Regression Tree)构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,根据Leo Breiman的建议,假设总的特征数量为M,这个比例可以是sqrt(M),1/2sqrt(M),2sqrt(M)。
因此,随机森林的训练过程可以总结如下:
(1)给定训练集S,测试集T,特征维数F。确定参数:使用到的CART的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:节点上最少样本数s,节点上最少的信息增益m
对于第1-t棵树,i=1-t:
(2)从S中有放回的抽取大小和S一样的训练集S(i),作为根节点的样本,从根节点开始训练
(3)如果当前节点上达到终止条件,则设置当前节点为叶子节点,如果是分类问题,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例;如果是回归问题,预测输出为当前节点样本集各个样本值的平均值。然后继续训练其他节点。如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征。利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点。继续训练其他节点。有关分类效果的评判标准在后面会讲。
(4)重复(2)(3)直到所有节点都训练过了或者被标记为叶子节点。
(5)重复(2),(3),(4)直到所有CART都被训练过。
利用随机森林的预测过程如下:
对于第1-t棵树,i=1-t:
(1)从当前树的根节点开始,根据当前节点的阈值th,判断是进入左节点(&th)还是进入右节点(&=th),直到到达,某个叶子节点,并输出预测值。
(2)重复执行(1)直到所有t棵树都输出了预测值。如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;如果是回归问题,则输出为所有树的输出的平均值。
注:有关分类效果的评判标准,因为使用的是CART,因此使用的也是CART的平板标准,和C3.0,C4.5都不相同。
对于分类问题(将某个样本划分到某一类),也就是离散变量问题,CART使用Gini值作为评判标准。定义为Gini=1-∑(P(i)*P(i)),P(i)为当前节点上数据集中第i类样本的比例。例如:分为2类,当前节点上有100个样本,属于第一类的样本有70个,属于第二类的样本有30个,则Gini=1-0.7×07-0.3×03=0.42,可以看出,类别分布越平均,Gini值越大,类分布越不均匀,Gini值越小。在寻找最佳的分类特征和阈值时,评判标准为:argmax(Gini-GiniLeft-GiniRight),即寻找最佳的特征f和阈值th,使得当前节点的Gini值减去左子节点的Gini和右子节点的Gini值最大。
对于回归问题,相对更加简单,直接使用argmax(Var-VarLeft-VarRight)作为评判标准,即当前节点训练集的方差Var减去减去左子节点的方差VarLeft和右子节点的方差VarRight值最大。
Random Forest与Bagging的区别在于:Bagging每次生成决策树的时候从全部的属性Attributes里面选择,而Random Forest是随机从全部Attributes的集合里面生成一个大小固定的子集,相对而言需要的计算量更小一些。
4.Boosting(Freund & Schapire 1996):
boosting在选择hyperspace的时候给样本加了一个权值,使得loss function尽量考虑那些分错类的样本(i.e.分错类的样本weight大)。
怎么做的呢?
– boosting重采样的不是样本,而是样本的分布,对于分类正确的样本权值低,分类错误的样本权值高(通常是边界附近的样本),最后的分类器是很多弱分类器的线性叠加(加权组合),分类器相当简单。
结构如图:
AdaBoost和RealBoost是Boosting的两种实现方法。general的说,Adaboost较好用,RealBoost较准确。由于Boosting算法在解决实际问题时有一个重大的缺陷,即他们都要求事先知道弱分类算法分类正确率的下限,这在实际问题中很难做到。后来 Freund 和 Schapire提出了 AdaBoost 算法,该算法的效率与 Freund 方法的效率几乎一样,却可以非常容易地应用到实际问题中。AdaBoost 是Boosting 算法家族中代表算法,AdaBoost 主要是在整个训练集上维护一个分布权值向量 D( x) t ,用赋予权重的训练集通过弱分类算法产生分类假设 Ht ( x) ,即基分类器,然后计算他的错误率,用得到的错误率去更新分布权值向量 D( x) t ,对错误分类的样本分配更大的权值,正确分类的样本赋予更小的权值。每次更新后用相同的弱分类算法产生新的分类假设,这些分类假设的序列构成多分类器。对这些多分类器用加权的方法进行联合,最后得到决策结果。这种方法不要求产生的单个分类器有高的识别率,即不要求寻找识别率很高的基分类算法,只要产生的基分类器的识别率大于 015 ,就可作为该多分类器序列中的一员。
寻找多个识别率不是很高的弱分类算法比寻找一个识别率很高的强分类算法要容易得多,AdaBoost 算法的任务就是完成将容易找到的识别率不高的弱分类算法提升为识别率很高的强分类算法,这也是 AdaBoost 算法的核心指导思想所在,如果算法完成了这个任务,那么在分类时,只要找到一个比随机猜测略好的弱分类算法,就可以将其提升为强分类算法,而不必直接去找通常情况下很难获得的强分类算法。通过产生多分类器最后联合的方法提升弱分类算法,让他变为强的分类算法,也就是给定一个弱的学习算法和训练集,在训练集的不同子集上,多次调用弱学习算法,最终按加权方式联合多次弱学习算法的预测结果得到最终学习结果。包含以下2点:
样本的权重
AdaBoost 通过对样本集的操作来训练产生不同的分类器,他是通过更新分布权值向量来改变样本权重的,也 就是提高分错样本的权重,重点对分错样本进行训练。
(1) 没有先验知识的情况下,初始的分布应为等概分布,也就是训练集如果有 n个样本,每个样本的分布概率为1/ n。(2) 每次循环后提高错误样本的分布概率,分错的样本在训练集中所占权重增大,使得下一次循环的基分类器能够集中力量对这些错误样本进行判断。
弱分类器的权重
最后的强分类器是通过多个基分类器联合得到的,因此在最后联合时各个基分类器所起的作用对联合结果有很大的影响,因为不同基分类器的识别率不同,他的作用就应该不同,这里通过权值体现他的作用,因此识别率越高的基分类器权重越高,识别率越低的基分类器权重越低。权值计算如下: 基分类器的错误率: e = ∑( ht ( x i) ≠yi) Di (1) 基分类器的权重:W t = F( e) ,由基分类器的错误率计算他的权重。2.3 算法流程及伪码描述 算法流程描述 算法流程可用结构图 1 描述,如图 1 所示 AdaBoost重复调用弱学习算法(多轮调用产生多个分类器) ,首轮调用弱学习算法时,按均匀分布从样本集中选取子集作为该次训练集,以后每轮对前一轮训练失败的样本,赋予较大的分布权值( Di 为第i 轮各个样本在样本集中参与训练的概率) ,使其在这一轮训练出现的概率增加,即在后面的训练学习中集中对比较难训练的样本进行学习,从而得到 T个弱的基分类器, h1 , h2 , …, ht ,其中 ht 有相应的权值 w t ,并且其权值大小根据该分类器的效果而定。最后的分类器由生成的多个分类器加权联合产生。
==================================
参考文章:
[1]Joint Cascade Face Detection and Alignment(ECCV14)
[2]Face Alignment at 3000 FPS via Regressing Local Binary Features (CVPR14)
[3]Cascaded Pose Regression (CVPR10)
[4]Fast Keypoint Recognition in Ten Lines of Code
[5]女神的博文:
可能感兴趣的话题
了解了,真有点难理解!
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线}

我要回帖

更多关于 阳光人脸识别改数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信