您好, 访客   登录/注册

基于LBPH算法的人脸识别算法研究与设计

来源:用户上传      作者:邓垲镛 赵慧元 田刚 张蓥

  【摘  要】人脸识别技术是一种根据人脸的特征信息进行身份判定的技术,此技术经过几十年的发展,由弱人工智能向强人工智能转化,论文提出了一种Python语言利用LBPH算法提取人脸特征、实现人脸识别的方法。
  【Abstract】Face recognition technology is a kind of identification technology based on face feature information. After decades of development, this technology has been transformed from weak artificial intelligence to strong artificial intelligence. This paper proposes a method of extracting face features and realizing face recognition by using LBPH algorithm in Python language.
  【关键词】人脸识别;特征提取;LBPH
  1 引言
  根据《“十三五”国家科技创新规划》,人工智能被作为其中一项新一代信息技術,被列入规划之中。而人脸识别技术则是人工智能最典型的应用,在国内外已有一定的研究和应用基础,尤其在公共管理、安全防盗、电商交易、身份核查、资产保护等方面,与其他生物识别技术相比,其准确性、稳定性和普遍性都有相当的优势,为政府企业和民众都带来了高效和便利[1]。
  人脸识别技术,属于生物识别技术的一种,利用摄像头或者摄像机等图像采集仪器采集人的脸部形成视频流,此技术从视频流中采集一帧帧图片,把图中的每一个像素点转化成数据后,从数据中测量出五官的大小和距离,这些数值转化成数码,也就是每个人独一无二的脸部识别码,并存储到数据库中。此后,每当有人脸被扫描时也能自动计算其脸部识别码,一旦与数据库所存储的有吻合,则会识别出其身份。
  2 国内外研究现状分析
  目前人脸识别的算法主要有以下三种。
  方法一:基于PCA(主成分分析原理)的Eigenface(特征脸)算法。通过PCA降维的方法对一系列人脸求得每个人的显著特征脸向量,经过多次训练建立特征脸子空间,此后一旦输入一个被有检测的人脸数据,系统会将数据投影到特征脸子空间中进行比较,如有与之相似的特征脸向量,则识别出其身份。优点是大大压缩数据,消除冗余,消除噪音,投影方差达到最大。缺点是主成分的特征维度肯定比原始图像的模糊,不排除非主成分也含有重要的样本差异信息,特征信息在一定程度上有所丢失[2]。
  方法二:基于LDA(线性判断分析原理)的Fisher Face方法。通过求对象之间的最大类间方差和最小类内方差,形成离散矩阵并求出特征值和特征向量后,再进行LDA降维,经过反复训练后形成特征脸子空间[3]。把被测人脸映射到子空间中进行对比,从而判断身份。优点是利用高维数据可提高识别的准确性。缺点是计算量大,影响效率。
  方法三:基于局部特征提取的LBPH(局部二进制编码直方图)方法,通过LBPH算法提取灰度值图像的特征,然后数据库中已训练好的人脸LBPH特征进行比对,且分类识别,从而识别出被测对象。优点在于计算量降低,运行速度快,且基本不受光线和图像旋转的影响。
  3 研究方法、目标、内容和关键问题
  根据以上分析,方法一和方法二都以浮点数运算为主,符合数据统计与处理的原理,LBPH方法是从提取局部纹理特征入手,更符合图像处理的原理,以整数计算为主,运算速度快且兼顾到识别的准确率,因此,本研究采用方法三,基于局部特征提取的LBPH方法。
  研究目标是识别出视频单个或多个对象的身份。
  研究内容包含静态人脸识别、动态人脸识别、多对象识别、无关对象识别等方面。
  由于人脸的特点有很多共同性特征,如果在视频中出现训练集中没有对象时,系统如何快速准确地判断,是本研究中拟解决的关键问题。
  4 设计过程
  基于LBPH算法人脸识别的研究过程如图1所示。
  步骤一:图像灰度化处理。
  先把彩色图像灰度化处理,使得其每个像素点都用灰度值来表示,并用双线性差值法求出相邻两个像素点之间的灰度值。
  步骤二:分割区域。
  把整个图像分割成多个方格区域,识别准确度会随区域数量的增大而提高,相应的计算量也会相应提高。
  步骤三:使用LBPH方法提取局部特征。
  ①编码
  在每个分割区域中,以每个像素为中心,判断其与圆形周围的像素点灰度值的大小关系,对周围点进行0或1的编码,从而得到该点的进制编码,并推断和区分出该区域是否为点、线、边缘、角点等情况。
  ②降维
  由于每个像素点的灰度值范围为0~256,一共266种可能的数据待处理,依据尽量减少数据处理量的处理原则,本研究通过ULBP的方法进行降维,减少计算量,提高运算速度,使得系统能实时响应。
  ③形成二进制编码直方图
  把整个图像分割成多个方格区域,每个区域中的每个像素点都会有LBP和ULBP的值,统计这些数据时形成该区域的LBPH图,然后把每个区域的直方图连接起来,形成整幅图像的特征向量的直方图[4]。
  ④构建二进制编码直方图集合
  多个对象的直方图被存储到数据库中,则形成LBP编码直方图集合。
  步骤四:人脸识别和匹配。
  日后将对被检对象的LBPH图与前边构建的二进制编码直方图集合进行比较,从而得到分类结果。
  5 结语
  本研究是在phcharm的开发环境下,使用Python语言,调用open CV程序库,来设计和实现LBPH的识别功能。为了能提高识别效率,可在卷积神经网络中加入LBPH图像信息,并增大训练的次数,尝试在训练中加入卷积[5],使算法更符合实际应用的需要,提高应用广度,增强市场效益。
  【参考文献】
  【1】陈思琪,赵豪越,王静一,等.人脸识别概述[J].综合论坛,2018(1):226.
  【2】尚丽娜,石晴瑶,方健.基于OpenCV的人眼检测及疲劳判断[J].探索与观察,2018,06(21):19-23.
  【3】张枝令.Python实现基于深度学习的人脸识别[J].视觉,2018,05(19):47-96.
  【4】朱峰.一种基于多尺度 LBPH 特征的快速人脸识别算法[J].计算机应用与软件,2015,08(32):315-319.
  【5】罗丽红,刘春晓,柯灵.基于二进制多层 GELM 的异质人脸识别模型[J].现代电子技术,2018,09(23):38-43.
转载注明来源:https://www.xzbu.com/3/view-15189911.htm