您当前的位置:首页 > 高端访谈

基于谷歌眼镜的人脸识别系统设计与实现

2018-08-26 07:10:26

摘 要:可穿戴技术的飞速发展为生活带来了极大便利,本研究致力于将人脸辨认技术应用于一款可穿戴装备——谷歌眼镜,以充分发挥其解放双手的优势,使得人脸辨认可以在不影响其他工作的基础上随时随地地进行。为了实现在谷歌眼镜上的人脸辨认,文中采用GDK原生开发方式,并利用LBP特点的Adaboost分类器进行人脸检测和Fisher特点的分类器进行人脸识别,从而实现了这一系统的应用。

关键词:人脸识别;谷歌眼镜;可穿戴技术;增强现实

中图分类号:TP391.41 文献标识码:A 文章编号:(2016)

0 引 言

基于面部特征的人脸辨认技术成为模式识别和人机交互领域的研究热点。它在智能视觉物联、以人为中心的普适计算、公共安全、金融服务和视频会议系统等众多领域有着广泛的运用[1]。

谷歌眼镜是Google于2012年推出的一款头戴式智能电子设备, 它以免手持、与智能类似的方式显示各种信息[2]。穿着者通过自然语言语音指令与互联服务联系沟通。与相比,谷歌眼镜操作更加快速、直观并且解放了双手,可让人们与互联时刻互联[3]力高未来城
。谷歌眼镜作为增强现实设备,其使用的小屏幕可以在眼前的真实世界上叠加信息,实现信息世界与真实世界的无缝连接,从而构成增强现实的场景[4]。而这一剧变将引发一场新的、深入的信息技术革命。谷歌眼镜鲜明的优势为人脸辨认带来很大方便,相关人员不需要安置专用的识别机器,或是占用双手来进行操作[5]。

基于谷歌眼镜的人脸辨认系统将人脸辨认技术在保证性能的基础上,以更贴合嵌入式装备的方式在谷歌眼镜上实现,谷歌眼镜作为可穿戴装备解放了双手,使人脸识别的应用场景得到了极大扩大,可在不影响本身工作的基础上进行身份识别验证等功能[]。

1 系统结构设计

本系统的结构图如图1所示。完全的人脸辨认需要经过图像获取、图像预处理、人脸检测器检测、人脸辨认器识别和最后的结果显示几个过程。其中,人脸检测器和人脸识别器需提早训练取得,系统在使用进程中可通过特定身份的人脸图象进一步训练完善人脸检测器。

人脸检测器的训练过程如下:选取一定数量的人脸和非人脸图像,首先进行缩放、直方图均衡等预处理步骤,通过LBP特点提取得到弱分类器,通过Adaboost循环训练取得最终的强分类器。

人脸辨认器的训练过程与人脸检测器的训练进程类似,首先是对人脸图象的预处理,包括几何变换、剪裁、直方图均衡、平滑、椭圆掩码等步骤,接着利用Fisher特点对图象信息进行降维处理,计算出最佳分类器,进而得到终究的人脸识别器。

2 人脸识别技术

2.1 人脸预处理

人脸预处理后把图象的外界影响因素尽可能下降,如光照,角度等[9],人脸预处理各步骤的结果如图2所示,主要涉及的操作有以下内容:

(1)几何变换、剪裁:缩放、旋转和平移图象,使眼睛对齐,删除额头、下巴、耳朵和背景;

(2)直方图均衡:标准化左右两侧的亮度和对比度;

(3)平滑:使用双边滤波器减少噪声;

(4)椭圆掩码:去掉一些剩余头发和人脸图像背景。

2.2 人脸检测

人脸检测器的主要训练进程如下:

(1)选定正负样本,提取其LBP特征,并用直方图表示,LBP算子如图3所示。

LBP相较于haar等其他特点运算速度更快,便于在嵌入式等平台运行。LBP(Local Binary Pattern, 局部二值模式)用来提取图象的局部纹理特征,计算方式以下:

P为邻域等距分布P个点,gc为中心像素点灰度值,gp为邻域像素点灰度值。

(2)训练多个弱分类器,为每个LBP特征都训练一个弱分类器。

(3)利用Adaboost分类器训练得到最终的强分类器:循环多次进行人脸分类判断,更新权值,提取出错误率最小的弱分类器,并用这些弱分类器组成强分类器。用多个上述得到的强分类器组成级联分类器,即最终的强分类器。

具体计算进程分为如下几步:

(1)初始化每一个样本的权值ωi= 1 / N, i = 1,2,…,N。

