基于单片机的人脸识别门禁系统的设计

摘要

本设计计划一个人脸识别锁,利用摄像头进行面部识别,再将面部扫描信息传给单片机,单片机将面部信息与系统录入的面部信息进行对比,若成功,则开锁,否则报警。报警模块采用蜂鸣器。设置独立按键应用于系统的开启与面部信息的录入。并且采用显示模块实现当前人脸检测显示。

本次设计硬件采用的是搭载OV7725摄像头芯片,以STM32H750CPU为核心的开源硬件OpenMV为设计基础,通过对人脸图像的采集,再以LBP特征算法识别出当前人脸和已采集到人脸的特征值差别,来进行对继电器的控制,从而对门锁进行开关。本设计采用3.7V锂电池作为系统电源,同时也可用USB直接供电。

本次设计预期实现的效果为能够实现面部信息识别并开锁,并且能够实现面部信息的录入,在人脸识别结果偏差值大的情况下能够通过蜂鸣器实现报警,再通过外接LCD显示屏能够实现目前人脸信息的显示。

 关键词:人脸识别;单片;LBP特征算法;报警;摄像头

 第1章绪论

  1.1课题的研究背景

安全方面一直是人民关心的重要方面,尤其是现在经济发展迅速,人民生活水平提高,人们更加重视安全方面。相对于传统的门禁方式,生物特征识别技术是利用人体生物特征进行身份认证的技术。生物的特征是个人特有的特殊属性,这种特殊属性有特别强的个人差异。所以,生物特征是身份证明的可靠依据。在应用生物特征进行进行识别的个人认证的情况下,识别系统可以在采集提取生物特征之后,与所存的数据库中的特征模板相比较,判断其相似程度的大小,并确定此人是否能通过生物特征的验证。

对于现在已经被广泛应用的指纹识别、虹膜识别、声音识别等识别方法,基于人脸面部特征的识别与其他生物特征的识别相比较,具有较强的独特性,是一种更直接、更容易让人们所接受的生物特征识别方法。但是,人脸识别自身存在着容易受外部影响的特点,诸如表情、光照、阴影变化以等外部条件影响,这些外部条件都会影响到人脸识别的稳定性。如今,研究者们将主要的研究方向为通过算法的角度来提高人脸识别的精度。到了现在,人脸识别技术具有了很高的识别精度。它属于个人本身携带,且具有唯一性。相比指纹和虹膜信息的采集需要特定的专业设备来说,在简单、通用的情况下,也更为节省成本。而人脸识别技术如今也被应用于重点区域的监控,公安追踪和边检等情况之中,有一定的技术基础。将适用于大型场所的人脸识别系统应用于家庭安全方面,无疑是一种正确的尝试,以后这种系统也将会成为家庭安全的重要组成部分。

 1.2国内外研究现状

人脸识别系统自二十世纪初,从国外杂志《Nature》发表的利用人脸识别身份;两篇文章开始,其标志着人脸识别逐渐被世人开始认识,也为后来人脸识别系统的研究奠定了大方向。在二十世纪六十年代,国外对人脸识别已经进行了大量研究,也就是在这个时期对于人脸识别的研究发生了第一次飞跃式的发展。在人脸识别的研究领域大概分成三个主要的阶段。第一阶段是从1964年到1990年,这个阶段是对于人的面部信息识别的研究的初步阶段,这个阶段的大概研究方向是把人脸面部信息的识别作为普通的生物特征识别问题进行研究。在这个阶段阶段使用的是feature based的方法,这个阶段的主要贡献后来奠定了面部识别研究的基础,积累了很多理论和实践的经验。第二阶段是1991年到1997年,与这个时期相关的理论活动取得了很大的成果,出现了很多面部识别的算法,在实际生活中被应用。

在国内关于人的面部识别的研究比对外国人的面部识别的研究慢得多。但是,最近国内有很多研究团体和重点大学。认识人脸识别的研究渐渐开始了。周志华等人提出了利用神经网络集成法进行面部识别,通过分析脸部特征的多视角特征而得到的方法。该方法可以显著地提高和保证可视精度。这种方法的实现是基于奇异值的分解和数据的融合。现在,我国如今在理论研究的范围内逐渐追赶上国际上的先进水平,而且在将研究结果的实体化上也取得了非常显著的跨越。比如,银晨智能识别科技有限公司是国内第一家专业从事于生物特征识别技术的研究室,是现在国内生物识别范围内唯一的“863”成果产业化基地。该公司研发的天目系列人脸识别的产品在各个方面和领域得到了非常多的实用的应用。但是,这一系列产品是经过中科院的二次研发在国外公司核心库上形成的,所以这项技术并没有自主知识产权。中科院计算所和银晨公司已经设立了人脸识别研究开发工作室。主要研究方便是研发全新的人脸信息识别的算法,该研究的产品和人脸信息识别系统已经拥有了完全的自主所有权。并在第16届人民代表大会上发挥了身份认证的作用。

 1.3主要研究内容

