首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Virtex5的婴幼儿智能监护助理(续)

基于Virtex5的婴幼儿智能监护助理(续)

首先来看一下表情识别,我们利用CMOS 的传感器采集视频信号,通过FPGA进行图像处理,一般可描述为给定一个静止人脸图像或者动态的人脸图像序列,利用已有的人脸表情数据库确定图像中的一个人或者多个人的面部表情,首先要检测人脸:即从各种不同的场景中检测出人脸的存在并确定其位置,这对于我们这个设计来说不需要太多的工作,因为婴儿的位置是不变的,我们只要对准就行了。,找到人脸后,我们就要进行面部表情特征提取:即确定表示检测出的人脸表情和数据库中的已有的人脸面部表情的描述方式。现在研究的方式比较多,通常的表示方式包括几何特征、代数特征、固定特征模板、云纹图、3D网格等。 在这里,我选择了一个比较简单的方法来做面部表情识别,是选择适当的人脸面部表情表示方式与匹配策略,就是将待识别的人脸面部表情和数据库中的已知人脸面部表情比较,得出相关信息。说到这里,我又讲到了模式识别的范围,这又是模式识别的东东。进行识别的方法又很多,我用了PCA分析的方法,这个处理起来实时性效果更好。首先我们要进行人脸图像预处理,主要包括几何归一化和灰度归一化等等。预处理完之后就是读入人脸库,读入每一个二维的人脸图像数据并转化为一维的向量,对于一个表情的人脸图像,选择一定数量的图像构成训练集,其余的构成测试集,假定图像的大小是w*h(w和h分别维图像的宽度和高度),用于训练的人脸个数是n1,测试的图像个数是n2,令m=w*h,则训练集m*n1是一个的矩阵,测试集是m*n2的矩阵。第幅人脸可以表示为:
接着就要计算每一类的均值,总均值和类间离散度矩阵。 再取类间离散度矩阵为KL变换生成矩阵,进行KL变换。 计算生成矩阵的特征值和特征向量,构造特征子空间。首先把特征值从大到小进行排序,同时,其对应的特征向量的顺序也作相应的调整。然后选取其中一部分构造特征子空间。 把训练图像和测试图像投影到上一步骤构造的特征子空间中。每一幅人脸图像投影到特征子空间以后,就对应于子空间中的一个点。同样,子空间中的任一点也对应 于一幅图像。把投影到子空间中的所有测试图像和训练图像进行比较,确定待识别的样本 的所属类别。采用(NNR)最近邻距离分类器进行识别。
语音采集和语音识别模块,我们利用话筒输入音频信号,通过FPGA对语音进行识别。通过语音采集,滤波,提取声学特征,建立声学模型,编写搜索算法等来实现自己的一套语音识别系统。自己开发语音识别系统,要对对输入的原始语音信号进行处理,滤出掉其中的不重要的信息以及背景噪声等,判定语音有效范围的开始和结束位置,并进行语音分帧以及预加重等处理工作。然后特征提取模块负责计算语音的声学参数,并进行特征的计算,以便提取出反映信号特征的关键特征参数,以降低维数以便于后续处理。语音识别系统常用的特征参数有幅度、能量、过零率、线性预测系数(LPC)、LPC倒谱系数(LPCC)、线谱对参数(LSP)、短时频谱、共振峰频率等。提取特征之后要进行相似性度量比较,将相似度最高的模式所属的类别作为识别的中间候选结果输出。之后还要对对上述得到的候选识别结果继续处理,得到最终的识别结果。采用一些比较成熟的软件开发包进行二次开发,省去从底层入手的繁琐,可以进行快速的语音软件开发。在linux下可以用的开发包有微软的IBM的ViaVoice,在Windows下可以用微软的Speech SDK,接口也比较简单,考虑到此系统运行的是linux操作系统,所以用ViaVoice比较方便。
(1)        网络传输模块,我们利用DE1开发平台外接拓展接口,实现网络传输模块。
(2)        人机交互模块:在得到FPGA 处理过的人脸识别信号及语音识别信号后,得到系统的命令后分别选择不同的反馈信号输出,输出不同的语音和视频信号。

软件设计框图:

我们的这个系统结合语音识别模块和人脸识别模块,并不是单一的识别实现,而是全方位的进行监控,充分利用FPGA的高速并行硬件实现的功能,提高其实时处理的能力,我们准备在两模块中采用FPGA的流水线操作和乒乓操作。同时连接到现在社会上无处不在的网络实现强大的远程控制功能,全方位的监控及实时的自我反馈调节,能够迅速的对婴儿的表现状况进行智能处理,而不需要其他人的调节加上

附件大小xitong.JPG51.68 KBsoft.JPG30.83 KB
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表