基于SPCA563B芯片的图象识别系统设计_第1页
基于SPCA563B芯片的图象识别系统设计_第2页
基于SPCA563B芯片的图象识别系统设计_第3页
基于SPCA563B芯片的图象识别系统设计_第4页
基于SPCA563B芯片的图象识别系统设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于SPCA563B芯片的图象识别系统设计作者:上海交通大学李文昊来源:单片机与嵌入式系统应用点击数:983更新时间:2008-6-18您可以添加到网摘让更多人关注此文章:单片机SPCA563B是凌阳科技公司推出的一颗用于图象识别领域的IC,不仅具有一般单片机的控制功能,而且具有图象识别与处理能力,本图象识别系统就是以它为核心进行数据处理与控制,该系统已实现的功能有:物体颜色和形状识别,字符识别以及手势识别等,利用这些识别的结果,可以开发游戏、趣味教学、智能玩具、文字输入以及智能识别等应用系统。本文通过介绍整个系统以及在整个系统上实现的简单的手势识别,使大家更好地了解此系统在图象识别和文字识别

2、方面的强大功能和易用性。1系统硬件架构如图1所示,图象识别硬件系统主要由SPCA563B单片机、USB控制器、图像传感器、存储器控制器和语音输出控制器等组成。器ffi1團牌识别礎件杀銃權架IEFlash中央捽制爲荷储棒押制密内嵌内嵌SRAM0ROMUSB怆昭器劇色簡产*处理囂F1.1SPCA563B单片机SPCA563B单片机的硬件特征如下:提供320 x320的8位CMOS图像传感器接口,具有自动白平衡和获得参数控制功能,具有图像颜色校正和图像Gamma校正功能,具有7种颜色过滤功能,具有良好的减小噪声和滤波器,能够在一张图片中检测到21个目标物体的大小和位置,并将其结果存放于嵌入在CPU内

3、部的RAM中;16位“inSPCPU内核,内嵌1Kx16位的RAM和32Kx16位的ROM;具有可选择的外部RAM和ROM接口,具有USB1.1的接口;3.3V电压供电,128/64脚LQFP封装(其中128脚有可选择的并行接口,48脚则没有)。此系统采用48脚的LQFP封装,其硬件电路如图2所示。uaiolNmM_al貿弔TKSISDA紗LXl.hrlI包r-a言1IaLLi21MLivd;1121ili1?5513T一5TE2SPCA563D顷件电羅阳1.2USB控制器SPCA563B内嵌USB1.1的控制器,利用USB接口可以与PC进行通信,结合PC端软件来实现ISP及在线调试程序,此外

4、可以利用USB来为系统供电,其电路如图3所示。DG!W1.3图像传感器本系统采用SPCA3010ACMOS图像传感器,图像输出为QVGA(320 x240)大小的RGB格式,SPCA563B通过I2S接口来控制SPCA3010ACMOS图像传感器,此CMOS图像传感器支持standby省电模式,其电路如图4所示。GNIDixxnTiHDliCffDACXI%OXEEsEI2心HIE55S:IDSS:fVbCikI聲I滇tV0二dsTmxTpAtj3Dp-OAVlJ|JlVDRLWEVAUOTmndSTA.MDHYcsvniKyWGFtl出口ITKGMTT护幻Aftlkl-.Tis5二吕币1?1

5、审S5rEXmjy總;勺5(玄Jef営IW戡平5Z.1IHEill;AGIDVAAAGM)1.4存储器控制器外扩SPR4096AFlash存储器,主要用来存储系统需要的语音数据,SPR4096AFlash具有如下特征:512Kx8位的存储空间;内嵌4Kx8位的SRAM;外部CPU可以通过串行接口或8位并行接口来访问Flash/SRAM;I/O接口的电压范围为2.25-3.6V,并支持standby的省电模式,在数据存储量比较小的情况下用SPR4096A可以大大降低系统的成本,电路如图5所示。SilA制列DmVSSIMOEJEXF莊iSCKVDDPATCHMCUMCIVDDSDAVSSQCFGA