该系统以STM32H750VTB6 CPU为中心,采用内置OV7725相机芯片的OpenMV4作为控制模块,该模块可直接插入SD卡进行内存扩展,最大支持32GB。然后,使用匹配的OPMV IDE软件进行程序,使用LBP特征算法利用STM32宏处理器进行面部识别。LBP特征算法的定义是以3×3方框中的中心方框的像素为阈值,并且将相邻的8个矩形方框中的像素的灰度值和中心矩形方框的灰度值相比较,并且如果周围方框的像素值大于中心方框像素值,则将该矩形方框标记为1如果周围方框的像素值小于中心方框的像素值,则标记为0。这样,比较3×3附近的8个矩形方框的定义值,从左上角方框顺时针一次计数,就会生成8位的二进制数,再换算成10进制的LBP码,就会得到中心矩形方框的中心像素点的LBP值,再使用该LBP值,就可以反映该图像的该区域的纹理信息。

电源部分,该系统采用配套的锂离子电池进行供电,也可利用USB接口进行直接供电。

另设按键以分别实现人脸信息的采集和识别。同时设置有蜂鸣器,若人脸识别不匹配则蜂鸣器会报警。同时为了方便使用者观察摄像头采集情况,设置有LCD液晶显示屏扩展板,同步显示摄像头当前采集图像。

第2章系统方案设计

  2.1方案设计要求

  2.1.1系统设计的技术要求

(1)允许使用模块集成的单片机作为核心控制器,自行选自合适单片机控制器;

(2)实现人脸的录入,最少不得少于两个;

(3)实现自动人脸识别开锁功能;

(4)利用摄像头实现人脸图像的采集;

(5)显示模块实现当前人脸检测显示,自行设计驱动电路;

(6)采用电池供电,规格不限,需预留充电口;

(7)设置必要按键,对基本功能进行定义;

(8)设计蜂鸣器报警电路,实现非录入信息识别错误报警功能;

(9)合理设计各部分电源电路,为系统供电。

 2.1.2系统设计的技术指标

(1)系统供电电源采用5V直流电源,规格不限。

(2)结合市场现有相关产品,对人脸识别门禁系统进行合理性预制,符合实际应用场景。

2.2系统方案设计

1.单片机的选择

方案一:STC89C52是处理器。这个核心有最经典的51内核,3个定时器,32位I/O口。该单片机有8K大小的可编程内存、4个外部中断、全双工串行端口等。有低消费性能和低成本的特征。

方案二:STM32H750VTB6单片机。具有DSP和DP-PFPU的高性能ARM Cortex-M7MCU具有128KB Flash、1MB RAM、480MHz CPU、一级缓存、外部存储器接口、JPEG编解码器、硬件加密以及大量的外设接口,但成本高。

综上所述及任务书要求,因STC8G系列单片机运算机能较弱和储存空间较小题,不适用于需要快速反应的人脸识别的场景,而且本设计需要大量接入外设,大多采用各种协议通信,方案二的STM32系列的STM32H750VTB6单片机作为主控芯片,虽然成本略高,但其强大的图片运算能力和较多的功能引脚更加适合人脸识别的课题。

2.摄像头模块

方案一:CF0K82C摄像头模块,模块自带LDO,单宽电源2.9–5V,VCC工作2.54毫米间距2X8接口,可方便杜帮线连接试验模块自带27MHZ有源晶振,无须外部提供时钟信号。成本较高

方案二:OV7725摄像模块,该芯片已经将有源晶振集成在芯片内,所以不需外部芯片提供时钟信号,该芯片也同时把FIFO芯片一体化,使图像容易读取,该芯片支持VGA、QVGA、从CIF到40*30的各种尺寸的图像信息的输出。工作电压3.3V,成本相对低。

综上所述,由于本设计对摄像头性能要求不高,OV7725摄像头模块足以胜任本设计要求,而且OV7725摄像头模块成本不足CF0K82C摄像头模块一半,所以选择方案二,采用OV7725摄像头模块。

3.显示部分

方案一:LED显示屏,高强度发光,再阳光的折射下,可将高清的内容屏幕显示在屏幕的表面。对于灰度控制的级别较高。能够是用1024到4096级灰度的控制,使屏幕清晰的显示出16.7M以上的颜色区域,从而保证画面超强立体感。但是驱动功率大,扫描方式主要为静态锁存,从而保障了屏幕高强度亮光。

方案二:LCD显示器,机体薄,不占空间。功耗低、省电、不产生较高温度。与LED显示器相比,不发烫,无辐射。

综上所述,由于该单片机系统驱动电压小,不适合高功率消耗的LED显示屏,且LED显示屏成本高,而且OpenMV硬件拥有其相配合的LCD显示屏,相对于LED显示屏方便许多,所以选择LCD显示屏。

4.电源模块

本设计由于体积小,功率低,所以选择使用3.7V锂电池进行直接供电,也可连接USB直接进行供电。以上两种供电方式均能满足该硬件的用电需求。

5.报警模块

根据设计任务要求,该设计的报警模块采用蜂鸣器进行报警。通过主控芯片经过I²C协议输出DAC来控制电平的变化来使无源蜂鸣器发出声响,而且通过DAC控制输出的方波不同可以驱动无源蜂鸣器发出不同声音。

6.储存扩展

