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