6、DOCF1ADIC;2AD2CF3ATCF4A1WCF5Al5C76AD6CF7AD7VDDVDDQVPPductSlRtA2系统软件设计本图象识别系统的识别功能主要通过软件系统来实现,为了提高程序的可移植性。为将来该系统功能扩展预留空间,整个软件系统采用分模块、分层次的方法编写程序,采用汇编语言实现对寄存器的读/写以及对中断的控制,并为上层的开发提供灵活的接口,上层采用C语言编写,通过调用底层函数来间接对硬件资源进行操作,这样编写程序使整个系统结构清晰,程序可移植性和可扩展性增强,而且占用硬件资源少,为系统功能的扩展和进一步开发预留充分的空间。整个软件系统由主程序,图象识别功能模块子程序、中

7、断服务子程序和语音输出子程序等组成,主程序负责整个系统的协调和控制工作,通过调用不同的子程序来实现不同的功能,主程序流程如图7所示。搀率和耗的边轴像素337主程胖液理闺为突出系统的特点,下面通过手势识别的实例来重点描述图象识别原理,手势识别包含两个步骤:手形的轮廓跟踪,提取其轮廓的相关数据,手势的识别,在上一步得到的数据的基础上进行分析判断而得到结果。2.1轮廓跟踪算法实现轮廓跟踪的目的是获得图像的外部轮廓特征(包括目标物体边缘点的坐标和方向),为图像的形状分析做准备,SPCA563B的DSP针对肤色有一系列的颜色处理,这样系统就可以方便图像转化为肤色与非肤色的二值图像,通过对暂存在SRAM中

8、的二值图像进行数据分析,来提取手形的边缘轮廓。轮廓跟踪算法步骤如下:1)按从上到下,从左到右的顺序扫描图像,寻找第一个非白象素作为边界起始点A0,记录A0点的坐标(A0,x,A0,y)。A0是具有最小行和列值的边界点,再定义一个扫描方向变量dir。该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,其初始化取值为A0,dir=7;扫描方向定义如图8所示。假设当前的坐标为(x,y,则其8个邻域坐标如下:方向0:(x+1,y);方向1:(x+1,y-1);方向2:(x,y-1);方向3:(x-1,y-1);方向4:(x-1,y);方向5:(x-1,y+1);方向6:(x,y+1);方向7

9、:(x+1,y+1)。2)按逆时针方向搜索当前象素的3x3的邻域,其起始搜索方向设定如下:若An-1,dir为奇数,则取(An-1,dir+7)mod8;若An-1,dir为偶数,则取(An-1,dir+6)mod&在3x3邻域中搜索到的第一个与当前象素相同的象素便为新的边界点An,同时更新记录从上一点搜索到边界点An的方向变量An.dir,记录新的边界点的坐标(An,x,An,y)。3)如果边界点An等于第一个边界点A0,即(An,x=A0,x&An,y=AO,y)。停止搜索,结果跟踪,否则重复步骤2。由边界点A0、A1、A2、An构成的边界便为要跟踪的边界。2.2手势识别算法实现我们的主要

10、目的是找出伸出手指的个数,开使用行扫描的方法通过行内从0-1或1-0黑白象素变化的次数来确定伸出手指的个数,但这种算法对于倾斜一定角度的手指数目判断存在一定问题,因此转而采用提取指尖点算法。提取指尖点的方法着眼于从手势轮廓中搜索出指尖点,一个指尖点对应于一根手指,最后根据得到指尖点的个数来判定手指数目,判断是不是指尖;分析手的形状,手指的两边基本上是平行的,一直按逆时针方向前进,每经过一次指尖,手形轮廓的走向发生反向的变化,由于手形轮廓的边缘存在一定的毛刺,因此可以用多点方向的平均来减小毛刺的影响,这里取36点方向的平均,表示为Average_diri。是否经过指尖的判断条件1:126=|Av

11、erage_diri-1-Average_diri+1|=162,(说明:两点方向相反,其方向值差4,3.5x36=126,4.5x36=162。)再分析手的形状,两手指之间边缘轮廓的走向也满足判断条件1,故必须添加判断条件,如图10所示,当沿着一个方向搜索手的边缘轮廓时,经过指尖走向一定与手指间缺口走向相反,因此,必须假设判定条件2:Is_FingerVertex(dir0,dir1,dir2);这个函数是用来通过连续3点的方向来判断这3点是否为逆时针走向,由于是沿着逆时针方向搜索边缘轮廓的,故在判定条件1成立的前提下加上ls_FingerVertex(Average_diri-1,Average_diri,Average_diri+1就可以判断是否为指尖,从而判定手指的数目,顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论