根据以上所选内容可确定使用OpenMV开源硬件符合设计要求,该模块可直接插入SD卡进行储存扩展,最大支持32GB。扩展的储存空间用于存储人脸信息保存后的后缀为.pgm格式的图片。图片分辨率设置为128*128大小。

7.继电器模块

由于电磁继电器与LED灯都是通过电平的改变来控制其现象的改变,处于考虑节省引脚和便于程序设计考虑,所以此设计以LED灯代替作为继电器使用。

 2.3系统的结构组成及结构框图

本设计主要由以下几部分组成:摄像头模块OV7725和控制模块STM32H750集成在一起的开源硬件OpenMV,显示模块168×128分辨率的TFT LCD显示屏,电源模块为3.7V锂电池。信息采集和识别按键。系统的结构见图2-1系统结构框图。

图2-1系统结构框图

dbb06ccf1675bb37ca01db595f2407e0  该设计以STM32H750为主控制器,OV7725摄像头用于采集和识别人脸信息,LCD显示屏用于显示实时采集信息,报警模块根据任务选用蜂鸣器,继电器模块采用与继电器原理相同的LED灯代替。再根据所选硬件确定使用OpenMV开源硬件,该硬件可直接采用SD卡进行储存扩展,再另设图像采集和识别按键,系统用3.7V锂电池直接供电。

 第3章系统硬件电路设计

  3.1 STM32H750VBT6单片机

本次设计应用的是OpenMV开源硬件,其以STM32H750VBT6为控制核心,然后由开发板上集成的OV7725摄像头模块进行图像的采集,再通过LBP特征算法进行图片的特征值比较来达到识别人脸的目的。再通过外接LCD显示屏实时显示目前摄像头所采集到的人脸信息。

 3.1.1单片机主要特性说明

单片机STM32H750VBT6最小系统如图3-1所示。591350711b65f6be8b16d94b2d0cc0b9

图3-1 STM32H750最小系统

STM32H750单片机的特性:正常工作电压为3.6V到2.4V。CPU型号为ARM®Cortex®-M7,为32位CPU。主频率为480MHz/400MHz。单片机中也集成了高性能快速的嵌入式内存,其闪存为128 KB,拥有1 MB RAM(包括192 KB容量的TCM RAM与864 KB大小的用户SRAM与4 KB大小用于备份SRAM),庞大的内存能够容纳MicroPython固件资源信息。片内带有全速USB(12MBs),当芯片连接电脑的IDE开发平台时,弹出虚拟U盘,可通过拖拽的方式进行程序的烧录,免去了传统仿真器的繁琐配置过程。STM32H750VTB6处理器同时包括APB总线、AHB总线、2x32bit的多个AHB总线矩阵、并且能够支持内部与外部存储器访问多层AXI互连的广泛扩展类型I/O和外部设置。

STM32H750VTB6提供三个ADC接口、两个DAC接口、两个极低功率比较器、一个低功耗实时时钟、一个高分辨率定时器和12个通用16bit定时器、两个用做控制电机的PWM定时器、5个低功率定时器、一个随机数生成器和一个加密加速单元。它们还具有标准和先进的通信接口。

 3.2 OV7725摄像头模块

本设计采用OpenMV4作为主体,而OpenMV4上嵌入有OV7725摄像头模块。

 3.2.1 OV7725摄像头模块介绍

OV7725采集信息,经过硬件二值化处理后,再通过单片机读取图像信息。OV7725是CMOS传感器,自带硬件二值化功能,阈值硬件自动进行动态控制,减少了软件运算效率,适合MicroPython使用方便但速度较慢的开发语言。

OV7725传感器是1/4英寸高性能的处理器,该芯片将单芯片VGA和图像处理器集成在小封装里。拥有低功耗的OV7725芯片在低光的条件下尤其出色。同时OV7725的芯片能在20°C~70°C的范围内正常工作,能适应多种场景环境下的应用。OV7725芯片同时也集成了一个640*480图像阵列。OV7725有着150Hz的帧频率,30万有效像素,在80 FPS下可以处理640*480 8位的灰度图。该芯片是通过SCCB总线来进行控制。OV7725照相机模块具有包括全部照相机处理功能。有平衡白度、彩色系数、控制色调编号等多种功能。OV7725芯片可以使用SCC协议来对以上功能进行设置。OV7725芯片原理图如图3-2所示。

图3-2 OV7725芯片原理图

d8592c6d8a0a483dc56b0c11f6b42a41  图片的传输是由OV7725和AL422B储存器与SN74LVC1G00与非门芯片共同配合完成,AL422B芯片是一个FIFO类型的储存器。AL422B芯片原理图如图3-3所示。SN74LVC1G00与非门芯片原理图如图3-4所示。

19fed4a1e1d4a5fc443ee8ff757c323a

 3.2.2 OV7725摄像头芯片引脚功能介绍

OV7725摄像头芯片引脚功能如表3-1所示

a51354026556b5d9305e46688593e03d

 3.2.3 OV7725摄像头采集图像原理

