基于FPGA的图像识别与语音播报系统第一部分设计概述/DesignIntroduction本设计实现了图像识别与智能语音播报的功能。能实时的识别出当前图像,并进行智能的播报。本设计主要涉及到图像采集,图像处理与识别,语音技术等一系列当前热点技术,并将它们有机结合,构建出了一个实用性很强的系统。主要可以应用于机场,安检,监控等需要图像处理技术的领域中。同时利用智能语音播报系统将图像处理结果进行实时的播报,极大的增强了人机交互界面的友好性。另外,本设计根据图像处理以及语音模块的控制等特点,采用了FPGA与单片机相组合的数字系统。即利用了FPGA的高速处理能力(主要处理图像信号),同时又采用了单片机的强大控制驱动能力(主要控制智能语音播报系统),同时又借助于高效的数据传输协议,搭建出了一个集高速的数据处理能力与强大的控制能力于一身的多处理器系统。该架构在现实的复杂数字系统中也有较多的应用。具有一定的实用性。第二部分系统组成及功能说明/SystemConstruction&FunctionDescription整个系统由摄像头,前端FPGA,核心FPGA,语音MPU,VGA显示器构成。系统通过摄像头读取图像信息,由前端FPGA进行图像初步降噪二值化处理,仅保留有效信息后由前端FPGA存储,由后端FPGA进行有效图像区域的提取、压缩、特征对比过程,完成图像识别的功能,并利用语音MCU播报被识别的图像1、可以手动设置图像的“亮度”,以适应不同光照条件下的图像采集。2、可以切换自动/手动模式。自动模式下系统将连续采集摄像头数据。手动模式下,单击按键进行一次图像识别。3.语音模块的详细框图如下:在本系统中,当前端图像识别完成后,按下播报按钮后,语音模块能将当前识别出的图像播报出来。交互说明:1、前端FPGA1、4键控制摄像头二值化灰度阈值,2键使阈值恢复为128。A键切换自动和手动模式,自动模式下系统不断采集新图像进行识别,手动模式下采集暂停,需要按下F键才采集一帧。2、核心FPGAA.数码管显示当前被识别的图像序号及成功识别次数。B.LED显示前端FPGA与后端通信情况。3.语音播报系统主要采用单片机来驱动语音模块。在前端图像识别完成后,当按下语音播报按钮后,单品机将要播报的内容传给语音模块,进行播报。2、4、VGA图像VGA显示各区域意义解释工作流程:3、能够提取出有效图像区域时的时序流程第三部分完成情况及性能参数/FinalDesign&PerformanceParameters1、能进行图像识别,识别0~9十个数字,少量字母,部分形状如方形、圆形、X形。2、以VGA显示摄像头采集的数据,能标出有效图像的区域;后端数码管实时显示识别结果。识别快速准确。3、系统可识别图像种类非常容易添加和更改,具有良好的编程可拓展性。4、可以手动设置图像的“亮度”,能适应不同光照条件下的图像采集。5、可以切换自动/手动模式,手动模式下功耗低。6、可以语音播报被识别的图像,声音洪亮清晰。可识别内容举例:第四部分总结/Conclusions经过几个星期的努力,我们小组终于将作品设计完成。经过实际测试后,该系统基本完成了当初的设计任务,即当给出不同的图像时,前端摄像头能采集图像,自动识别,并进行语音播报。本系统中图像识别速度快,准确率较高,语音播报模块声音基本自然,没有明显播报的错误。当然,此次设计还有一些不足之处。比如准确率还没有达到99%以上,对于一些奇怪的图像无法准确的检测出来,语音播报模块的声音在自然度上还需进一步的提升等问题。可以进一步发挥提高的部分1.优化识别流程,让识别更快速,VGA显示的抖动更小。2.设置临时模板,可以不再次编程而通过摄像头输入一个模板。3.语音模块声音更加的自然流畅,能使用不同的声音比如男声,女声以及方言等播报。组员设计体会不同的处理器有不同的特点,比如本系统中使用的FPGA与单片机就是两个典型的处理器。FPGA具有强大的数据吞吐与处理能力,但是它在控制方面不太擅长,单片机有强大的控制能力,但是在数据处理上又显得力不从心。因此,如果能将其二者合二为一,则构建出来的系统就具有很强大的性能力。但是,如何有效的进行两类处理器之间的通信则是一个非常关键的部分。一个高效的数据传输协议不紧能使两个处理器之间数据传输误差减小,还能保持整个系统合理快速的运行。图像处理技术非常复杂,这个系统中每一个步骤——去除多余图像信息、图像降噪、提取目标区域、压缩目标区域、图像识别——都选择了相对简单的算法进行。其实这每一个步骤都值得深入研究。参加此次竞赛对自己的查阅资料能力、设计能力、编程能力、动手实践能力、团队协作能力4、以及知识面都有极大的提高。看到最终实现的成果得到的是对自己,对团队的认可。基于人脸识别技术的智能安保系统第一部分设计概述/DesignIntroduction随着信息技术及计算机网络的发展,信息安全显示出前所未有的重要性。身份鉴定是保证信息安全的必要部分,在很多领域都需要身份鉴定来达到保护信息安全的作用。传统的身份认证技术主要是依靠证件、密码和口令的认证方式,在现代科技快速发展的今天,这些都很容易丢失、破解或伪造,严重威胁到个人或公共财产信息安全。近年来,以人脸、虹膜、视网膜、指纹、声音、基因等人的生物特征作为识别手段的生物特征识别技术渐渐发挥出了很好的作用,这类识别属于模式识别范畴,相比传统的识别方式更安全、稳定和方便。其中,人脸识别因具有友好、方便、直接等优点成为一个热门研究领域。本系统就决定采用人脸识别+密码输入的双保险方式来构建安保系统。第二部分系统组成及功能说明/SystemConstruction&FunctionDescription1硬件设计1.1ov7620摄像头本系统是图像采集与处理系统,所以摄像头是非常关键的一个部分。文采用了Omnivision公司推出的CMOS图像传感器OV7620。OV7620结合CMOS技术,采用数字接口,低功率(120mW),单电源供电(5V),为实现更高质量的视频图像应用提供了一种简单的解决方法。0V7620的功能特点包括:单芯片1/3”镜头,最大664×492像素分辨;IzC控制,标准SCCB接口;开窗功能,局部图像输出;自动曝光控制、自动白平衡、自动增益控制、自动亮度控制;图像质量控制,包括颜色饱和度、锐度、伽马校正等功能。图一:ov7620摄像头本系统选取OV7620作为采集模块的原因主要是OV7620图像传感器是CMOS彩色/黑白图像传感器,支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式,帧速率可达30fps,数据格式包括YUV、YCrCb、RGB三种,其中有我们作为看重的YUV模式,其中的Y代表着灰度。OV7620是八位灰度输出最黑的时候输出0,最白的时候输出255。这种特性对于图像的处理是非常有利的,因为对于灰度的处理方法是很多的。OV7620接口控制器分为SCCB总线控制器和OV7620采集控制器2部分。SCCB总线控制器用于实现符合SCCB总线协议的接口控制;OV7620采集控制器根据OV7620的视频同步信号实现图像数据采集。总线控制器的作用就是更改摄像头内部寄存器的数值,通过这样的配置来设置摄像头的工作模式。更改数值是通过SCCB协议来实现的,SCCB是类似I2C的串行总线协议,定义了串行数据线SDA和串行时钟线SCL,数据传输通过SDA、SCL2条线上电平的状态以及二者之间的相互配合来实现。其传输时序如图2所示。由图2可以看出,SCCB采用简单的三相写数据的方式,即在写寄存器的过程中先发送OV7620的ID地址,然后发送写数据的目地寄存器地址,最后发送要写入的数据。其中具体具体过程就是SCCB_SCL为高电平时,SCCB—SDA出现一个下降沿,此时传输启动。在启动条件满足后,SCCBSDA为稳定数据状态,SCCB—SCL产生一个正脉冲,将传送一位数据。当SCCB—SCL为高电平时,SCCB—SDA出现一个上升沿,传输停止。通过SCCB协议配置好摄像头之后,就可以进行采集控制了。OV7620多种信号输出。对于我们的系__统,我们只关心其中场中断信号VSYN、行中断信号HREF、像素中断信号PCLK。他们的时序关系如图三所示:图三:三个中断信号的时序关系其中,VSYN的周期是16.64ms,高电平时间为换场时间,约80us;低电平时间内像素输出。我们在采集VSYN脉冲时,既可以采集上升沿,也可以采集下降沿,采集下降沿更准确些,这也是一场的开始。从VSYN的周期可以算出,1s/16.64ms=60帧,OV7620的帧率是60帧/s。HREF的周期63.6us,高电平时间为像素输出时间,约47us;低电平时间为换行时间,因此采集HREF一定要采集其上升沿,下降沿后的数据是无效的。从HREF的周期可以算出,16.64ms/63.6us≈261,除去期间的间隙时间,可以算出每场图像有240行。PCLK的周期是73ns,高电平输出像素,低电平像素无效。PCLK是一直输出的,因此一定要在触发VSYN并且触发HREF以后,再去捕捉PCLK才能捕捉到像素数据。从PCLK的周期可以算出,47us/73ns≈640,可以算出每行图像中有640个像素点。在之后的软件设计中主要就是通过对于这三个信号的使用来完成系统的功能。1.2VGA显示系统采集了图像,在一定的情况下是需要查看图像内容的,同时也方便对系统进行控制。本系统才有VGA显示屏进行显示。VGA协议主要由5个输入信号组成,亦是HSYNCSignal,VSYNCSignal,RGBSignal。说简单一点,HSYNCSignal是“列同步信号”,VSYNCSignal是“行同步信号”,RGBSignal是“红色-绿色-蓝色”颜色信号。VGA的扫描是固定的。一帧的屏幕是由“m行扫描”和“n列填充”组成。扫描的时序是通过行同步信号与列同步信号来控制的,同时扫描的频率与数据输出格式也是固定的。扫描时序图见图四,扫描频率标准见图五。图四:VGA时序图图五:VGA扫描频率标准本系统为了配合OV7620的模式特点,采用了640*480,每秒60帧的标准。于超凡;040110362图像处理原理与方式(软件设计)本系统的软件开发采用模块化的设计,一共分为四个模块:采集模块、存储模块、处理模块、显示模块。下面对这些模块进行一一介绍。2.1采集模块通过对OV7620寄存器的配置,摄像头的工作模式被设定为:输出像素分辨率:640×480;VGA模式、隔行扫描、16位YUV(取其8位Y输出)。采集的控制主要就是依托场同步信号(vclk)、行同步信号(hclk)以及像素同步信号(pclk)。所以模块首先要检测出vclk的下降沿,此时说明新的一帧的数据发送开始了,使能采集模块。然后开始检测hclk的上升沿,检测到上升沿后说明一行的采集开始了,并将行计数加1。然后开始检测pclk的下降沿,每来一个下降沿就说明一个像素的信号发送的过来,然后将此数据存入数组中,把像素计数加一。此时要检测一下行计数是不是已经到了640,如果是的话就要将行计数加一,像素计数归零。此时也要检测行计数,若行计数到了480,图六:数据采集流程图说明一帧的数据采集结束。流程图见图六。由于图像的数据量是非常大的,所以不可能也不必要一直采集,所以本系统也加上了定时模块,也就是说每隔若干帧才使能一次采集模块,这样可以减小存储模块的压力。2.2存储模块数据采集中是把每一行的数据暂存在一个数组里,但是如果480行都存入数组里,数据量会使一般的FPGA开发板难以承受,所以必须将数据暂存在ram中。在xilinx开发板配套的软件ISE中有着丰富的软核资源,其中就有很多块存储器。根据系统的需要,最终选取了其中单口RAM的IPCORE。图七就是单口ram的接线图。其中DINA是数据输入端,ADDRA是地址输入端,WE是写使能(本系统采用写优先模式),CLKA是RAM的时钟输入端。本系统的存储是这样设计的:没到一行的数据采集结束后,就会使WE信号变高,然后这一行的数据就存了进去,也就是6