查看完整版本: 服务机器人的视觉系统设计

城市影子 2008-6-26 04:49 PM

服务机器人的视觉系统设计

[align=left][color=black][/color] [/align][align=left][color=black][/color] [/align][align=left][b][color=black]1         硬件部分设计[/color][/b][/align][align=left][color=black][/color] [/align][align=left][color=black]  图1为系统硬件电路的功能模块框图。[/color][/align][align=left][b][color=black][img=369,197]http://www.dzsc.com/data/uploadfile/2007924165329890.JPG[/img] [/color][/b][/align][align=left][color=black]1.1        图像采集[/color][/align][align=left][color=black]  视觉镜头把外部的图像信息成像在图像传感器的面阵单元上。目前流行的图像传感器有面阵CCD(Charged Coupled Device,电荷耦合器件)型和面阵CMOS两种。相比较CCD型的图像传感器,CMOS图像传感器的哟像素单元为每一个像素提供了放大器,只需一个单供电低逻辑电平电压,功耗只相当于CCD的十分之一。CMOS图像传感器内部集成了A/D转换部分,直接输出数字信号。基于这些因素,本系统采用了Omnivision公司推出的CMOS彩色图像传感器[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  [/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]的分辨力为640X480,能输出3种格式的8位数据:YCbCr4:2:2模式、RGB4:2:2模式和RGB原始数据模式。输出VGA格式最大可达到30fps(fps:每秒帧数)。能工作在逐行扫描下和隔行扫描下。[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]有主模式和从模式两种工作模式。在主模式下,同步信号和时钟不由外围设备控制。在从模式下,[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]的场同步信号VSYNC,行同步信号HREF以及系统的晶振频率XCLK均由外部设备控制。本系统采用的是主模式。[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]通过I2C总线配置片内寄存器,使其输出原始数据。系统上电复位后,由DSP芯片的I2C总线信号对CMOS寄存器初始化。然后[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]就按要求输出图像信号。包括行同步信号HREF,场同步信号VSYNC,像素时钟信号PCLK,数字图像信号。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]1.2        液晶显示[/color][/align][align=left][color=black]  为了很直观的看到视觉系统对人的识别和跟踪效果,采用了一片INNOLUX公司的PT035TN01液晶显示屏。为了不增加对DSP的负担,同时也为了实时看到对外界目标物体的跟踪效果,液晶显示的数据不经由DSP,直接通过传感器[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]输出的图像数据信号和CPLD控制时序来进行显示。PT035TN01是3.5英寸TFT格式的液晶,分辨力为320×3(RGB)×240,液晶IF1、IF2两输入控制脚对输入的数据格式进行选择:串行RGB格式、CCIR601格式、CCIR656格式。液晶的扫描模式有4种。本视觉系统采用的输入数据格式是CCIR601格式,扫描模式为由上到下和左到右的扫描模式。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  在CCIR601格式下,图像传感器输出的像素时钟PCLK通过CPLD二分频作为液晶的工作时钟,图像传感器输出的行同步信号HREF经过CPLD的处理后作为液晶的行同步信号HIS,这样,在CPLD控制下,图像传感器[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]输出的数据信号送入液晶中进行显示。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]1.3        时序控制[/color][/align][align=left][color=black]  [/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]输出的场同步信号VSYNC,行同步信号HREF以及像素时钟信号PCLK接至CPLD芯片,产生控制信号把[/color][url=http://www.qooic.com/detail-OV7635.html][color=black]OV7635[/color][/url][color=black]输出的数据信号存入FIFO帧存储器[/color][url=http://www.qooic.com/detail-AL422B.html][color=black]AL422B[/color][/url][color=black]中,以及产生液晶的时钟和行同步信号控制液晶的显示。CPLD采用了ALTERA公司的[/color][url=http://www.qooic.com/detail-EPM7064.html][color=black]EPM7064[/color][/url][color=black]芯片。在CPLD中完成了对FIFO的写控制、通知DSP读信号、液晶的时钟信号的产生等功能。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  CPLD接收场同步信号VSYNC,此信号的下降沿表示图像传感器输出一帧的开始,此时CPLD产生WRST负脉冲复位FIFO的写指针。场同步信号VSYNC下降沿后,判断行同步信号HREF的上升沿到来,接着利用像素时钟信号PCLK作为写时钟WCK将图像数据直接存储到FIFO中,当存到一定的数后,就及时发信号给DSP,以便DSP读取数据,本系统采用的是一个中断INT0来通知DSP。此时DSP可以读数据也可以不读,视处理的速度来定。读数据时,可利用RD和片选,产生RCK信号。DSP读取的速度不能太快,以读取速度小于写速度为原则。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  在对液晶的逻辑时序控制上,由于图像输出的信号是640×480的像素,而液晶的显示为320×240的格式。所以利用CPLD把图像传感器输入的像素时钟信号PCLK进行二分频产生液晶的时钟信号控制液晶的显示,同时对行同步信号进行隔行有效从而达到液晶对图像的显示。CPLD中的程序编写用的采用了硬件描述语言VHDL,在QUARTUSⅡ软件平台上进行编写的。由于在选用芯片时采用的是[/color][url=http://www.qooic.com/detail-EPM7064.html][color=black]EPM7064[/color][/url][color=black]S系列的44脚PLCC封装的,只能工作在5V电压情况下,其输出的高电平信号是5V,必须通过处理才能接入系统中工作在3。3V状态下的芯片器件。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]1.4        帧存储器选择[/color][/align][align=left][color=black]  帧存储器有需要外部提供地址线的RAM和不需要外部提供地址线的FIFO,为了简化CPLD的设计。采用了FIFO的帧存储器。FIFO又可以分为基于动态存储的DRAM和基于静态的SRAM。基于静态SRAM的优点是不需要刷新电路,但容量小,需要多片才能存储一帧数据;基于DRAM的优点是容量大,只需一片就能存储一帧数据,缺点是必须有刷新电路。本设计中采用的是Averlogic公司的大容量FIFO动态存储芯片[/color][url=http://www.qooic.com/detail-AL422B.html][color=black]AL422B[/color][/url][color=black]。其刷新电路比较简单,仅需WCK或RCK提供大于1M的不间断脉冲即可。[/color][url=http://www.qooic.com/detail-AL422B.html][color=black]AL422B[/color][/url][color=black]的存储容量为3MB,由于系统一帧的信息通常包含640×480个彩色像素,每个像素占用2个字节,可存储1帧图像的完整信息,其工作频率可达50MHz。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]1.5        视频处理DSP[/color][/align][align=left][color=black]  在选用DSP时,在兼顾处理速度,存储容量,现有条件下的加工工艺水平,以及价比方面,选用了TI公司的144脚封装的TMS320VC5509A,此芯片的最高工作频率可达到200MHz,具有很高的处理速度。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  DSP收到来自CPLD的读通知信号后开始读取[/color][url=http://www.qooic.com/detail-AL422B.html][color=black]AL422B[/color][/url][color=black]中的视频数据。为了方便处理数据,在DSP外围扩展了一个的SDRAM。芯片采用的是HYNIX公司的HY57V161610E,此芯片的存储容量为1M×16bits。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  当DSP上电复位后,通过采样GPIO0~GPIO3的状态,根据采样的状态来进行什么样方式的程序装载。本系统的采用外接的flash存储芯片的SPI口对DSP进行程序装载,接着通过DSP的I2C口对图像传感器进行寄存器初始化。图像传感器开始输出信号。整个系统开始进入工作。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  DSP作为高速的处理器,主要用于图像的处理。由于本视觉系统要完成识别和跟踪功能,数据的处理量是很大的。在完成图像处理的同时,DSP也作为控制器使用完成对控制器的控制,从而构成视觉跟踪系统。[/color][/align][align=left][color=black][/color] [/align][align=left][b][color=black]2         软件部分设计[/color][/b][/align][align=left][color=black][/color] [/align][align=left][color=black]  由于本系统采用的是颜色和形状相结合的办法对无遮挡目标物体的识别。为了达到机器人实时快速的目的,在软件方法上,主要采用了目前常用的足球机器人的颜色识别方法,目前比较常见是基于阈值向量的颜色判断法。下面简述颜色识别原理。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]2.1        色彩空间选择[/color][/align][align=left][color=black]  对于采用基于彩色图像分割的方法识别目标时,首先要选择合适的颜色空间,常用的颜色空间有RGB、YUV、HSV、CMY等。颜色空间的选择直接影响到图像分割和目标识别的效果。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  RGB:是最常用的颜色空间,其中亮度等于R、G、B3个分量之和。RGB颜色空间是不均匀的颜色空间,两个颜色之间的知觉差异与空间中两点间的欧氏距离不成线比例,而且R、G、B值之间的相关很高,对同一颜色属,在不同条件(光源种类、强度和物体反射特)下,RGB值很分散,对于识别某种特定颜色,很难确定其阈值和其在颜色空间中的分布范围。因此通常会选择能从中分离出亮度分量的颜色空间,其中最常见的是YUV和HSV颜色空间。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  HSV:接近人眼感知色彩的方式,H为色调(Hue),S为色饱和度(Saturation),V为亮度(Value)。色调H能准确地反映颜色种类,对外界光照条件变化敏感度低,但是H和S均为R、G、B的非线变换,存在奇异点,在奇异点附近即使R、G、B的值有很小变化也引起变换值有很大的跳动。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  YUV:RGB颜色空间线变化为的亮度-色彩空间。是为了解决彩色电视机与黑白电视机的兼容问题而提出的。Y表示亮度(Luminance),UV用来表示色差(Chrominance)。YUV表示法的重要是它的亮度信号(Y)和色度信号(U、V)是相互独立的。所谓色差是指基色信号中的3个分量信号(即R、G、B)与亮度信号之差。[/color][/align][align=left][color=black]因此,针对以上原因,本系统在采用的是YUV色彩空间。[/color][/align][align=left][color=black]YUV格式与RGB存在如下关系:[/color][/align][align=left][i][color=black][img=243,87]http://www.dzsc.com/data/uploadfile/2007924165329255.JPG[/img][/color][/i][/align][align=left][i][color=black][/color][/i] [/align][align=left][color=black]2.2        阈值确定和色彩判断[/color][/align][align=left][color=black]  在确定阈值时,首先通过采集样本进行训练,从而得到预定的几种颜色在YUV空间的分量的上下阈值,如图2所示。[/color][/align][align=left][b][color=black][img=295,299]http://www.dzsc.com/data/uploadfile/2007924165329273.JPG[/img][/color][/b][/align][align=left][color=black]  当一个待判定的像素在色彩空间中的位置落在这个长方体中时,就认为该像素属于要找的颜色,从而完成对图像颜色的识别。在[i]Y[/i]空间中[i],Y[/i]值表示亮度[i],[/i]因它的变化很大[i],[/i]所以只考虑了[i]U[/i]和[i]V[/i]的值[i],[/i]在进行颜色判断时[i],[/i]首先分别建立[i]U[/i]、[i]V[/i]的阈值向量。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  由于在系统中图像传感器的数字信号是8位,即1Byte,共255Byte,系统最多能判定8种颜色。在颜色识别后进行图像分割,在图像分割中采用了种子填充算法,其整个种子的填充是和像素点的颜色同时进行的,一开始不是对所有的像素进行处理,而是分块进行的,本系统采用的块是32×24像素,这样计算量大大减小。当中心点是所要识别的颜色时,就以这个点为种子向四周扩散,并判定周围像素点的颜色,直到填满整个块。在这过程中,同时对目标进行形状识别。本系统采用了基于全局的特征向量的识别算法来进行识别。同时也为构建雅可比矩阵得到需要的矩特征量。图3为图像识别分割流程图。[/color][/align][align=left][b][color=black][img=365,273]http://www.dzsc.com/data/uploadfile/2007924165329797.JPG[/img][/color][/b][/align][align=left][b][color=black][/color][/b] [/align][align=left][color=black]2.3        视觉跟踪软件原理[/color][/align][align=left][color=black]  当目标物体被识别以后,视觉系统将调整镜头使目标位于视野的中心。一旦物体运动,视觉系统将进行对目标物体的跟踪。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  在机器人视觉跟踪系统上,采用无定标的视觉跟踪系统。无定标的视觉跟踪不需要事先对摄像镜头进行定标,而是应用自适应控制方面的原理,在线的实时调整图像雅可比矩阵。通过二维的图像特征信息反馈,这种方式对摄像机模型误差和机器人模型误差、图像误差、图像噪声不敏感。基于图像跟踪的视觉跟踪控制系统,如图4。[/color][/align][align=left][b][color=black][img=371,122]http://www.dzsc.com/data/uploadfile/2007924165329293.JPG[/img][/color][/b][/align][align=left][color=black]  控制量c为机器人头部的控制系统。首先把目标放在机器人视野的前方采集到期望的图像,从期望图像中抽取期望的特征集,作为视野跟踪控制系统的期望输入,从而完成任务需要的视野特征集定义。在实时控制系统中,由机器人的图像传感器获取实时采样图像,从中获取实时特征集,这样构成一个视野反馈,引导机器人完成跟踪任务。区别于图像的简单几何特征,本系统选用的视觉特征集为全局的图像描述—图像矩。[/color][/align][align=left][color=black][/color] [/align][align=left][color=black]  根据矩特征变化量与相对位姿变化量之间的关系矩阵,即图像雅可比矩阵,然后利用推导的图像雅可比矩阵,设计了视觉跟踪控制器,完成系统对3D目标物体的平动跟踪。[/color][/align][align=left][b][color=black][/color][/b] [/align][align=left][b][color=black]3         实验结果[/color][/b][/align][align=left][color=black][/color] [/align][align=left][color=black]  图5为DSP为clkout脚输出波形,表明DSP的内部时钟电路工作正常。图6的图像传感器输出数据波形证明了图像传感器工作正常。图7的DSP采集到的图像数据,可以确定整个图像采集硬件电路工作正常。[/color][/align][align=left][color=black]    [img=302,498]http://www.dzsc.com/data/uploadfile/2007924165329865.JPG[/img][/color][/align][align=left][color=black][img=549,354]http://www.dzsc.com/data/uploadfile/2007924165329432.JPG[/img][/color][/align]
页: [1]
查看完整版本: 服务机器人的视觉系统设计