外部图像通过照相机的摄像头,经过感光矩阵,也就是感光单元阵列,感光元件同时也对应于图像传感器的各像点。这些单元的核心是是一种感光二极管。由于单元电流微弱所以要经过信号放大器放大。CMOS传感器的各感光单元中都有A/D转换器,之后感光单元输出数字信号,然后,DSP芯片接收各个感光单元的数字信号。

滤色器是CMOS图像传感器是区分颜色的主要部件,通过将RGB的3原色的滤色器分别覆盖在三个感光元件之上,三个感光元件生成一个彩色像素数据的感光单元,其中每个元件都是由RGB滤波器构成。

摄像头上的所有的数字信号就能构成一帧图像的数据,完成一帧图像数据的收集。

3.2.4图像信息数据传输的原理

首先,OV7725芯片与主芯片的通信采用SCCB的通信模式,STM32H750VTB6对OV7725芯片的控制指令由SCCB总线传输,而SCCB通信需要SCL读取和SDL来控制数据的数据传输,开始信号:当SCL是高电平的时候,这时,SDA会生成一个下降沿,然后SCCB总线开始传输数据。停止信号:SCL为高电平,SDA生成一个上升沿,然后SCCB总线停止传输数据。对于数据的有效性数据的有效性,除开开始状态和停止状态,当SCL处于高电平是,保证SDA上的数据的稳定,所以SDA的变化仅仅在当SCL处于低电平时下才会开始,SDA传输的信号仅在SCL处于高电平的情况下收集。

面部信息的拍摄由OV7725摄像头芯片和FIFO类型的AL442B存储器共同进行。在数据传输时,一开始SDL引脚、SDC引脚开始对OV7725芯片进行初始化,初始化完成,OV7725芯片输出数据,数据以VGA的时序输出,VSYNC输出有效信号,当STM32H750VTB6检测到该有效信号时会将WEN设成高电平,并且重置WEST。存储器的写入指针将数据输出到0地址,传送有效数据后,HREF会持续输出高电平,而非栅极芯片会得到WE和HREF将以输入高电平信号,连接到储存器芯片的WE的输出变为低电平之后,可以在储存器上写入数据。在OV7725输出数据之后,VSYNC会输出有效信号,表示数据已经输出完毕,STM32H750VTB6得到VSYNC读取的信号后,表示数据已经保存在储存器芯片中,然后禁止向储存器芯片写入数据,防止OV7725芯片的之后输出的数据覆盖当前已经保存好的数据。STM 32H 750VTB6使用RST复位,将读取与FIFO芯片的0地址对准,并通过FIFO芯片的RCLK销和D[0-7]读取从0地址读取存储在FIFO芯片中的帧数据。这时,OV7725芯片继续输出收集的数据到储存器芯片中,但是禁止向储存器芯片写入,但是这些数据无法保存,属于无效数据。STM32H750VTB6使用WRST复位储存器芯片的0地址,等待新的有效信号,检测到有效信号后,再将WEN设为高电平。OV7725芯片可以写入储存器芯片,OV7725芯片输出的帧数据又会被写入储存器芯片的0地址。SCCB协议起始信号时序图如图3-5所示,SCCB协议停止信号时序图如图3-6所示。

33eb9e456a8386dcc355aaf385a7e3f8

AL422B读写时序图如图3-7、3-8所示。

493dde68a77846a422b1b430ea17d87a

图3-8 AL422B写时序图

 3.3显示模块

本设计中需要外接LCD显示屏,由STM32H750VTB6驱动,显示实时的图像信息采集情况。

 3.3.1 LCD屏介绍

LCD显示屏,也就是液晶显示屏,显像原理是在液晶材料两侧加上两个垂直偏光板,液晶就会向细沟槽方向按顺序旋转排列,加入没有形成电磁场,光线从偏光板入射在原则上是沿着液晶旋转的,然后从对面的偏光板射出。具有低耗电、小型或零辐射等优点。其内部内置内置DC-DC转换电路,无需外加负压。

本次设计采用的是168*128尺寸的TFT类型的LCD显示屏。TFT-LCD液晶显示屏的特点是不会发生闪烁现象,基本没有辐射,不会产生对人体危害;TFT LCD显示器的生产技术较为成熟,大规模生产的完成率很高。TFT-LCD显示屏是半导体集成电路技术和光源技术的优秀的结合,现在有许多类型的TFT LCD显示屏,比如非晶硅、多晶硅和单晶硅的TFT-LCD显示屏;特性好:能够在低压环境下运行,提高了安全性和可靠性。平板化不仅节约了使用材料的成本,而且轻量薄型的外形也便于硬件设计。低耗电也是其优点之一。用CRT屏幕的十分之一的耗电,反射型TFT-LD显示器只有CRT屏幕的1%左右,适用范围宽:从-20℃到+50℃的温度范围内都可以正常使用。是性能优良的全尺寸视频显示终端。采用SPI协议的方式与STM32单片机进行通信。原理图如图3-9所示,实物图如图3-10所示。

a214d9a8d7c39ba4ecb274ae325c48c6

 3.3.2 LCD屏部分引脚功能介绍

LCD屏部分引脚功能如表3-2所示

3aeea6c48180238bb82f89615786a5e8

 3.3.3 LCD屏驱动原理