(2)对每个样本利用弱分类器的学习算法训练弱分类器ft (x)∈{-1,1},并计算错误率εt=Eω [I(y≠ft(x))]和加权系数αt=log[(1-εt)/εt]。

(3)更新权值ωi←ωiexp[αt.I(ft(xi)≠yi)],并重新归一化,使得∑iωi=1。

(4)输出分类器F(x)=sgn[∑Tt=1αtft(x) ]。

检测器通过大量的人脸和非人脸图片进行训练,存在XML文件中。在得到每个像素的LBP编码描述后,采用统计直方图方法可得到图像的LBP直方图描述。

2.3 人脸辨认

Fisher是典型的分类技术,在降维之后的空间中,样本的类内间距变小,而类间间距变大,使得空间能实现最大限度的分离。Fisher是一种基于LDA(Linear Discriminant Analysis,线性判别分析)的将映照到低维空间的降维方法。

Fisher最佳投影平面求取方法如下[10]:

其中,Sω为类内散度矩阵,Sb为类间散度矩阵,||x||2代表x的欧氏距离,是第c 类数据的均值向量,是所有训练数据的均值向量。

得到最好投影平面后,判断某人脸和数据库内人脸相似的方法以下:将此人脸在前k个最大特征值的特征向量上做投影,得到k维的列向量或行向量,将其和已有的投影求得欧式距离,根据阈值来判断是不是匹配。

3 人脸辨认系统实现   谷歌眼镜搭载了经过特殊定制的Android系统,其上运行的运用称为Glassware。谷歌提供了两种Glassware开发方式:Mirror API服务端开发和GDK本地开发[2]。Mirror API实质为云服务,通过Google服务器推送实时数据;GDK(Glass Development Kit,GDK)则是对Android SDK的扩充,它在Android SDK的基础上增加了一些Glass独有的API支持,使得开发出的应用更符合Glass的使用环境。基于GDK开发的Glassware可直接运行在Glass上,允许使用更底层的硬件功能,例如传感器数据等。Android SDK与GDK的区别见图4所示。

由于人脸识别系统对交互性和实时性的要求金海岸花园
,因此选取了更加自由的GDK开发方式。

本文系统开发使用的环境为Android Studio,利用了一个主流计算机视觉开发库Open Source Computer Vision Library(OpenCV),OpenCV版本为OpenCV 2.4.9。由于谷歌眼镜没法通过手动输入文字,本系统采用了谷歌语音服务进行文字录入操作。

4 结 语

本文基于全球领先的可穿着装备谷歌眼镜,设计了一款人脸辨认系统,并利用谷歌眼镜的原生GDK开发方式以及基于LBP特征的人脸检测技术和基于Fisher特征的人脸辨认技术实现了这一系统。该系统可解放使用人员的双手,在不影响其本来工作的基础上,通过语音操作完成人脸识别过程,可应用于公安、边检、银行、教育、医疗等领域。但同时该系统也存在一些不足之处,在较复杂的环境下,光照、遮挡、年龄变化等复杂因素对识别结果会产生一些影响,且仍缺乏一种确实有效的方法来改善。因此,进一步提高人脸识别正确率和速度的方法是我们仍需要研究的内容。

参考文献

[1]吴迪.智能环境下基于视听信息多层级融会的身份辨认[D].兰州:兰州理工大学,2014.

[2]BestApp工作室.GOOGLE GLASS开发指南[M].北京:人民邮电出版社,2014.

[3]赵志伟.谷歌眼镜会是下一个颠覆性产品吗?[N].中国电子报,(005).

[4]石磊.一种可交互式的穿戴设备—翻译眼镜[D].杭州:浙江大学,2013.

[5]陈硕坚.谷歌眼镜掀起服务业革命[J].经理人,2013(12):.

[6]杨文璐润科华府
,郭明.基于Kinect的实时人脸识别系统[J].计算机应用与软件,2014,31(5):,214.

[7]蔡芷铃,林柏钢,姜青山.基于人脸辨认技术的Android平台隐私保护系统设计[J].信息络安全,2014(9):.

[8]尹璐,何晓光,毋立芳,等.多用途人脸识别系统的设计与实现[J]. 计算机工程与应用,2007,43(20):.

[9]博格(巴).深入理解OPENCV--实用计算机视觉项目解析[M]. 北京:机械工业出版社, 2014.

[10]章毓晋.基于子空间的人脸识别[M].北京:清华大学出版社,2009.

Measure-X 功能强大的测量软件
推荐阅读
图文聚焦