运行效果:
基于K210的智能人脸与车牌识别系统工程
目录:
运行效果:
目录:
前言:
一、国内外研究现状与发展趋势
二、相关技术基础
2.1 人脸识别技术
2.2 车牌识别技术
三、智能小区门禁系统设计
3.1 系统设计方案
3.2 系统设计目标
3.3 智能小区门禁系统硬件设计
3.3.1 控制模块设计
3.3.2 人脸识别模块和车牌识别模块设计
3.3.3 门禁模块设计
四、智能小区门禁系统软件设计
4.1 软件总体设计
4.2 人脸识别软件设计
4.3 车牌识别软件设计
五、智能小区门禁系统功能测试
5.1 功能测试
5.1.1 人脸识别
5.1.2 车牌识别
六、总结
前言:
随着时代的进步和科技的迅猛发展,人们对居住安全的重视程度不断提升,对安全防范系统的需求也日益增强。在安防系统中,门禁系统占据着重要的位置。传统的门禁控制方式主要依靠钥匙、密码和门禁卡等,这些方式易于被破解和复制,安全性较低。然而,近年来,生物识别技术的迅速发展和成熟,为解决这一问题提供了新的方案。生物识别技术具备便携性、非易失性、不易遗忘以及难以盗用等优点,逐渐被引入到门禁系统中。
传统的小区门禁系统往往依赖人工管理,存在一定的局限性,难以满足用户多样化的需求,也浪费了人力资源。因此,本课题旨在通过嵌入式设计构建一个智能小区门禁系统,以达到预期的效果。该系统将采用面部识别和车牌识别技术,有效减少小区安保人员的工作负担,提高进出人员的识别准确性和效率,从而保障小区的安全。
将面部识别、车牌识别与嵌入式技术相结合,充分利用各自的优势,符合当前智能化发展的潮流,具有重要的应用价值和实际意义。
一、国内外研究现状与发展趋势
随着大数据、云计算、5G、物联网等信息技术的迅猛发展,门禁管理与前沿技术的深度融合,推动了智能门禁系统在安全防护领域的新发展。门禁系统经历了从密码控制、感应识别到如今生物特征识别的三个阶段,不断提升其安全性、准确性和可靠性。在众多生物识别方法中,人脸识别因其独特性在门禁系统中占据重要地位,预示着以生物特征为核心的门禁系统将拥有更广阔的发展前景。
门禁系统自20世纪80年代诞生,90年代引入中国,经历了从简单身份验证方式到基于生物识别的智能化转变。国内外研究人员和企业正聚焦于生物识别门禁控制系统的研发。国内企业如门吉利、汉王等在技术进步和市场份额上虽与国际同行存在差距,但已取得显著进步。国外企业如美国的HID公司、西屋电气和德国的Destele等在门禁系统研究领域处于领先地位。
车牌识别技术起源于20世纪80年代,经历了从字符模板匹配到基于深度学习方法的演变,取得了突破性进展。车牌识别技术分为传统车牌定位技术和基于深度神经网络的车牌识别技术,其中基于图像分析的方法因其直观性和准确性而广泛应用。
随着计算机技术、通讯技术和人工智能技术的飞速发展,人们对门禁控制系统的功能需求日益增长,传统门禁系统已无法满足这种需求。智能控制系统的兴起与发展成为必然,智能门禁在市场中的占有率急速上升,而旧式门禁在市场竞争中的优势则逐渐弱化。随着5G技术的发展和普及,多重生物技术和NFC技术在门禁系统的综合应用,门禁系统正趋向集成化和智能化发展。未来的门禁系统将更加丰富、完整、兼容,并变得对用户更加友好。
二、相关技术基础
2.1 人脸识别技术
人脸识别技术是计算机视觉领域的一个重要分支,它利用数字图像或视频采集设备获取人脸图像数据,并采用特定的人脸特征提取及识别算法来实现对人脸特征的识别与认证。这一技术在安防监控、身份认证、人机交互、智能家居等多个领域都有广泛的应用。
传统的人脸识别技术主要包括基于几何特征、模板匹配、统计分析和传统神经网络这四个方向。其中,基于几何特征的人脸识别是一种经典方法,它主要关注面部关键结构的定位和分析,如眉毛、眼睛、鼻子和嘴巴等的位置、尺寸以及它们之间的相对距离和比例,从而形成面部的特征向量用于识别。为了提高识别能力,这种方法通常需要对图像进行适当的标准化处理。
在具体识别过程中,该方法首先将待检测的人脸与特征脸进行映射,然后对比待检测人脸与特征脸的空间位置,最后输出待检测人脸的匹配度。算法的运行过程可以概括为以下几个步骤:首先,将人脸数据集中的n张人脸图像转换为向量M表示,并将这n个向量放入集合T中;其次,计算出人脸数据集的平均脸φ;接着,对平均脸φ和人脸数据集中的每张图像计算差值;然后,找到n个单位向量Uk,并计算出对应的特征值ak,从而完成对人脸数据集中的人脸进行特征化操作;最后,当需要识别新的人脸时,算法会寻找人脸差异,对要判别的人脸w和训练集中的某个人脸wk进行比较分析,求得两者间的欧几里得度量,并通过与阈值之间的关系来判别人脸是否为同一人。
2.2 车牌识别技术
车牌识别技术是一种能够从复杂背景中提取并准确识别车牌的技术。它通过车牌定位、字符分割、字符识别和字符校正等一系列步骤,将车辆牌号以字符的形式输出。这一技术的核心在于图像处理和模式识别。
在处理过程中,首先需要对车辆图像进行预处理,包括图像增强、去噪和边缘检测,以便于后续的处理。接着,利用特征提取和模式匹配的方法对车牌进行定位和分割,得到单个字符。最后,利用机器学习或深度学习模型对字符进行识别和校正,从而得到最终的车牌号码。
车牌定位是车牌识别的重要步骤之一,它通过在灰度图像上进行行列扫描或对彩色图像进行像素统计,来确定车牌的有效区域。目前,车牌定位主要有两种方法:一种是基于灰度值的车牌区域定位,另一种则是基于彩色图像的车牌区域定位。随着科技的进步,彩色图像定位车牌的方法因其依赖车牌本身的颜色属性,能够实现更精确的车牌定位,而成为研究的热门方向。
字符分割则是在图像中定位出车牌区域后,对该区域进行灰度化、二值化等图像处理,然后根据车牌字符的先验知识进行分割。目前常用的车牌字符分割方法包括模版匹配分割法、聚类分析法和垂直投影法。其中,模版匹配分割法通过设计字符宽度和字符间隔宽度的模板,在车牌区域内滑动并计算像素值之和的比率,当比率取得极小值时,判定当前模板的位置为字符的分割点。这种方法依靠车牌字符的排列和间距等规则性特点,能够有效地减少由于车牌损坏或形变导致的字符分割错误。
字符识别是对车牌分割后得到的字符进行进一步处理的过程,包括缩放、特征提取等步骤。处理后的字符图像会通过模板匹配或神经网络等方法转换为计算机可以存储并处理的编码字符,最终以文本形式输出。在图像识别技术中,基于模板匹配的方法是最早被研究的方法之一,其优势在于算法的简洁性。这种方法将分割后的字符与预先构建的模板库进行比较,通过计算并量化它们的相似度来进行匹配。最终,选择模板库中与输入字符最匹配(或相似度最高)的字符作为输出结果。
对于车牌识别而言,构建模板库是首要步骤,这个库应包含汉字(如各省的简称京、苏、鄂等)、字母和数字(0-9)。接下来,需要明确模板与样本之间的相似度量化标准。在计算相似度时,S代表了待测样本和模板之间的相似性度量值,I代表了待测样本,而T则代表了模板。通过比较S值,可以选择出与输入字符最匹配的模板作为识别结果。
三、智能小区门禁系统设计
3.1 系统设计方案
本设计旨在实现小区门禁的人脸识别和车牌识别功能,系统总体设计框图如图3-1所示。为实现这一目标,我们选用了Maix Bit K210开发板,该开发板自带摄像头和2.4寸LCD屏幕。摄像头用于采集信息,而LCD屏幕则用于显示相关信息。K210芯片负责处理及识别相关图像。此外,K210开发板与控制模块STM32单片机引脚相连,进行串口通信。通过K210与STM32的串口通信,STM32可以控制舵机SG90的开关,从而实现门禁的开关控制。
图 3-1 系统设计总体框图
3.2 系统设计目标
本系统设计实现了人员和车牌的注册功能,注册信息会被安全地存储在SD卡中。当已注册的人员进行人脸识别时,系统会进行识别,若识别成功,舵机将会转动以允许通行。相反,如果未注册的人员尝试进行人脸识别,系统会识别失败,舵机则不会转动,从而阻止未注册人员的进入。同样地,对于车牌识别,已注册的车牌识别成功后,舵机也会转动以允许车辆通行;而未注册的车牌识别失败时,舵机同样不会转动,确保只有已注册的车辆才能进入。这样的设计既保证了安全性,又提供了便捷的通行体验。
3.3 智能小区门禁系统硬件设计
3.3.1 控制模块设计
本设计的控制模块核心功能是与K210进行串口通信,并根据K210的识别结果来控制舵机的动作。我们选择了STM32F103C8T6作为主控模块,主要基于以下两点原因:
首先,STM32内部配备了锁相环(PLL)和强大的时钟系统,这一特性能够确保在复杂的通信和任务处理过程中,系统能够保持高度的同步性,从而提高整体的稳定性和可靠性。
其次,STM32集成了丰富多样的内置外设,如USART、I2C、SPI、USB、CAN、ADC、定时器等,这些外设支持多种通讯协议,为开发者提供了极大的灵活性和便利性。这意味着我们可以轻松地实现与K210的串口通信,并方便地扩展其他功能,如与其他设备的互联或数据采集等。因此,STM32F103C8T6作为主控芯片,是本设计的理想选择。
第三点,考虑到在学校实验室及相关课程上已经学习过STM32的相关知识,团队成员对其较为熟悉,容易上手。同时,与其他类型的单片机相比,STM32F103C8T6的价格更为亲民,并且其提供的功能完全满足本次设计的需求。
综上所述,基于硬件的性能和价格因素的综合考量,本设计最终选择了STM32F103C8T6单片机作为控制模块。
至于本次设计中STM32F103C8T6单片机所使用的引脚及其具体用处,已详细列出在表3-1中。
表 3-1 STM32F103C8T6 实物图片
图 3-2 STM32F103C8T6 实物图片
图 3-3 STM32F103C8T6 硬件图解
图 3-4 STM32F103C8T6 引脚图
3.3.2 人脸识别模块和车牌识别模块设计
在选择实现人脸识别和车牌识别的硬件时,我们考虑了多种因素。目前,K210系列开发板和树莓派开发板是应用较为广泛的两种选择。K210芯片专为机器学习任务优化,如卷积神经网络(CNN)和循环神经网络(RNN)等,而树莓派的性能则因型号不同而有所差异,但通常足以应对通用计算任务和轻量级的AI任务。
两者在嵌入式系统和物联网项目中都有广泛应用,且都拥有活跃的开发和爱好者社区,提供了丰富的文档、教程和支持。同时,它们都支持外设扩展,可以通过GPIO等接口与外部设备进行连接和通信。
然而,在本设计中,我们需要进行图像和视频处理,以完成人脸识别和车牌识别功能。考虑到硬件的性能和价格因素,我们最终选择了Maix Bit K210开发板。这款开发板自带摄像头和LED屏幕,还配备了SD卡进行数据存储,非常适合完成本课题的人脸识别和车牌识别相关设计要求。
此外,Maix Bit K210开发板还在MaixHub上提供了丰富的相关模型,并且相关代码完全开源。更重要的是,它带有专门的神经网络处理器(KPU),能够高效地运行卷积神经网络(CNN)等AI算法,这使得它在处理人脸识别和车牌识别这类需要图像处理的技术时表现出色。因此,我们选择Maix Bit K210开发板作为本设计的核心硬件。
本设计中,我们使用了2.4英寸的LCD屏幕,通过排线与底板的拓展显示端口相连接。这块屏幕的主要功能是实时显示采集到的人脸与车牌信息,为用户提供直观的视觉反馈。为了确保采集到的图像清晰度高,我们选用了具有可调焦功能的OV5642摄像机模块来捕捉图像。
在硬件连接方面,我们将主板的第6脚位和第7脚位分别设置为串口通信所需的串行接收(RXD)和串行发送(TXD)引脚。这两个引脚与STM32的串行接收引脚RX和串行发送引脚TX相连接,从而实现了K210与STM32之间的串口通信。通过这种通信方式,K210可以将处理分析的结果数据发送到STM32上,并接收其返回的应答信号和配置指令。最终,STM32会根据识别的成功与否来控制舵机的动作。
图 3-5 Maix Bit K210 开发板
图 3-6 K210 原理图片
3.3.3 门禁模块设计
本设计是用 SG90 舵机充当小区门禁的栏杆,舵机是一种位置(角度)伺服的驱动 器,适用于那些需要角度不断变化并可以保持的控制系统,非常适合模拟小区的门锁 栏杆。 SG90 舵机自带杜邦线接口,只需与单片机相关引脚相连接,利用单片机发送脉冲 宽度调制信号( PWM 信号)就可以对其进行控制。本设计是将其分别与 STM32 单片机 的 PB6 和 PB7 相连,进而控制舵机。
图 3-7 SG90 舵机实物图
图 3-8 SG90 舵机原理图
图 3-9 智能小区门禁系统的电路图
四、智能小区门禁系统软件设计
4.1 软件总体设计
智能小区门禁系统运行流程如图 4-1 所示:
图 4-1 系统运行流程图
当将硬件模块的引脚相互连接,连接电源,系统就可以开始运行,首先车牌和人脸 进行注册,将相关信息存入 SD 卡,然后对人和车进行判断,如果是人就需要走人行道, 进行人脸识别,利用串口通信将识别结果与 STM32 进行通信,进而控制舵机开或关;
如果是车需要走车行道,进行车牌识别,利用串口通信将识别结果与STM32进行通信, 进而控制舵机开或关。 首先需要对进行初始化和串口设置,将 PA9、PA10 与串口 1(车牌识别)相连, 其中 PA9(30 引脚)为串行发送引脚 TXD,PA10(31 引脚)为串行接收引脚 RXD。将 PA2、PA3 与串口 2(人脸识别)相连,其中 PA2(12 引脚)为串行发送引脚 TXD,PA3(13 引脚)为串行接收引脚 RXD。
图 4-2 运行代码
图 4-3 运行代码
对人脸和车牌进行注册,利用按键对系统进行注册,采集相关的人脸和车牌注册 信息,将信息特征值存入 SD 卡,方便后面人脸识别和车牌识别进行特征值进行比较。
根据 K210 串口通信发送的字符,对舵机进行控制。当 K210 识别成功,则发送字 符串“match”给 STM32,控制舵机转动。当识别不成功,则会发送“error”
4.2 人脸识别软件设计
首先需要初始化和串口设置,引入相应模型到 SD 卡,提取的 3 个模型分别是:人 脸检测模型、人脸关键点检测模型、人脸特征提取模型。
对摄像头和 LCD 屏幕进行设置,其中 lcd.rotation(2)表示图像顺时针旋转 180°
对人脸信息进行注册,初始化 YOLO V2 这个模型网格优化,找到检测的人脸眼睛 嘴巴鼻子并将其裁成 128x128,利用特征值提取模型提取出人脸特征值。
提取到的特征值保存到 SD 卡里面,然后根据摄像头拍摄图片与 SD 卡里面的图像 的特征值进行比较,利用基于几何特征的方法将待检测人脸与特征脸进行映射,对比 待检测人脸与特征脸的空间位置,输出待检测人脸的匹配度。在图像里面找 5 个关键 点(左眼位置、右眼位置、鼻子位置、左嘴角位置和右嘴角位置),利用模型量化处理, 得到特征值。获取特征值相似性分数,按最大分数返回该人脸所对应的索引信息及相 似度并在屏幕中显示相关的识别结果,然后将识别的结果以串口通信的方式发送到 STM32,进而根据结果控制舵机。
图 4-4 人脸识别流程图
4.3 车牌识别软件设计
首先也是进行初始化设置,引入相应模型到 SD 卡,提取的模型分别是:车牌检测。 车牌识别。对摄像头和屏幕进行设置,对车牌图像进行处理,然后根据模型对车牌进行 点位,分割,识别。利用车牌的几何特征对进行分割,然后跟 SD 卡里面的图像的特征 值进行比较,利用模型量化处理,得到特征值。获取特征值相似性分数,按最大分数返 回该人脸所对应的索引信息及相似度并在屏幕中显示相关的识别结果,然后将识别的 结果以串口通信的方式发送到 STM32,进而根据结果控制舵机。
图 4-5 车牌识别流程图
五、智能小区门禁系统功能测试
本设计的开发软件是 Keil Uvision5 MDK 版本开发软件和 MaixPy IDE 开发软件。 在 K210 使用前需要用 kflash_gui 对其进行固件烧录,否则相关功能将无法正常实现。
本设计硬件实物总共分为四个部分,第一部分,人脸识别模块,用来实现人脸识别 功能。第二部分,车牌识别模块,用来进行车牌检测。第三部分为 STM32 控制模块, 最后一部分为舵机,用来模拟小区门禁门禁闸杆。总体实物图,如图 5-2 所示:
5.1 功能测试
5.1.1 人脸识别
第一步人脸注册,连接好电源,打开人脸识别的 K210,进行人脸注册,把人脸注 册的信息保存到 SD 卡里。对图 5-3 进行注册,图 5-4 不进行注册,如果注册成功, LCD 屏幕上会出现“Register OK”,如图 5-5 所示。
图 5-3 注册人脸
图 5-4 未注册人脸
图 5-5 人脸注册成功
第二步人脸识别,对已注册和未注册人脸进行识别。对已注册人脸识别成功,舵机 转动。对未注册人脸识别失败,舵机不转动。识别成功 LCD 屏幕上显示绿色标识,识 别失败为红色标识。
图 5-6 原始舵机状态
图 5-7 人脸识别成功舵机转动(左)人脸识别失败舵机不转动(右)
5.1.2 车牌识别
第一步车牌注册,连接好电源,打开车牌识别 K210,进行车牌注册。如果注册成功, LCD 屏幕上会出现“Register OK”
图 5-8 车牌注册成功
第二部车牌识别,对已注册和未注册车牌进行识别。对已注册车牌识别成功,舵机 转动。对未注册车牌识别失败,舵机不转动。识别成功 LCD 屏幕上显示紫色标识,识 别失败为蓝色标识。
图 5-9 原始舵机状态
图 5-10 车牌识别成功舵机转动(右)车牌识别失败舵机不转动(左)
六、总结
该智能门禁系统的设计与实现巧妙地融合了嵌入式技术和K210 AI智能系列芯片,通过K210与STM32之间的串口通信,实现了人脸识别和车牌识别的双重功能,进而对门禁进行智能控制,确保了小区人员进出的高效性与安全性。这一系统创新地将面部识别技术、车牌识别技术与嵌入式技术相结合,应用于小区门禁系统中,充分发挥了各项技术的优势,顺应了当前智能化的发展潮流,具有重要的应用价值和实际意义。
本设计主要完成了两项核心任务:第一项是人脸识别功能的实现,通过采用面部识别认证技术,更有效地确保了进出人员的准确性,有效杜绝了外来人员的随意进出,大大提升了小区的安全性。第二项是车牌识别功能的实现,该功能不仅方便了小区内车辆的进出管理,而且在应急车辆需要进入小区时,门禁系统会自动打开,从而避免了因门禁问题而导致的救援超时情况,确保了小区的应急响应能力。