液晶显示器是通过控制电压从而产生不同灰度。TFT LCD显示屏产生电压是薄膜晶体管的作用,然后使液晶旋转。从构造分析,上下两层偏光板之间有液晶分子。这样就形成了是平行板电容器,。其电容大小大约为为0.1pF,但在实际应用中,如此小的电容是没有办法将电压维持到下一次更新画面。所以在TFT LCD显示屏在0.1pF电容充满电时,需要设法将电压维持住到相应等级,否则到下一次TFT LCD显示屏再这个充电时,显示是以60Hz的频率更新画面,所以需要显示时间16ms。电压就会产生变化,之后就不能以正常显示画面。所以在设计上会加储存电容。用于让充满电的电压能够维持到下一次画面更新。

  3.3.4 LCD屏显示原理

液晶的通过改变电压来控制透光率。当光通过上面的偏光板时,光偏振的方向和偏光板振动方向相同,而且这时上下玻璃板上液晶的排列顺序一样。这时,当光通过液晶层时,光受液晶的作用产生折射现象,并通过偏振被分解成两个光。由于这两个光的速度不一样,但是相位一样,因此两个光被合成的时候,偏振的振荡方向就会发生变化。通过液晶的光会发生扭曲现象。当光到达下面偏振片时,光轴振动方向就会扭曲接近90度。这样,当光通过下偏振片时,形成光场。在施加电压后,电磁场会将液晶定向,扭转就会消失。当液晶层不会旋转之后,偏振通过偏光板时,就无法通过下偏振片,紧接着形成暗场。所以在外光源的作用之下,液晶就可以完成发光显示。在显示过程中,起到光阀作用的是液晶分子。总结来说,当施加的电压比栅极顺电压小,漏极导通;栅极顺电压等于0或负电压,漏极就会切断。

 3.4电源模块

考虑到本设计的实用性,且结合OpenMV开发板的实际情况。而且本设计属于静置设备,不常移动,所以可用3.7V锂电池直接进行供电,也可连接USB进行直接供电。锂电池比其他种类的电池能量密度高,达到了460-600Wh/kg,能量密度是铅酸电池的的7倍;而且使用寿命长,能够使用6年以上。锂电池的额定电压高,工作电压为3.7V或3.2V,所以能驱动许多小型电路,而其他类型的电池的串联三个,才会达到这个水平。锂电池有一种特有的调压技术,可以将电压调到3.0V,更能适合多种场景的应用。锂电池的优势在于自放电率低,一般可达到百分之一一个月以下;而且锂电池重量轻,其他电池在相同体积下,重量会为锂电池的几倍以上,锂电池的适用温度范围也很广,在-20℃-+60℃的环境下都能够正常运行。在生产过程中和时候抛弃后,都不会产生任何有毒有物质,绿色环保。

该电源经过降压稳压电路输送给OpenMV各传感器的电压为3.3V。

电源模块实物图如图3-11所示,原理图如图3-12所示。

图3-11电源模块实物图

efd67ef8163e61800e237a0a6323d6d5  图3-12电源模块原理图

722101e9fc7882742176017fc552904a  降压电路采用芯片PAM2305AABADJ,降价稳定器采用TPS731XX芯片。降压电路原理图如图3-13所示。

图3-13降压电路原理图原理图

262a5b3410d10b464af483e10e2879bb  3.5储存扩展

由于该设计需要大量空间来储存采集到的人脸信息,所以需要储存扩展,OpenMV开发板自带SD卡储存扩展,最大支持32GB。扩展的储存空间用于存储人脸信息保存后的后缀为.pgm格式的图片。图片分辨率设置为128*128大小。OpenMV通过基于SPI协议的通信方式与SD卡通信。SD卡的SPI通信接口允许主芯片经由SPI接口读取和写入数据。采用SPI接口的好处是,现在很多宏处理器内部都有SPI控制器,在降低成本的同时,开发难度也大幅下降。储存扩展模块原理图如图3-14所示。

图3-14储存扩展模块原理图

0b7ad0194e21377a83a5fe27435e534b  3.5.1储存扩展SD卡读写原理

SD卡的初始化之后,能够对芯片读写进行操作可发送命令进行读写操作。SPI总线模式支持多种写入操作,从指令指定的地址开始写入时,将执行多个块操作。当SD卡在接收到停止命令后,将停止写入。数据长度只能为512KB。SD卡需要对发送给每个数据块使用响应命令进行确认,才能进行执行写程序,响应命令为1KB长度,低5位为分别为00101时,会控制数据正确写入。SD卡读写时序图原理图如图3-15、3-16所示所示。

f03a3a4c8f982eeba34b7a665ba00608

 3.6继电器模块

由于继电器和LED灯都是通过改变电平来控制开合或亮灭,其控制原理基本相同,所以本设计考虑到成本、硬件复杂度的角度,决定以LED灯来代替继电器模块,以LED灯的亮灭代表继电器模块给以高电平和低电平的状态。继电器模块原理图如图3-16所示。

图3-16继电器模块原理图

b3a2d13859092d51658e3e6a8e4005ad  3.7报警模块

