基于DSP/BIOS的门禁系统设计与实现
扫描二维码
随时随地手机看文章
引言
在数字化网络化飞速发展的今天,门禁技术也得到了迅猛的发展。生物认证技术由于其具有高可靠性、安全性、方便性等特点,逐渐受到社会的瞩目。传统的人脸图像识别系统依赖于较大型设备,速度较慢、实时性较差、价格昂贵。随着数字信号处理器DSP的飞速发展,以DSP为核心的硬件系统同样可以用来进行图像处理。随着DSP的运算速度和运算精度不断提高,片内的存储容量不断加大,系统功能、数据处理能力以及与外部设备的通信功能不断增强,人们完全可以脱离PC机开发出基于DSP的图像处理系统。
本文利用DSP和实时嵌入式操作系统DSP/BIOS开发了基于人脸识别技术的门禁系统。系统利用摄像头获取人脸图像,利用DSP完成人脸图像的处理和特征提取以及识别,利用液晶显示器完成识别信息的显示,并通过串口与外部通信。
1 DSP/BIOS简介
DSP/BIOS是一种简易的实时嵌入式操作系统,主要面向实时调度与同步、主机与目标系统通讯以及实时监测等应用,具有实时操作系统的诸多功能,如任务的调度管理、任务问的同步和通讯、内存管理、实时时钟管理、中断服务管理、外设驱动程序管理等。DSP/BIOS由三个部分组成:DSP/BIOS实时内核与API、DSP/BIOS分析工具以及DSP~IOS配置工具” 。
1.1 DSP/BIOS中的线程
DSP~IOS内核通过在单一处理器上允许高优先级线程抢先低优先级线程的方式支持不同优先级的多种线程,并负责处理各线程之间的各种相互作用,包括通讯、同步等。DSP/BIOS支持四种线程:硬件中断(HWI)、软件中断(SWI)、任务(TSK)、后台线程(IDL)。它们的优先级依次从高到低。DSP~IOS用HWI模块来管理硬件中断,为DSP中的每个硬件中断配置了中断服务程序(ISR)。硬件中断用来处理时间要求苛刻的关键任务,如系统时钟等。软件中断通过SWI模块管理,用于处理一些对实时性要求较低的任务。任务通过TSK模块管理,后台线程的优先级最低,用于没有时间限制的处理,只有在其它线程不运行时,它才运行。
任务管理与软件中断的区别是,每个任务都有自己的堆栈,任务问支持同步和通讯,一个任务可以挂起以等待某一资源的释放,因此,特别适用于门禁系统的应用。本文中用到了两个任务:tskvideocapture与tskloopback,其中tskvideocapture是视频获取任务,tskloopback是视频处理和显示任务。TASK任务级的通讯主要使用SCOM(Synchronized COMmunication module)消息队列。SCOM消息是用户定义的一个数据结构,用于task之间交换信息。
1.2 DSP/BIOS程序开发
DSP/BIOS支持交互式的应用程序开发模式,开发人员可以用DSP/BIOS先为应用程序生成一个框架,在使用实际的算法之前给程序加上一个仿真的运算负荷来测试程序,看是否满足时序要求。开发步骤如下:① 用配置工具建立应用程序要用到的对象;②保存配置文件,系统会生成编泽和链接应用程序时需的库文件;③为应用程序编写一个框架,可以使用C、c++、汇编语言;④在CCS环境下编译并链接程序;⑤使用仿真器和DSP/BIOS分析工具来测试应用程序;⑥ 重复步骤① 到⑤ 直到程序运行正确;⑦硬件开发好后,修改配置文件以支持硬件,并进行测试。
1.3 CDB配置文件
CDB文件包含了以下几个部分内容:系统部分(System)、实时分析部分(Instrumentation)、调度部分(Scheduling)、同步部分(Synchronization)、输入输出部分(Input/Output)、芯片支持库部分(CSL)。DSP/BIOS配置工具采用可视化界面,如图l所示。
图 lDSP~IOS配置界面
具体地说,CDB文件的主要配置内容有以下几部分。系统部分:Global Settings体现系统所用处理器型号及其各种参数特性;MEM体现系统的程序和代码的放置位置以及占用空间的大小。调度部分:TSK—Task Manager主要定义用户定义任务及系统后台线程所调用的子函数,任务的优先级以及其存放位置和堆栈大小的设置情况。输入输出部分:定义视频各个输入输出端口如何实现与片级支持库CSL的链接,从而实现微驱动和参数传递。
2 门禁系统的硬件结构
本系统基于TI公司的TMS320DM642设计硬件平台,因为DM642有丰富的外部设备接口,完全能够满足门禁系统的需要。DM642通过外部存储器接口(EMIF)访问片外存储器SDRAM和FLASH。SDRAM为4M x 64位的同步动态存储器接口,用于存储程序、数据和图像处理中间结果,配置在EMIF接口的CE0空间;FL ASH为4M x8位的异步静态存储器接口,用来存储人脸的模板特征、固化程序、导入装载和配置信息,配置在DM642的EMIF的CE1子空间。此外,CE1子空问还分配给状态/控制寄存器、UART等资源使用。因此,Flash的最大的可寻址范围为512K x 8位。为了访问到Flash的所有地址空间,本系统采用分页技术来实现对Flash的访问,即将整个4M x 8位的Flash分成8个512×8位的页,而页地址则由位于CPLD中的页地址寄存器提供。选用TVP5150视频解码芯片,通过I2C可编程总线进行控制,采用8位并行总线实现数据的传输。
系统将模拟PAL视频信号转换为BT.656格式的YCbCr(4:2:2)模式的数字视频信号,选用SAA7121视频编码芯片,将BT.656格式的数字视频信号转换为PAL格式的视频输出。选用TL16C752B实现二路异步串口,每路异步串口占用8个8位存储单元。本系统可通过网络接口实现功能扩展。门禁系统的硬件结构如图2所示。
图 2门禁系统的硬件结构
加电后,系统完成初始化,存储在FLASH中的程序和数据被加载到SDRAM中。在无人进门时,系统进行视频的采集和回放。当有人要进门时,系统通过串口给DSP一个中断信号,TVP5150视频解码芯片将对摄像头采集的视频数据进行解码,实现A/D转换,并给出LLC2(采集时钟)、VREF(场同步参考信号)、HREF(行同步参考信号)等采集参考控制信号,并将解码得到的YCbCr(4:2:2)模式的人脸图像存储在SDRAM中。之后,DSP对存储在SDRAM中的图像进行人脸检测和特征提取,将提取的特征与存储在FLASH中的模板数据作对比,最后将识别结果显示在液晶屏上,并通过多通道缓冲串口给门锁控制器发送开门信号或报警信号。
3 基于DSP/B10S的软件程序设计实现
本系统基于DSP/BIOS架构开发实现,系统结构分为三部分:输入控制部分、视频处理部分和输出部分。输入控制部分通过串口中断来响应外部的输入;视频处理部分主要完成视频流中图像的人脸检测、特征提取和人脸识别并将结果输出;输出部分主要是完成识别结果的显示并通过串口向门锁控制器发送信号。整个DSP上的软件由二个任务线程组成:tskvideo—capture线程从视频输入端口读取数据;tskloopback线程完成视频流中图像的处理并将结果输出。二者之间靠SCOM消息队列进行同步和消息传递 。系统流程如图3所示。
当系统上电启动后,首先对系统进行初始化。初始化完成后,系统进行视频图像的采集和回放,GIO/FVID(项层类驱动)控制TVP5150通过EDMA将视频数据YCbCr(4:2:2)传递到视频输入任务请求的缓冲I~capFrameBuf中。当系统接收到串El中断信号后,视频处理任务通过SCOM通讯从capFrameBuf中将数据取走,进行人脸检测、特征提取和人脸识别等一系列操作,并将结果输出。
本系统软件通过在YCbCr色彩空间中建立人脸肤色模型对人脸进行粗检测。实验发现当Cb取值范围为[90,135],Cr取值范围为[120,168]时,系统对肤色检测效果最好。人脸粗检测后再通过数学形态学中的开运算去除孤立的小点、毛刺和小桥(即连通两块区域的小点),最后通过对肤色中连通域的标记和统计去除非人脸区域,得到人脸图像 。在提取人脸特征之前对人脸图像进行灰度拉伸和归一化,使用离散余弦变换提取人脸特征,提取的人脸特征可以进行两种操作:作为模板存入人脸特征库或进行人脸识别。系统通过计算人脸特征,再与模板库中的人脸特征进行相似度比对和识别。
4 结束语
本文将DM642芯片结合视频编解码芯片和实时嵌入式操作系统DSP/BIOS应用于门禁系统,实现了完全脱离PC机的图像采集、处理和结果显示系统。算法运算速度快,实时性高。系统可以通过串口或网络接口实现人机交互,并具有良好的可扩展性和独立性。