基于Python 和特征脸算法的智能宿舍系统设计

2020-03-12 12:30翟文盛成吉聪于增洋
科技与创新 2020年4期
关键词:训练样本特征向量树莓

翟文盛,成吉聪,于增洋

(山东科技大学 电子信息工程学院,山东 青岛266500)

1 引言

随着时代的发展,传统的宿舍磁卡门禁系统已经不能满足日益发展的需求,针对传统宿舍磁卡门禁系统磁卡容易丢失、消磁的缺点[1],本系统采用了基于特征脸算法的人脸识别的智能宿舍系统[2]。相比传统的磁卡系统而言,人脸识别系统具有安全性高、特征唯一性、不会出现学生代替考勤、有效避免学生夜不归宿等现象发生的特点[3],有效地保障了学生的安全,能充分地体现学生的考勤情况。系统通过OpenCV 视觉库的分析器对采集到的人脸信息进行检测,再利用相关的图像处理技术,将识别到的数据上传到计算机,再移植到树莓派平台验证。

2 系统原理简介

2.1 相关技术原理

人脸识别技术是生物特征识别技术的重要分支,人脸识别指利用各种技术手段从场景中获取人脸图像,并借助已有的知识或经验来判断出图像中人的身份。人脸识别具有快速、简便、非侵扰、不需要人被动配合,用户体验最自然、最直观的特点,这使人脸识别成为最容易被接受的生物特征识别方式。本系统的人脸库实验例子是基于Yale 库进行处理的[4]。

2.2 Python 与OpenCV 技术

OpenCV(Open Source Computer Vision Library)是一个基于BSD 许可(开源)发行的跨平台计算机视觉库,可以在Linux、Windows、Android 和Mac OS 操作系统运行。它主要由C++语言编写,同时提供了Python、Ruby、MATLAB、Java 等语言的接口[3],实现了图像处理和计算机视觉方面的很多通用算法,该库拥有2 500 多个优化算法,其中包括一套全面的经典算法、最先进的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸、识别对象、对视频中的人类行为进行分类、跟踪摄像机移动、跟踪移动对象、提取对象的3D 模型、从立体摄像机生成3D 点云、将图像拼接在一起生成整个场景的高分辨率图像,从图像数据库中查找相似图像,从使用闪光灯拍摄的图像中删除红眼,跟踪眼睛运动,识别风景,并建立标记以覆盖其增强现实等[5]。

2.3 树莓派

本系统选择了树莓派4B 平台作为主控制器,树莓派将Python 语言作为主编程语言[6],自带板载网口、Wi-Fi 和蓝牙,内存硬盘为SD 卡。其由新的处理器Broadcom BCM2711B0 提供支持,采用了Cortex-A72 架构。树莓派4中的BCM2711B0具有4个内核,时钟频率为1.5 GHz,Cortex A72 具有15 指令流水线深度,它还提供无序执行,不需等待一个进程的输出而在另一个进程上启动,并且支持linux系统和Windows 系统的开发,具备PC 的基本功能,其价格低廉。安装该系统需要下载镜像并使用软件进行烧录,同时还需要使用安全外壳协议(SSH)、MQTT 及SMB 协议完成整个设计的配置,此外,其体积小,便于部署和安装[7-8]。系统实物如图1 所示。

图1 系统实物图

3 系统的设计和实现

3.1 系统设计原理

3.1.1 人脸图像录入建库

通过摄像头录入人脸图像,入库图像要背景统一,录入人员的正脸照片,并且只有轻微的姿态、表情变化,每幅的分辨率为100×100。

3.1.2 人脸图像预处理

由于照相、摄像设备性能的局限,以及现场复杂环境的影响,获取的图像可能受到噪声的污染,使图像变得模糊、对比度降低、区域灰度不平衡等。

为了保证提取特征的有效性,进而提高识别系统的识别率,适当去噪、增强等图像的预处理过程给复杂环境下的人脸识别提供了必要的技术支持[2,9]。

3.1.3 人脸检测与定位

人脸检测就是判断图像中是否存在人脸,如果存在,则给出人脸在图像中的位置和大小等信息,根据这些信息将人脸区域从背景中切割出来。

3.1.4 人脸特征提取

人脸特征提取是人脸识别系统的核心。人脸识别本质上是三维非刚性物体的二维投影图像的匹配问题。从对齐好的人脸中提取能区分不同人的特征:克服光照、表情、姿态、遮挡、胡须、眼镜、化妆等干扰因素的影响,准确识别类内变化,再利用特征脸算法进行处理。人脸识别系统框架如图2 所示。

图2 人脸识别系统框架图

3.2 特征脸算法原理

将N 个尺寸为W*H 的人脸图像(训练集)分别按行级联成N 个W*H 维的特征向量Ψ1,Ψ2,…,Ψn(零均值),训练样本协方差为

选定M 个基向量z1,z2,…,zM(正交基),M≤N,该基向量构成M 维的特征空间。

计算每个训练样本相对于每个基向量的投影,并对每个基向量投影进行累加求和,则第k 个特征向量λk可以表示为约束条件为

所有训练样本可以由M 维的特征向量表示为Φk=zTΨi,i=1,2,…,N。最大投影系数(特征值)λk对应的特征向量(总共有M 个)认为是对训练样本的最好简约表示(可以是前几个),则与最大投影系数对应的基向量认为是有效的特征脸。

将待识别人脸Г归一化零均值,向量化之后投影到特征向量,得到Π=uTΓ。利用k 近邻分类器根据训练样本和待识别人脸的投影特征向量进行判别:

式(1)中:D 为两种模式之间的距离;Ф为特征模版;П为测试人脸的模式[2]。

3.3 Yale 人脸库

Yale 人脸数据库由耶鲁大学计算视觉与控制中心创建,包含15 名志愿者的165 张图片,包含光照、表情和姿态的变化。这些图像背景、光照统一,只有轻微的姿态、表情变化,每幅的分辨率为100×100。Yale 人脸库志愿者之一的11幅图如图3 所示。

图3 Yale 人脸库图

4 人脸识别结果

将编译成功的代码通过镜像并使用软件进行烧录,移植到树莓派开发平台,实现智能宿舍系统的人脸识别功能。测试人脸与识别结果如图4 所示。

图4 测试人脸与识别结果

5 结语

本文对基于Python 语言的特征脸算法进行了智能宿舍系统的设计,能实现基本的人脸识别功能。

在本系统中,特征提取方法为特征脸算法,分类方法采用的是k 近邻分类器。在被识别者是正面姿态、遮挡物很少的情况下,能够实现人脸图像的识别。本系统的优点是计算量小、识别速度快、准确率高,并能在树莓派上进行验证;但是也存在一定的缺点,即在复杂背景下识别人脸时,如果图像光照发生明显的变化、被识别者姿态大幅度改变、表情显著变化等,则存在识别错误的现象。针对系统的不足之处,今后需要进一步完善。

猜你喜欢
训练样本特征向量树莓
克罗内克积的特征向量
高中数学特征值和特征向量解题策略
人工智能
三个高阶微分方程的解法研究
基于小波神经网络的网络流量预测研究
黄金水果红树莓
树莓红了 游人醉了
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)
矩阵方法求一类数列的通项