根据任务要求,本设计报警模块采用的是9×4.2,3.3V额定电压,直插式无源蜂鸣器,采用PWM与主控制器相连。当识别不匹配时蜂鸣器会产生报警。

3.7.1报警模块介绍

无源蜂鸣器,是由永久磁铁,线圈,振荡片构成。无源蜂鸣器的发声过程为:主芯片以一定的频率提供振荡信号(一定的占空比的方波),振荡信号对线圈起作用,产生的磁场与永久磁铁一起起作用,,使振荡片发生振动而发出声音。所以需要给予频率的变化,才能发声,同时可以通过改变频率来改变蜂鸣器的发声音色,通过DAC输出来使无源蜂鸣器发声。无源蜂鸣器制作成本低;声音频率范围宽,能够根据频率的不同发出各种声音。

因为无源蜂鸣器的工作电流大,主芯片的I/O口不能直接驱动。一般使用三极管放大电流,从而顺利使无源蜂鸣器运行。无源蜂鸣器原理图如图3-17所示。

如图3-17无源蜂鸣器原理图

cb8ee3d00d3a3669c12137a4b1a0abba  第4章软件系统设计

  4.1软件设计思路

程序是硬件功能实现的基础,而核心功能的实现需要算法。不同的编程语言会有不同的结构特点和适应性。这次针对OpenMV开源硬件,编程语言采用了MicroPython进行开发。整体程序简介明了,可读性高。

编程时使用相应的是OpenMV IDE软件进行操作。可直接在应用层进行开发,高效便捷。也可以通过该程序观察采集到的图片,各原色占比和串口终端的信息显示。本设计通过对STM32H750VBT6主控芯片编程,来控制摄像头模块、显示模块、继电器模块和储存扩展模块。

 4.2主程序设计

因为现象的实现是通过主程序调用多个子程序来实现的,所以要求主程序逻辑明确且合理的架构。本设计的主程序包括下面几部分:初始化、人脸拍摄子程序、人脸识别子程序、蜂鸣器子程序、LCD屏显示子程序。

主程序初始化部分是对各个模块的初始化设置、对芯片的寄存器初始状态的设置的和对串口通讯波特率的设置等基础工作。人脸拍摄子程序的任务主要是拍摄采集当前人脸信息,然后通过SCCB协议发出读写信号到STM32H750VBT6芯片。再经过SPI的通信方式将信息储存到储存扩展的SD卡中。人脸识别子程序主要任务是拍摄当前摄像头的人脸信息,然后通过LBP特征算法与已采集好的人脸信息作出对比,得出特征值来比较最为相似的人脸。蜂鸣器子程序是通过特定频率的方波来驱动,当识别的特征值大于程序中设定的界限时,蜂鸣器响产生报警。调用LCD屏显示子程序是通过SPI协议通信,将当前采集到的人脸信息一帧一帧的不断拍摄,然后实时显示在LCD显示屏上产生连贯画面,以方便用户查看人脸拍摄的情况。主程序流程图如图4-1所示。

图4-1主程序流程图

d8a4fdab91cde32a2c138322d52d6b87  4.3人脸拍摄子程序

对于人脸的拍摄时OpenMV的一个基础功能,进行人脸识别的前提是需要有一个库,用于将采集到的人脸信息与库中的人脸信息进行对比,然后得出结论。人脸拍摄子程序首先需要导入sensor,image,pyb库,然后对摄像头传感器、摄像头灰度和图面分辨率大小进行初始化,再根据建立好的图片库的路径对程序进行设置,运行程序后就通过控制OV7725摄像头拍摄当前画面,再将拍摄到的信息储存到提前建立好的图片库中。该程序是一个简单的线性程序,通过主控芯片控制摄像头进行拍摄。人脸拍摄子程序如图4-2所示,拍摄提示示意图如图4-3所示。

图4-2人脸拍摄子程序流程图图4-3拍摄提示示意图

aaca1acdc6cbc4c822e552abee91a52f

b34b5df08198aa8ab6b89e94d024e7a7

4.4人脸识别子程序

人脸识别子程序是本设计的重点,首先要导入sensor,time,image,pyb,之后对摄像头传感器、摄像头灰度和图面分辨率大小进行初始化,之后OV7725摄像头会拍摄当前图像与图片库中的图像通过LBP算法进行比对,人脸识别最重要的就是算法,本设计采用LBP特征算法,将当前摄像头采集到的人脸信息通过LBP特征算法转化为LBP特征值,再与库中图片的LBP特征值相比对,从而得出特征差异度,再由差异度的结果与程序设定的结果相对比,从而决定下一步的结果。人脸识别子程序流程图如图4-4所示。

图4-4人脸识别子程序流程图

562b2a214c6e4f481258d3f435e87838  4.4.1 LBP特征算法

LBP特征算法的定义是以3×3方框中的中心方框的像素为阈值,并且将相邻的8个矩形方框中的像素的灰度值和中心矩形方框的灰度值相比较,并且如果周围方框的像素值大于中心方框像素值,则将该矩形方框标记为1如果周围方框的像素值小于中心方框的像素值,则标记为0。这样,比较3×3附近的8个矩形方框的定义值,从左上角方框顺时针一次计数,就会生成8位的二进制数,再换算成10进制的LBP码,就会得到中心矩形方框的中心像素点的LBP值,再使用该LBP值,就可以反映该图像的该区域的纹理信息。如图4-5所示:

