❶ 求下载过cacd2000数据集,Adience数据集和IMDB-WIKI数据集的大神能分享到我的邮箱,不胜感激!!
公开人脸数据集
本页面收集到目前为止可以下载到的人脸数据库,可用于训练人脸深度学习模型。
人脸识别
数据库
描述
用途
获取方法
WebFace 10k+人,约500K张图片 非限制场景 链接
FaceScrub 530人,约100k张图片 非限制场景 链接
YouTube Face 1,595个人 3,425段视频 非限制场景、视频 链接
LFW 5k+人脸,超过10K张图片 标准的人脸识别数据集 链接
MultiPIE 337个人的不同姿态、表情、光照的人脸图像,共750k+人脸图像 限制场景人脸识别 链接 需购买
MegaFace 690k不同的人的1000k人脸图像 新的人脸识别评测集合 链接
IJB-A 人脸识别,人脸检测 链接
CAS-PEAL 1040个人的30k+张人脸图像,主要包含姿态、表情、光照变化 限制场景下人脸识别 链接
Pubfig 200个人的58k+人脸图像 非限制场景下的人脸识别 链接
人脸检测
数据库
描述
用途
获取方法
FDDB 2845张图片中的5171张脸 标准人脸检测评测集 链接
IJB-A 人脸识别,人脸检测 链接
Caltech10k Web Faces 10k+人脸,提供双眼和嘴巴的坐标位置 人脸点检测 链接
人脸表情
数据库
描述
用途
获取方法
CK+ 137个人的不同人脸表情视频帧 正面人脸表情识别 链接
人脸年龄
数据库
描述
用途
获取方法
IMDB-WIKI 包含:IMDb中20k+个名人的460k+张图片 和维基网络62k+张图片, 总共: 523k+张图片 名人年龄、性别 链接
Adience 包含2k+个人的26k+张人脸图像 人脸性别,人脸年龄段(8组) 链接
CACD2000 2k名人160k张人脸图片 人脸年龄 链接
人脸性别
数据库
描述
用途
获取方法
IMDB-WIKI 包含:IMDb中20k+个名人的460k+张图片 和维基网络62k+张图片, 总共: 523k+张图片 名人年龄、性别 链接
Adience 包含2k+个人的26k+张人脸图像 人脸性别,人脸年龄段(8组) 链接
人脸关键点检测
数据库
描述
用途
获取方法
数据库 描述 用途 获取方法
人脸其它
数据库
描述
用途
获取方法
CeleBrayA 200k张人脸图像40多种人脸属性 人脸属性识别 获取方法
GitHub:DeepFace
❷ 人脸数据分析是什么
人脸数据分析是什么
人脸数据分析是什么,人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,随着科技发展现在很多场所都用的到人脸分析,很多人还不清楚其中的原理是什么,那么就来了解一下人脸数据分析是什么吧。
人脸数据分析是什么1
一、人脸识别技术
完整的人脸识别系统一般包括人脸检测跟踪、人脸关键点定位、人脸属性分析、人脸验证、人脸识别、人脸聚类等模块。
1、人脸检测跟踪:
人脸检测跟踪技术提供快速、高准确率的人像检测功能。对背景复杂低质量的图片或百人人群监控视频,可以在移动设备和个人电脑上实现毫秒级别的人脸检测跟踪。
2、人脸关键点定位:
人脸关键点定位可以精确定位面部的关键区域位置,微秒级别眼,口,鼻轮廓等人脸106个关键点定位漏孙。该技术可适应一定程度遮挡和大角度侧脸,表情变化,遮挡,模糊,明暗变化等各种实际环境。
3、人脸属性分析:
提供准备的面部分析技术,准确识别10多种人脸属性大类,例如性别,年龄、种族、表情、饰品、胡须、面部动作状态等。可以用于广告定向投放或顾客信息分析,让你秒懂顾客户心。
4、人脸验证、识别、聚类:
人脸验证技术可被用于登录验证、身份识别等应用场景。给定人脸样本,毫秒级别检索大规模人脸数据库或监控视频,给出身份认证,实现身份和人脸绑定。
人脸识别技术可以自动识别出照片、视频流中的人脸身份,可以实现安防检查、VIP识别、照片自动圈人、人脸登录等功能能,在认证出96%的人脸时,误检率低于十万分之一。数十万人的人脸快速聚类,可用于基于人脸的智能相册以及基于合影的社交网络分析。让照片管理更直观,让社交关系更清晰。
二、智能广告大数据分析特点
1、精确统计进出店铺的客流量:
启动应用,显示人脸识别检测界面,通过人脸识别技术检测头肩、检测人脸、对人脸进行跟踪识别,提取人脸特征值,进行精准的人体判断,准确的识别用户人脸,基于人体跟踪,有效避免因徘徊、逗留引起的重复计数,从而达到精确统计进出店铺的客流量的数据。在统计客流量的同时展示店铺的广告宣传信息、店铺简介、特色产品、售后服务等相关信息。
2、精准分析入店客户:
通过人脸识别技术,主动分析每一位停留观看广告的年龄、性别、并实时上传至服务器,管理者通过对消费群体的数据分析,精准挖掘出店铺和产品主要面向的销售者群体属于哪一类人,从而改善产品设计、运营模式、推广方案,极大有利于提升店铺的利润和广告的回报率。
3、精确认识和挖掘VIP客户:
精确、实时识别VIP客户并推送用户信息至店员手机,VIP客户历史入店信息及购买记录一没念目了然,店员重点接待VIP客户大大提升店铺营业额。通过大数据分析挖掘回头客,提升客户提袋率及VIP客户转化率,系统自动识别并排除店员,不再误统计为客流,真正做到准确的返察链数据分析。
4、完备的报表:数据即事实 :
大数据分析并形成简洁、客观、精确的数据报表,直观的看到每日/月的客流量( 人数、人次)、客流人群分布(年龄、性别)、入店率、平均关注时间、提袋率(转化率),对店铺的客流量进行趋势分析(日、周、月),进行统一的广告效果分析,精准挖掘出每一个广告后面隐藏的客户数据,极大有利于广告制作和投放的精准营销,帮助商家精准定位有效客群,为投放商、制作方等相关企业提供可靠的数据参考,发现提高有效展示和回报率的关键。
5、大数据分析,驱动管理优化
通过大数据可以分析店铺什么产品最受关注、产品的目标客户群是哪些人、最受关注的产品是什么、单个产品为何有些销量高有些则低、VIP客户关注的是什么产品、什么区域受冷落、什么区域关注度比较高。
通过数据分析的结果优化店铺管理,找出最适合店铺的经营模式、消费者最关注的广告、转化率最高的产品、根据客户逛店路径分析热点区域,调整主打产品陈列引起客户关注度,改善店员服务过程中存在的不足,从宏观到细节进行优化,达到店铺的利益最大化。
6、 主动推送潜在客户,方便直接的提供业务帮助
将采集到的多用户信息进行聚类并分析得到统计数据,根据驻足观看的用户性别不同、年龄层次不同,1-2秒内切换广告内容,推送更针对性的产品广告信息。比如,为20-30岁的男性用户推送剃须刀、洗面奶等适合他们需求的广告,从而有效提高广告的关注效果,提高广告的传播和产品购买的`转化率。
人脸数据分析是什么2
人脸数据分析的应用价值
人脸识别需要积累采集到的大量人脸图像相关的数据,用来验证算法,不断提高识别准确性,这些数据诸如A Neural Network Face Recognition Assignment(神经网络人脸识别数据)、orl人脸数据库、麻省理工学院生物和计算学习中心人脸识别数据库、埃塞克斯大学计算机与电子工程学院人脸识别数据等。
1、在人脸识别的设备上,除人脸识别区域外,设置固定的广告播放区域,使用多媒体信息发布系统,定时或不定时地轮播商家自定义的广告,比如商家简介、产品介绍、活动促销、联系方式等多媒体信息。
内容展现方式多种多样,可以是视频、图片、文字、流媒体等素材,让用户体验到现代化购物的感觉,智能化的液晶产品可以让店铺的整体美观度大大提升,顿刻显得高大上。
2、对于每一个广告投放商而言,广告效果的好坏直接关系到投入产出比,也决定着未来是否需继续投放。而对于广告制作方来说,什么样的广告最能吸引目标客户?提高有效传播率,他们需要足够的数据调研来为下一步广告制作提供依据。
为此,南翼基于人脸识别的智能广告大数据分析解决方案,为广告机提供广告效果分析解决方案,帮助商家精准定位有效客群,为投放商、制作方等相关企业提供可靠的数据参考,发现提高有效展示和回报率的关键,提升广告运营的价值。
3、除了人脸识别外,我们还提供手势识别技术,用户可以自由通过简单、通用的手势进行广告内容的切换,或者还可以在线玩一些有趣的游戏,从而提高用户的好感度,也可以通过完成商家指定的人脸表情赢得奖品等活动来增强商家与客户的互动性。
❸ 建立多模态情感数据库属于什么技术领域
情感计算是为了赋予计算机识别、理解、表达和适应人类情感的能力,以此实现高效、亲切的人机交互。人类情感有着表情、语音、生理信号等多种载体,进行多模态情感识别研究可以促进情感计算庆模消的发展,而多模态情感识别研究需要多模态情感数据库的支持。当前的情感数据库多是单模态的,虽有少量的多模态数据库但是还存在着一些不足的地方。因此设计并建立一个包含平静码侍、高兴、惊奇、厌恶、伤心、生气、害怕7种情感的多模态情感数据库具有重要的理誉知论意义。<br> 本文首先设计了同步采集表情图片、语音、前额脑电信号三种模态数据的采集方案,筛选影视素材并制作了情感...
❹ 新鲜事:有专家说可以“读取”面部表情的AI其实不太可靠
现如今,人工智能越来越多地出现在我们的生活中没笑,为我们带来便利的同时,它的发展也存在一定的争议,例如与隐私、法律、道德伦理的冲突。针对可以“读懂”情绪的人工智能系统,心理学家给出了他们的一些看法,一起来看看吧!
Artificial Intelligence (AI) systems that panies claim can “read” facial expressionsis based on outdated science and risks being unreliable and discriminatory
one of the world’s leading experts on the psychology of emotion has warned.
一位研究情感心理学的世界顶尖专家警告称,某些公司声称可以“读懂”面部表情的人工智能技术是基于过时的科学,存在不可靠和具有歧视性的风险。
Lisa Feldman Barrett
professor of psychology at Northeastern University
said that such technologies appear to disregard a growing body of evidence undermining the notion that the basic facial expressions are universal across cultures. As a result
such technologies--some of which are already being deployed in real-world settings--run the risk of being unreliable or discriminatory
she said.
Northeastern大学的心理学教授丽莎·费尔德曼·巴雷特表示,此类技术似乎无视越来越多的证据,破坏了基本面部表情在整个文化中普遍存在的观念。她说,结果就是,这样的技术(其中一些已经在实际环境中部署了)存在着不可靠或歧视性的风险。
Amazon claimsits own facial recognition system
Rekognition
can detect seven basic emotions--happiness
sadness
anger
surprise
disgust
calmness and confusion.The EU is reported to be trialling sofare which purportedly can detect deception through an *** ysis of micro-expressions in an attempt to bolster border security.
亚马逊声称其自己的面部识别系统Rekognition能够识别七种基本情绪--快乐做察扰、悲伤、愤怒、惊讶、厌恶、冷静和困惑。据报道,欧盟正在试用一种软件,据称这种软件可以通过分析微表情来发现欺骗行为,以加强边境安全。
“Based on the published scientific evidence
our judgment is that [these technologies] shouldn’t be rolled out and used to make consequential decisions about people’s lives
” said Feldman Barrett.
Feldman Barrett说:“根据已发纯旦表的科学文献,我们的判断是,这些技术不应该推出并应用于人们生活中的重大决定。”
Speaking ahead of a talk at the American Association for the Advancement of Science’s annual meeting in Seattle
Feldman Barrett said the idea of universal facial expressions for happiness
sadness
fear
anger
surprise and disgust had gained traction in the 1960s after anAmerican psychologist
Paul Ekman
concted research in Papua New Guinea showing that members of an isolated tribe gave similar answers to Americans when asked to match photographs of people displaying facial expressions with different scenarios
such as “Bobby’s dog has died”.
20世纪60年代,在美国心理学家 Paul Ekman 在西雅图举行的美国美国科学进步协会年度会议上发表演讲之前,Feldman Barrett的通用面部表情表达快乐、悲伤、恐惧、愤怒、惊讶和厌恶的想法得到了认可。根据Paul Ekman 在巴布亚新几内亚进行的研究表明,当被要求将人们表现出面部表情的照片与不同的场景(例如“鲍比的狗死了”)相匹配时,独居部落的人也给出了类似的答案。
However
a growing body of evidence has shown that beyond these basic stereotypes there is a huge range in how people express emotion
both across and within cultures.
然而,越来越多的证据表明,在这些基本的刻板印象之外,不管是在跨文化中还是本文化中,人们表达情感的方式都有很大的差异。
In western cultures
for instance
people have been found to scowl only about 30% of the time when they’re angry
she said
meaning they move their faces in other ways about 70% of the time.
例如,在西方文化中,人们发现当他们生气的时候只有30%的概率会皱眉,这意味着他们还有70% 的可能会以其他方式移动脸部。
“There is low reliability
” Feldman Barrett said. “And people often scowl when they’re not angry. That’s what we’d call low specificity. People scowl when they’re concentrating really hard
when you tell a bad joke
when they have gas.”
Feldman Barrett说:“所以这可靠性很低。人们不生气的时候也会皱眉头。这就是我们所说的低特异性。当人们集中注意力的时候,或听到一个糟糕的笑话的时候,又或是当他们放屁的时候,他们也会皱起眉头。”
The expression that is supposed to be universal for fear is the supposed stereotype for a threat or anger face in Malaysia
she said. There are also wide variations within cultures in terms of how people express emotions
while context such as body language and who a person is talking to is critical.
她说,在马来西亚,人们普遍认为恐惧是一种威胁或愤怒的表情。在人们表达情感的方式上,不同文化之间也存在着很大的差异,而肢体语言和与之交谈的人这样的背景环境是至关重要的。
多知道一点
刷脸解锁手机
刷脸解锁手机,已经是我们习以为常的操作了。这背后其实是一种非接触式的生物识别技术。第一次录入面容时,手机系统通过前置摄像头扫描获取用户的脸部数据,这些数据会被转换为系统可以识别的数字信号并存储在数据库中。
当用户需要解锁时,手机会通过摄像头捕捉到的脸部进行3D建模,其中的数据会和原已存储的数据进行覈对,即可获得二者相似值,如果相似度足够高,则实现解锁。
❺ 人脸识别常用的人脸数据库有哪些
给你提供几个线索,数据都可以去数据堂下载。
1.FERET人脸数据库 -
由FERET项目创建,包含1万多张多姿态和光照的人脸图像,是人脸识别领域应用最广泛的人脸数据库之一.其中的多数人是西方人,每个人所包含的人脸图像的变化比较单一
2.CMU-PIE人脸数据库
由美国卡耐基梅隆大学创建,包含68位志愿者的41,368张多姿态,光照和表情的面部图像.其中的姿态和光照变化图像也是在严格控制的条件下采集的,目前已经逐渐成为人脸识别领域的一个重要的测试集合
3.YALE人脸数据库
由耶鲁大学计算视觉与控制中心创建,包含15位志愿者的165张图片,包含光照,表情和姿态
的变化.
4. YALE人脸数据库B
包含了10个人的5,850幅多姿态,多光照的图像.其中的姿态和光照变化的图像都是在严格控制的条件下采集的,主要用于光照和姿态问题的建模与分析.由于采集人数较少,该数据库的进一步应用受到了比较大的限制
5. MIT人脸数据库
由麻省理工大学媒体实验室创建,包含16位志愿者的2,592张不同姿态,光照和大小的面部图像.
6. ORL人脸数据库
由剑桥大学AT&T实验室创建,包含40人共400张面部图像,部分志愿者的图像包括了姿态,
表情和面部饰物的变化.该人脸库在人脸识别研究的早期经常被人们采用,但由于变化模式较少,多数系统的识别率均可以达到90%以上,因此进一步利用的价值已经不大.
7. BioID人脸数据库
包含在各种光照和复杂背景下的1521张灰度面部图像,眼睛位置已经被手工标注。
❻ 可鉴别的多特征联合稀疏表示人脸表情识别方法
基于稀疏表示的人脸表情识别系统研究
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2015)25-0137-03
人脸的表情包含了人体行为的情感信息和心理信息,这是人们在进行非语言的交流时所采取最有效的手段。人们可以根据表情来充分地将自己悉枝的思想以及情感表达出来,同时根据人脸表情来对对方内心世界和对方的态度来加以了解,所以说人脸的表情在日常生活当中扮演着极为重要的角色。表情能够将很多的语言以及声音不能够表达出来的信息给表达出来,其在医疗和语言学以及相关的服务行业中都在发挥着极为重要的作用。
1 人脸表情识别的技术现状
1.1 提取人脸表情特征
由于提取人脸表情特征采取的图像类型不一样,对此我们可以将其分成静态表情的图像特征进行提取以及序列表情的图像特征进行提取这两种。第一种提取的是表情静止时的特征,第二种提取的是表情在运动过程中的特征,对于第一种的提取方法一般为Gabor小波,主成份分析(PCA)以及线性的判断分析(LDA)等的方法;而针对与第二种的提取方法有特征点跟踪,查分图像法以及光流法等。
1)提取静态的表情特征的常用方法
PCA主要是用在抽取原始特征以及降维,这种方法运算的中心思想是把二维的图像转为一维向量,根据从大到小的排列顺序对特征值以及特征向量加以调整,并且通过K-L的变换投影获得正交基,对其加以取舍进而得到人脸的散键表情特征其子空间。其实际上识别表情的过程就是把测试的样本进行比较投影进表情特征的子空间里,之后再将其跟测试的样本加以比较判定出它的表情类别。Gabor小波这种方法是现在我们比较常用的一种表示特征的方法,它能够有效地将环境噪音加以清除,使提取的图像特征有效加强,主要是通过图像在不同方向不同尺度上的频率信息对图像的特征加以表明。
2)提取变动的表情特征常用的方法
对于序列图像特征加以提取的代表性方法就是光流法。这种方法在1981年被第一次提出,主要是根据对视频图像里的表情特征光流加以计算进而得到每一个特征点的运动情况,这就是表情特征。
第一种提取特征的方法它采集较方便,计算更快捷,但是不能够对更大时间和空间信息加以探知。而第二种提取特征的方法虽可以对运动的表情信息加以提取,进而使得到的识别效果较好,但这种方法其计算的数据量较庞大,且具有很高的重睁掘敏复率,实际的操作当中比较困难。因此从目前来看,提取表情特征应该朝着将各种提取方法相互融合来对信息加以特征提取。
1.2传统的人脸表情识别系统中存在的问题
对于人类表情识别的研究中可以依据人类对不同的表情加以区别上获得启发,但运用计算机的视觉技术准确地对人脸表情进行识别的系统,实际运用中还有很多难题。
1) 不容易建立起理想的人脸表情相关模型
因为人脸是比较柔的,所以把人的表情和情感进行分类,在此基础上再建立一个模型,把人类的表情特征以及情感信息再相对应这就显得十分的困难。
2)表情数据库不完善
现在很多研究的实验结果都是在各自研究团队里研发出来的表情数据库的基础上得到的,我们知道每一个表情库由于噪音或者是光照等环境方面的影响都各不相同,再加上每个表情库里的人脸图像在文化,种族当中都存在着比较大的区别,所以实验的结果应该多次加以重复验证,增加推广能力。
3)学科方法和技术有自身的局限性
尽管我们在对人脸识别的系统中研究工作正在逐步加深,得到了很大的进步,但因为很多的研究者都是自己展开工作,在新技术和新方法将优点充分发挥出来的同时也不可避免地有着自身的局限性,多种技术相互融合上面的工作开展得还比较慢。
2 提取改进LBP的人脸表情特征
局部二元模式(LBP)指的是一个能描述算子的有效图像纹理特征,根据存在于图像中的任意一点和它相邻那点的灰度值中发生的大小关系来判定图像中部分纹理空间构造,从这方面上来看,它有旋转和抗亮度变化的能力。
2.1 原始的LBP算子
LBP一开始先将图像中各个像素点之间的灰度值加以计算,将在各个像素点和跟她相邻的点存在于灰度值上的二值关系加以计算,根据计算后得出的二指关系根据相应规则来形成局部二值的模式,同时将多区域的直方图序列当做这个图像的一个二值模式。
图1 基本的LBP算子计算的过程
一个基本的LBP算子应该是上图1所示那样,将其定义成3*3的窗口,有8个邻域的像素点,把窗口中心点的灰度值对窗口内的像素点其灰度值执行二值化,再依据不同的像素点位置来加权求和,进而得到这个窗口LBP编码值。
2.2 改进的LBP算子
从上面我们可以知道原始的算法自身纹理描述力是很强的,但在特定的局域内,原始LBP算子只考虑到了存在于中心像素点跟邻域的像素点之间灰度值的差异,把中心像素点作用以及邻域像素点其灰度值之间的互相关系忽略掉了,因而造成在某些情况下把局部的结构特点信息有所忽略。如下图2就是某种特定的情况。图2 原始的LBP算子在特定情形中的编码
图2中所产生的11111111主要是对暗点以及会读平坦的区域进行检测,可以说是特征检测器。我们在此基础上,对原始的LBP算子进行改进,根据使一位二值编码增加的方式来加以扩展,提出了多重心化的二值模式也就是MLBP,具体的改进过程如图3所示。
图3 改进的LBP算子计算的过程(P=8、R=1)
由图3中获得的两个8位子编码将其当做独立的两 个MLBP的自编码,继而对所有模式直方图加以计算,根据这个直方图来加以分类或者是识别。LBP具体的算法公式如下:
在这当中,N,R分别表示的是临域点的个数和半径,gc表示的是像素点,gn表示的是它的临域点。根据这个改进的MLBP算子我们可以看出,它根据使一位二值的编码增加的形式,在将原始LBP算子的优势得到保持前提下,将中心像素点作用和邻域像素点二者间灰度值的关系又加以利用。跟原始的相比,改进的算子并没有时特征模式有所增加,而且还可以将原始的算子中没有考虑到的中心像素点和邻域像素点灰度值间关系产生的结构特点提取出来,让其鉴别能力得到提高。
3 人脸识别系统的设计
3.1 系统构成
该系统主要是被硬件平台以及软件开发的平台这两部分构成。硬件平台指的就是那些采集图像的设备和计算机系统,而软件开发的平台就是本文中所描述到的在上述所说的算法中改进开发出来的一种人脸识别的系统。
3.2 系统软件
系统软件的构造。系统软件可以划分成以下两个部分。首先是获取图像,当进入到主界面中时,点击打开图像或者是打开视频,系统初始化的硬件设备能够根据直接打开的静态表情图像或者是视频等,来对人脸表情图像进行获取并将图像显示出来,之后再对人脸开始进行检测和定位。其次,就是提取相应的表情特征并对其进行识别。
下面为了对该系统在进行识别表情时的效果进行验证,本文进行了几组对比实验。先将Gabor跟采样降维相结合的特征提取方式下得出的不同分类器效果加以比较,再将该系统下的分类跟其他的分类器效果进行比较。具体如下图4所示。
图4 不同的分类器下表情识别比较图
在图4中,横坐标1-7分别表示的是生气、厌恶、恐惧、高兴和瓶颈、伤心以及惊奇,数字8表示的是所有的表情。
结论:
根据图4我们可看出,在特征提取条件相同情况下,整体实验数据中稀疏表示明显比另两种分类型的性能要好,而且BP神经网络分类效果也非常良好,但是最近邻之间的分类器的精准度没有前两种表现得好。
该文中运用的这种提取特征方法的效果明显比Gabor跟采样降维相结合的方法效果要好。
上面进行的对比实验,充分验证了本文中的分类系统的优越感。下面跟文献中已经有的方案进行对比,具体如下图5所示。
[不同人脸表情识别方法\&识别率\&Gabor+弹性模板匹配[5]\&80%\&特征块PCA+最近邻分析器[8]\&75.45%\&本文方法\&85.71%\&]
图5 跟文献中含有的方案进行比较效果
根据图5所示,我们可以看出,跟其他文献中采用的方法来看,本文采用的方法在表情识别上有着明显的优势。具体的我们还可以从下图6的人脸表情识别界面中看到本文中设计的人脸识别系统具体应用情况。
图6 人脸表情识别的界面
3.3简析人脸识别算法
1)优点
这种算法将以前在迭代过程中的迭矩阵计算大大简化,而且在识别的速度上也得到了有效的提升,能跟随光照的变化进行有效的识别,对人脸进行识别的主要困难就是遮挡、单样本等这些问题,而稀疏表示在这些问题的前提下仍然能具备潜在的发展力,我们可以进一步对其加以研究,这也是现在研究的一个重点方向。
2) 缺点
在上面实验中我们发现其分类器表现出了良好的使用效果,但这种算法也存在着一些不足之处,由于数据量不断地增加,稀疏表示分类需要的时间也会随之而增加。此外,这种表示方法虽然在速度上明显优于其他,但是其产生的识别率并不是很高,也就是说不能准确地对表情进行有效识别。
4 展望人脸表情识别的系统
这种新型的对人脸表情加以识别的系统利于将人们的生活品质提高。当人们一旦从比较寒冷的地方或者是比较炎热的地方回到室内时,可以根据这个表情识别的系统快速地把人们面部表情与最佳温度中人脸表情相对比,进而让空调自动把室内的温度调转至最佳。此外,在医疗行业中,可以将表情识别运用到电子护士护理中来。尤其是对于那些重症病人,在对其进行治疗的过程中可以根据这个具有表情分析能力的机器人护士对病人实行实时的看管护理。除以上几点外,在对儿童实行教育时也可以将其应用其中,可以根据儿童在某种情形下所产生的表情以及行为进行具体分析和观察,有效挖掘他们潜在的气质和能力,引导我们更好地对儿童实行教育,促进儿童的健康成长。
5 结语
综上所述,对人脸表情加以识别是具有很大挑战的新兴课题,笔者主要对存在于人脸表情识别算法中的问题进行了简要的分析,并在此基础上提出了改进的算法进而提出了对人脸表情加以识别的系统。但从目前来看,我国关于人脸识别的系统研究当中还存在着一些问题,因此,对于我们来说将更加智能化的关于人脸表情识别的系统加以实现还是一个十分艰巨的任务,还需要我们不断的努力。
参考文献:
[1] 赵晓龙. 安防系统中的基于稀疏表示的人脸识别研究[D].西北大学,2014.
[2] 朱可. 基于稀疏表示的人脸表情识别[D].西北大学,2013.
[3] 万川. 基于动态序列图像的人脸表情识别系统理论与方法研究[D].吉林大学,2013.
[4] 欧阳琰. 面部表情识别方法的研究[D].华中科技大学,2013.
[5] 王哲伟. 基于稀疏表示残差融合的人脸表情识别[D].五邑大学,2011.
[6] 张慕凡. 基于稀疏表示的人脸识别的应用研究[D].南京邮电大学,2014.
[7] 赵晓. 基于稀疏表示的人脸识别方法研究[D].北京工业大学,2013.
[8] 何玲丽. 基于核稀疏表示的人脸识别方法研究[D].湖南大学,2014.
❼ places2数据集有人脸图像吗
places2数据集主要包含各种场景的图片,如室内宴核、室外、城市、亏祥哗自然风景等,而不是人脸图像。这是因为places2数据集的目的是为了让计算机更好地理解和识别场景,而不是人脸。因此,该数据集主要包含各种场景的图片,以便训练计算机视觉算法来识别场景。
但是,places2数据集中可能会包含一些包含人脸的场景图片,例如在城市街道或户外自然风景中出现的人物。这些图片中的人脸通常是场景的一部分,而不是像人脸识别数据集中那样重点关注人脸。因此,如果需要使用places2数据集来训练人脸识别算法,可能需要进行一些销行额外的处理和筛选,以确保选取的图片具有较高的人脸可见度。
❽ 人脸图像如何匹配和识别
其提取人脸图像的特征数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到族族的结果输出,人脸识别就是将待识别的人脸特征与已得到人脸特征模板进行比较,根据兆首弊相似程度对人脸的身份信息进行判断。这一过程又分为两芹明类:一类是确认,是一对一进行图像比较的过程,另一类是辨认,是一对多进行图像匹配对比的过程。
❾ 在ios上识别不了的小表情
识别不上可能因为网谨稿猛络问题。
修改后台对敬源应的配置文件,将其utf8改掉,比如Java是改祥桥为数据库名+autoReconnect=true,让其自动识别。
❿ 怎样使用OpenCV进行人脸识别
友情提示,要看懂代码前,你得先知道OpenCV的安装和配置,会用C++,用过一些OpenCV函数。基本的图像处理和矩阵知识也是需要的。[gm:我是箫鸣的注释]由于我仅仅是翻译,对于六级才过的我,肯定有一些翻译错的或者不当的地方,所以请大家纠错。
1.1.介绍Introction
从OpenCV2.4开始,加入了新的类FaceRecognizer,我们可以使用它便捷地进行人脸识别实验。本文既介绍代码使用,又介绍算法原理。(他写的源代码,我们可以在OpenCV的opencv\moles\contrib\doc\facerec\src下找到,当然也可以在他的github中找到,如果你想研究源码,自然可以去看看,不复杂)目前支持的算法有
Eigenfaces特征脸createEigenFaceRecognizer()
Fisherfaces createFisherFaceRecognizer()
LocalBinary Patterns Histograms局部二值直方图 createLBPHFaceRecognizer()
下面所有的例子中的代码在OpenCV安装目录下的samples/cpp下面都能找到,所有的代码商用或者学习都是免费的。1.2.人脸识别Face Recognition
对人类来说,人脸识别很容易。文献[Tu06]告诉我们,仅仅是才三天的婴儿已经可以区分周围熟悉的人脸了。那么对于计算机来说,到底有多难?其实,迄今为止,我们对于人类自己为何可以区分不同的人所知甚少。是人脸内部特征(眼睛、鼻子、嘴巴)还是外部特征(头型、发际线)对于人类识别更有效?我们怎么分析一张图像,大脑是如何对它编码的?David Hubel和TorstenWiesel向我们展示,我们的大脑针对不同的场景,如线、边、角或者运动这些局部特征有专门的神经细胞作出反应。显然我们没有把世界看成零散的块块,我们的视觉皮层必须以某种方式把不同的信息来源转化成有用的模式。自动人脸识别就是如何从一幅图像中提取有意义的特征,把它们放入一种有用的表示方式,然后对他们进行一些分类。基于几何特征的人脸的人脸识别可能是最直观的方法来识别人脸。第一个自动人脸识别系统在[Kanade73]中又描述:标记点(眼睛、耳朵、鼻子等的位置)用来构造一个特征向量(点与点之间的距离、角度等)。通过计算测试和训练图像的特征向量的欧氏距离来进行识别。这样的方法对于光照变化很稳健,但也有巨大的缺点:标记点的确定是很复杂的,即使是使用最先进的算法。一些几何特征人脸识别近期工作在文献[Bru92]中有描述。一个22维的特征向量被用在一个大数据库上,单靠几何特征不能提供足够的信息用于人脸识别。特征脸方法在文献[TP91]中有描述,他描述了一个全面的方法来识别人脸:面部图像是一个点,这个点是从高维图像空间找到它在低维空间的表示,这样分类变得很简单。低维子空间低维是使用主元分析(Principal Component Analysis,PCA)找到的,它可以找拥有最大方差的那个轴。虽然这样的转换是从最佳重建角度考虑的,但是他没有把标签问题考虑进去。[gm:读懂这段需要一些机器学习知识]。想象一个情况,如果变化是基于外部来源,比如光照。轴的最大方差不一定包含任何有鉴别性的信息,因此此时的分类是不可能的。因此,一个使用线性鉴别(Linear Discriminant Analysis,LDA)的特定类投影方法被提出来解决人脸识别问题[BHK97]。其中一个基本的想法就是,使类内方差最小的同时,使类外方差最大。
近年来,各种局部特征提取方法出现。为了避免输入的图像的高维数据,仅仅使用的局部特征描述图像的方法被提出,提取的特征(很有希望的)对于局部遮挡、光照变化、小样本等情况更强健。有关局部特征提取的方法有盖伯小波(Gabor Waelets)([Wiskott97]),离散傅立叶变换(DiscreteCosinus Transform,DCT)([Messer06]),局部二值模式(LocalBinary Patterns,LBP)([AHP04])。使用什么方法来提取时域空间的局部特征依旧是一个开放性的研究问题,因为空间信息是潜在有用的信息。
1.3.人脸库Face Database
我们先获取一些数据来进行实验吧。我不想在这里做一个幼稚的例子。我们在研究人脸识别,所以我们需要一个真的人脸图像!你可以自己创建自己的数据集,也可以从这里(http://face-rec.org/databases/)下载一个。
AT&TFacedatabase又称ORL人脸数据库,40个人,每人10张照片。照片在不同时间、不同光照、不同表情(睁眼闭眼、笑或者不笑)、不同人脸细节(戴眼镜或者不戴眼镜)下采集。所有的图像都在一个黑暗均匀的背景下采集的,正面竖直人脸(有些有有轻微旋转)。YaleFacedatabase A ORL数据库对于初始化测试比较适合,但它是一个简单的数据库,特征脸已经可以达到97%的识别率,所以你使用其他方法很难得到更好的提升。Yale人脸数据库是一个对于初始实验更好的数据库,因为识别问题更复杂。这个数据库包括15个人(14个男人,1个女人),每一个都有11个灰度图像,大小是320*243像素。数据库中有光照变化(中心光照、左侧光照、右侧光照)、表情变化(开心、正常、悲伤、瞌睡、惊讶、眨眼)、眼镜(戴眼镜或者没戴)。
坏消息是它不可以公开下载,可能因为原来的服务器坏了。但我们可以找到一些镜像(比如 theMIT)但我不能保证它的完整性。如果你需要自己剪裁和校准图像,可以阅读我的笔记(bytefish.de/blog/fisherfaces)。ExtendedYale Facedatabase B 此数据库包含38个人的2414张图片,并且是剪裁好的。这个数据库重点是测试特征提取是否对光照变化强健,因为图像的表情、遮挡等都没变化。我认为这个数据库太大,不适合这篇文章的实验,我建议使用ORL数据库。
1.3.1. 准备数据
我们从网上下了数据,下了我们需要在程序中读取它,我决定使用CSV文件读取它。一个CSV文件包含文件名,紧跟一个标签。
/path/to/image.ext;0
假设/path/to/image.ext是图像,就像你在windows下的c:/faces/person0/image0.jpg。最后我们给它一个标签0。这个标签类似代表这个人的名字,所以同一个人的照片的标签都一样。我们对下载的ORL数据库进行标识,可以获取到如下结果:
./at/s1/1.pgm;0
./at/s1/2.pgm;0
...
./at/s2/1.pgm;1
./at/s2/2.pgm;1
...
./at/s40/1.pgm;39
./at/s40/2.pgm;39
想象我已经把图像解压缩在D:/data/at下面,而CSV文件在D:/data/at.txt。下面你根据自己的情况修改替换即可。一旦你成功建立CSV文件,就可以像这样运行示例程序:
facerec_demo.exe D:/data/at.txt
1.3.2 Creating the CSV File
你不需要手工来创建一个CSV文件,我已经写了一个Python程序来做这事。
[gm:说一个我实现的方法
如果你会cmd命令,或者称DOS命令,那么你打开命令控制台。假设我们的图片放在J:下的Faces文件夹下,可以输入如下语句:
J:\Faces\ORL>dir /b/s *.bmp > at.txt
然后你打开at.txt文件可能看到如下内容(后面的0,1..标签是自己加的):
。。。。
J:\Faces\ORL\s1\1.bmp;0
J:\Faces\ORL\s1\10.bmp;0
J:\Faces\ORL\s1\2.bmp;0
J:\Faces\ORL\s1\3.bmp;0
J:\Faces\ORL\s1\4.bmp;0
J:\Faces\ORL\s1\5.bmp;0
J:\Faces\ORL\s1\6.bmp;0
J:\Faces\ORL\s1\7.bmp;0
J:\Faces\ORL\s1\8.bmp;0
J:\Faces\ORL\s1\9.bmp;0
J:\Faces\ORL\s10\1.bmp;1
J:\Faces\ORL\s10\10.bmp;1
J:\Faces\ORL\s10\2.bmp;1
J:\Faces\ORL\s10\3.bmp;1
J:\Faces\ORL\s10\4.bmp;1
J:\Faces\ORL\s10\5.bmp;1
J:\Faces\ORL\s10\6.bmp;1
。。。。
自然还有c++编程等方法可以做得更好,看这篇文章反响,如果很多人需要,我就把这部分的代码写出来。(遍历多个文件夹,标上标签)
]
特征脸Eigenfaces
我们讲过,图像表示的问题是他的高维问题。二维灰度图像p*q大小,是一个m=qp维的向量空间,所以一个100*100像素大小的图像就是10,000维的图像空间。问题是,是不是所有的维数空间对我们来说都有用?我们可以做一个决定,如果数据有任何差异,我们可以通过寻找主元来知道主要信息。主成分分析(Principal Component Analysis,PCA)是KarlPearson (1901)独立发表的,而 Harold Hotelling (1933)把一些可能相关的变量转换成一个更小的不相关的子集。想法是,一个高维数据集经常被相关变量表示,因此只有一些的维上数据才是有意义的,包含最多的信息。PCA方法寻找数据中拥有最大方差的方向,被称为主成分。
算法描述Algorithmic Description
令 2 表示一个随机特征,其中 3 .
计算均值向量 4
5
计算协方差矩阵 S
6
计算 的特征值7 和对应的特征向量 8 9
对特征值进行递减排序,特征向量和它顺序一致. K个主成分也就是k个最大的特征值对应的特征向量。
x的K个主成份:
10其中11 .
PCA基的重构:
12其中 13 .
然后特征脸通过下面的方式进行人脸识别:
A. 把所有的训练数据投影到PCA子空间
B. 把待识别图像投影到PCA子空间
C. 找到训练数据投影后的向量和待识别图像投影后的向量最近的那个。
还有一个问题有待解决。比如我们有400张图片,每张100*100像素大小,那么PCA需要解决协方差矩阵 14的求解,而X的大小是10000*400,那么我们会得到10000*10000大小的矩阵,这需要大概0.8GB的内存。解决这个问题不容易,所以我们需要另一个计策。就是转置一下再求,特征向量不变化。文献 [Duda01]中有描述。
[gm:这个PCA还是自己搜着看吧,这里的讲的不清楚,不适合初学者看]OpenCV中使用特征脸Eigenfaces in OpenCV
给出示例程序源代码
#include "opencv2/core/core.hpp"
#include "opencv2/contrib/contrib.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <fstream>
#include <sstream>
usingnamespace cv;
usingnamespace std;
static Mat norm_0_255(InputArray _src) {
Mat src = _src.getMat();
// 创建和返回一个归一化后的图像矩阵:
Mat dst;
switch(src.channels()) {
case1:
cv::normalize(_src, dst, 0,255, NORM_MINMAX, CV_8UC1);
break;
case3:
cv::normalize(_src, dst, 0,255, NORM_MINMAX, CV_8UC3);
break;
default:
src.To(dst);
break;
}
return dst;
}
//使用CSV文件去读图像和标签,主要使用stringstream和getline方法
staticvoid read_csv(const string& filename, vector<Mat>& images, vector<int>& labels, char separator =';') {
std::ifstream file(filename.c_str(), ifstream::in);
if (!file) {
string error_message ="No valid input file was given, please check the given filename.";
CV_Error(CV_StsBadArg, error_message);
}
string line, path, classlabel;
while (getline(file, line)) {
stringstream liness(line);
getline(liness, path, separator);
getline(liness, classlabel);
if(!path.empty()&&!classlabel.empty()) {
images.push_back(imread(path, 0));
labels.push_back(atoi(classlabel.c_str()));
}
}
}
int main(int argc, constchar*argv[]) {
// 检测合法的命令,显示用法
// 如果没有参数输入则退出!.
if (argc <2) {
cout <<"usage: "<< argv[0]<<" <csv.ext> <output_folder> "<< endl;
exit(1);
}
string output_folder;
if (argc ==3) {
output_folder = string(argv[2]);
}
//读取你的CSV文件路径.
string fn_csv = string(argv[1]);
// 2个容器来存放图像数据和对应的标签
vector<Mat> images;
vector<int> labels;
// 读取数据. 如果文件不合法就会出错
// 输入的文件名已经有了.
try {
read_csv(fn_csv, images, labels);
} catch (cv::Exception& e) {
cerr <<"Error opening file \""<< fn_csv <<"\". Reason: "<< e.msg << endl;
// 文件有问题,我们啥也做不了了,退出了
exit(1);
}
// 如果没有读取到足够图片,我们也得退出.
if(images.size()<=1) {
string error_message ="This demo needs at least 2 images to work. Please add more images to your data set!";
CV_Error(CV_StsError, error_message);
}
// 得到第一张照片的高度. 在下面对图像
// 变形到他们原始大小时需要
int height = images[0].rows;
// 下面的几行代码仅仅是从你的数据集中移除最后一张图片
//[gm:自然这里需要根据自己的需要修改,他这里简化了很多问题]
Mat testSample = images[images.size() -1];
int testLabel = labels[labels.size() -1];
images.pop_back();
labels.pop_back();
// 下面几行创建了一个特征脸模型用于人脸识别,
// 通过CSV文件读取的图像和标签训练它。
// T这里是一个完整的PCA变换
//如果你只想保留10个主成分,使用如下代码
// cv::createEigenFaceRecognizer(10);
//
// 如果你还希望使用置信度阈值来初始化,使用以下语句:
// cv::createEigenFaceRecognizer(10, 123.0);
//
// 如果你使用所有特征并且使用一个阈值,使用以下语句:
// cv::createEigenFaceRecognizer(0, 123.0);
//
Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
model->train(images, labels);
// 下面对测试图像进行预测,predictedLabel是预测标签结果
int predictedLabel = model->predict(testSample);
//
// 还有一种调用方式,可以获取结果同时得到阈值:
// int predictedLabel = -1;
// double confidence = 0.0;
// model->predict(testSample, predictedLabel, confidence);
//
string result_message = format("Predicted class = %d / Actual class = %d.", predictedLabel, testLabel);
cout << result_message << endl;
// 这里是如何获取特征脸模型的特征值的例子,使用了getMat方法:
Mat eigenvalues = model->getMat("eigenvalues");
// 同样可以获取特征向量:
Mat W = model->getMat("eigenvectors");
// 得到训练图像的均值向量
Mat mean = model->getMat("mean");
// 现实还是保存:
if(argc==2) {
imshow("mean", norm_0_255(mean.reshape(1, images[0].rows)));
} else {
imwrite(format("%s/mean.png", output_folder.c_str()), norm_0_255(mean.reshape(1, images[0].rows)));
}
// 现实还是保存特征脸:
for (int i =0; i < min(10, W.cols); i++) {
string msg = format("Eigenvalue #%d = %.5f", i, eigenvalues.at<double>(i));
cout << msg << endl;
// 得到第 #i个特征
Mat ev = W.col(i).clone();
//把它变成原始大小,为了把数据显示归一化到0~255.
Mat grayscale = norm_0_255(ev.reshape(1, height));
// 使用伪彩色来显示结果,为了更好的感受.
Mat cgrayscale;
applyColorMap(grayscale, cgrayscale, COLORMAP_JET);
// 显示或者保存:
if(argc==2) {
imshow(format("eigenface_%d", i), cgrayscale);
} else {
imwrite(format("%s/eigenface_%d.png", output_folder.c_str(), i), norm_0_255(cgrayscale));
}
}
// 在一些预测过程中,显示还是保存重建后的图像:
for(int num_components =10; num_components <300; num_components+=15) {
// 从模型中的特征向量截取一部分
Mat evs = Mat(W, Range::all(), Range(0, num_components));
Mat projection = subspaceProject(evs, mean, images[0].reshape(1,1));
Mat reconstruction = subspaceReconstruct(evs, mean, projection);
// 归一化结果,为了显示:
reconstruction = norm_0_255(reconstruction.reshape(1, images[0].rows));
// 显示或者保存:
if(argc==2) {
imshow(format("eigenface_reconstruction_%d", num_components), reconstruction);
} else {
imwrite(format("%s/eigenface_reconstruction_%d.png", output_folder.c_str(), num_components), reconstruction);
}
}
// 如果我们不是存放到文件中,就显示他,这里使用了暂定等待键盘输入:
if(argc==2) {
waitKey(0);
}
return0;
}