图4-5 LBP特征算法示意图

4e606e32225a7404126c2c4fe46d780d

在LBP特征算法的应用中,在人脸识别的的方式中不将LBP特征作为特征向量进行分类识别,而是使用LBP特征的直方图的进行分类识别。

这个特征和所识别图像的图像点的位置有关系。直接对两幅图片数据获取这种“特征”,并分析,并且根据定点位置产生偏差。然后,将一张图像数据分割成许多个子区域,在对各子区域的各像素点取得LBP特征后,在各子区域制作LBP特征的直方图。这样,在每个子区域,都可以用一个直方图来进行表示这个子区域的特征,最后整个图片数据也就成为了许多个直方图组成的。

比如:一幅150×250像素的图片数据,可以划分成12×15=375个子区域,将各个子区域像素大小设定成10×10像素。这样,对各子区域内的多个像素点进行LBP特征提取,然后,建立起直方图;利用直方图,就能表示这个图片数据。然后,我们再用比较函数,就可以基于计算结果,以直观地看到两个图像数据的类似度的差异。

 4.5蜂鸣器子程序

本设计采用的是无源蜂鸣器。使用I2C总线连接主控制器,通过DAC驱动,AC模块是电压输出数字模拟转换器。在DAC双通道的模式下,各通道可以单独转换,当两个通道组合在一起执行操作时,也可以同时进行转换。DAC模块也可以通过一个输入电压引脚来调整分辨率。蜂鸣器子程序流程图如图4-6所示。

图4-6蜂鸣器子程序流程图

0d734d02b96bd7df02564cd4c57a6a81  用特定频率的方波来驱动,方波是一定频率的高低电平转换,使用DAC.write(0)和DAC.write(255)交替输出,可以通过延时函数来控制输出变换的次数。DAC输出方波图如图4-7所示。

图4-7 DAC输出方波图

4b1ecbd85027c8c341041e3690675a97  4.6调用LCD屏显示子程序

调用LCD屏显示子程序是通过将当前采集到的人脸信息按帧的不断拍摄,然后实时显示在LCD显示屏上产生连贯画面。由于LCD屏通讯应用的的SPI协议通信,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。另外SPI采用单向方式,也就是只用到三个引脚,即主出/从入,时钟,片选。在程序初始化时首先导入LCD库,之后需要设置LCD屏分辨率为QQVGA2代表128×160的分辨率。初始化后在程序需要不断让摄像头执行拍摄,之后将图片通过SPI协议传输到LCD屏,就能实时显示摄像头的拍摄画面了。调用LCD屏显示子程序如4-8所示。

图4-8 LCD屏显示子程序

488ffb7e43590a17b2559b697bc829e8  第5章系统测试与结果分析

  5.1测试仪器

万用表、拍摄物品

5.2硬件测试

  5.2.1硬件测试方案

本设计由于采用开发板组合,组合处排针较多,所以主要检查各部分排针完好情况,检查是否有弯曲、断裂情况。开发底板实物图如图5-1所示。

图5-1开发底板实物图

ff843455d78b8211f615fd3acb159f4a  需要蜂鸣器工作时,需要将开发板上的X5和X6短接,为防止开发板内有断线情况,导致短路时电流过大,以至于蜂鸣器烧坏。需要在运行情况下用万用表检测两引脚之间短路电流是否正常。

由于本系统可用电池进行供电,为防止锂电池损坏出现漏电导致硬件不能正常运行,所以需要用万用表测量锂电池两极间电压,确保锂电池工作正常。

设计用到的LCD显示屏属于易损坏硬件,所以手持四角将其安装在开发板上,防止引脚弯折,再接上电源,观察LCD屏是否由于屏幕挤压、排线损坏等导致不能正常显示。

检测摄像头是否能正常运行时,将OpenMV通过USB连接导入简单的拍摄程序,可在所用程序OpenMV IDE左上角观测窗口,观察到摄像头采集情况。

 5.2.2硬件测试结果

本次硬件设计相对较好,排针完好,开发板后无虚焊少焊情况,经过万用表测量,开发版所用模块未出现断线情况,LCD显示屏由于挤压,部分屏幕显示不完整,摄像头模块表现正常,电源模块的锂电池无损坏、漏电等现象。另外开关按键灵敏可靠,蜂鸣器声音正常,可发出多种频率声音。检测实物图如图5-2所示。

图5-2硬件实物图

8e59ed8ecfa7318f19ef2b4ac7fe9cb0  5.3软件系统测试

本设计的人脸识别由于需要建立本地库,所以运行程序检测是否能将采集到的人脸信息储存到提前建立的库中。所以运行程序后,重置单片机,通过USB连接PC可观察到采集信已正确存入提前建立的库中。库s1、s2如图5-3所示。

图5-3库示意图

13581186415b18d723eeb25a1a22de26  当运行人脸识别程序时,需调用库中文件,并经过算法计算得出差异值,经过运行识别程序,可在OpenMV IDE下方串行终端中观察到,当前拍摄人脸信息与提前采集到库中的两个人脸信息的差异值计算结果,检测后程序正常运行,能正确得出拍摄和库中人脸的差异值。串行终端差异值示意图如5-4所示

图5-4串行终端差异值示意图

255bd625d7991a74be1641877927530c  5.4测试结果分析与改进

通过测试和分析可以看出,本设计较为完善,设计要求基本可以达到。各模块也能正常工作,电路运行完善,开发板没有无断线、短路的情况。软件程序方面也基本能够满足要求。

但是本系统利用LBP特征算法进行人脸识别,算法采用灰度图进行判断,识别效果受外界环境等影响大。所以在实际应用时应安置在受光照光照、阴影影响小的地方。

 第6章结论与展望

本设计采用STM32H750VTB6主控芯片,OV7725摄像头模块,LCD显示屏模块,蜂鸣器报警模块等。通过阅读芯片数据手册以及应用手册,和官方提供的入门手册,学习人脸识别和Python语言的基础知识,观察大量运用OpenMV开源硬件的基础实验,学会了如何正确操作OpenMV和简单运用Python语言。通过查找大量OpenMV运用和人脸识别方面的资料,逐步修改设计思路。基本实现任务目标。

本次设计过程出现了很多问题。在一开始确定单片机选型时,首先选用的是两片ST89C52单片机分别作为上下位机来实现题目设计,但通过查找资料,发现ST89C52单片机运行速度不能满足需要高速计算速度的人脸识别方面,之后又通过指导老师,了解了一开始思路的大方向出现偏差,逐渐偏离单片机的方向。之后又通过指导老师,逐渐了解到了OpenMV开源硬件,从此逐渐建立起明确的思路。由于本次设计用到了之前一直没有接触过的Python语言,所以在程序的编写方面显得有些吃力,但经过自己的不断尝试和稍许研究,能基本实现任务设计的目标。

人脸识别现在已经普及到许多地方,比如手机人脸解锁、上班人脸签到等。由于STM32单片机机能限制和这次运用的LBP特征算法是最为基础的版本,导致精度不高,受环境影响大。但经过设计过程中大量查阅资料,运用更为先进的单片机和算法后,人脸识别技术一定会在当今生活中运用的更加广泛,更加精确。

 参考文献

[1]姜志海.原理及单片机应用[M].电子工业出版社,2009:12-52.

[2]李勋,刘源,李静东.单片机实用教程.北京航空航天大学出版社,2006.

[3]王映辉。人脸识别[M].北京:科学出版社,2010:89-132

[4]李全利.单片机原理及接口技术[M].高等教育出版社,2004:27-35.

[5]张俊谟.单片机中级教程:原理与应用[M].北京:北京航空航天大学出版设,2006:20-

[6]蔡晓曦陈定方,特征脸及其改进方法在人脸识别中的比较研究U].计算机与数字工程,2007,35(4):117-119.

[7]曾现峰.单片机原理与应用[M].背景理工大学出版社,2009:63-64.

[10]韩家新.基于人脸整体特征的证人判别方法研究[D]:[硕士学位论文].西安:西北工业大学,2002.39.

[11]MingHlsuan Yang.David Kriegman,and Narendra Ahuja,DetectingFaces in Images:A Survey.IEEE Transactlons on Pattern Analysisand Machine Intelligence,2002,Vol.24,34-58

 致谢

大学生活已经进入尾声,学生生涯即将结束,回顾四年时光,发现自己有了很多的成长。四年时间,学会了很多课本上没有的专业纵深技能,完成了很多设计和项目。

感谢指导老师对我的帮助。对我的开题报告、硬件设备和课题任务提出的建议,如果没有老师的建议,我的毕业设计一定会经历更多坎坷。

感谢电气系各专业课教师。具有普遍性,应用性的课堂讲解,使我专业基础更加扎实,在面对项目设计时更加得心应手。严谨、有序、高效的实验指导,使我们的理论知识有了更充分的了解,而不是仅有书面设计的“虚高”技能水平。每次在探讨科目相关的一些问题时,总是能够给我及时的指明研究方向。每年的课程设计和创新创业项目,都是和老师们进行深入学术交流机会。和老师们相处,获得知识的过程是融洽、欢乐的。

感谢在我完成毕业设计和四年学习中,给我指点迷津的学长学姐;感谢在我无助发问时,帮我一起攻克难题的素不相识的网友;感谢比赛期间一起熬夜研究的学弟学妹,以及当时比赛现场见到的各个学校的参赛选手,在思路上给了我很大的启发。

虽然学生时代已经结束,但是学习的精神是永远不能停止的,在以后的工作上,我降努力学习岗位技能,认真工作,用心工作,创新工作,通过自己的专业知识,为建设科技强国贡献出自己的一份力量。

基于单片机的人脸识别门禁系统的设计

基于单片机的人脸识别门禁系统的设计

价格 ¥9.90 发布时间 2023年10月25日
已付费?登录刷新
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/174654.html,

Like (0)
1158的头像1158编辑
Previous 2023年10月21日
Next 2023年10月26日

相关推荐

My title page contents