出现在生产生活中,视觉系统作为智能机器人系统中一个重要的子系统,也慢慢变得受到人们的重视。
视觉系统是一个很复杂的系统,它既要做到图像的准确采集还要做到对外界变化反应的实时性,同时还需要对外界运动的目标进行实时跟踪。因此,视觉系统对硬件和软件系统都提出了较高的要求。目前比较流行的足球机器人技术,它的视觉系统属于很典型的快速识别和反应类型。
机器视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观的三维世界的识别。人类视觉系统的感受部分是视网膜,它是一个三维采样系统。三维物体的可见部分投影到网膜上,人们按照投影到视网膜上的二维的像来对该物体进行三维理解(对被观察对象的形状、尺寸、离开观察点的距离、质地和运动特征等的理解)。
机器视觉系统的输入装置能是摄像机、转鼓等,它们都把三维的影像作为输入源,即输入计算机的就是三维管观世界的二维投影。如果把三维客观世界到二维投影像看作是一种正变换的话,则机器视觉系统所要做的是从这种二维投影图像到三维客观世界的逆变换,也就是根据这种二维投影图像去重建三维的客观世界。
机器视觉系统主要由三部分所组成:图像的获取、图像的处理和分析、输出或显示。图像的获取其实就是将被测物体的可视化图像和内在特征转换成能被计算机处理的一系列数据,它主要由三部分所组成:照明,图像聚焦形成,图像确定和形成摄像机输出信号。视觉信息的处理技术主要依赖于图像处理方法,它包括图像增强、数据编码和传输、平滑、边缘锐化、分割、特征抽取、图像识别与理解等内容。经过这些处理后,输出图像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像做多元化的分析、处理和识别。
机器人视觉系统主要是利用颜色、形状等信息来识别环境目标。以机器人对颜色的识别为例:当摄像头获得彩色图像以后,机器人上的嵌入计算机系统将模拟视频信号数字化,将像素根据颜色分成两部分:感兴趣的像素(搜索的目标颜色)和不感兴趣的像素(背景颜色)。然后,对这些感兴趣的像素进行RGB 颜色分量的匹配。为减少环境光强度的影响,可把RGB颜色域空间转化到HIS颜色空间。
在足球机器人的彩色视觉系统中,程序是根据贴在机器人小车顶上的色标来识别机器人是属于哪一队,以及是几号队员的。由于在每个机器人小车顶上有两种颜色的色标,分别是队标和队员标。因此,识别工作的第一步是把图像中的每一个像素,根据颜色分类到一组离散的色彩类中。
其中,线性色彩阈值法是用线性平面把色彩空间分割开来,其阈值的确定可采用直接取阈值和通过自动训练来获取目标颜色范围等方法,也能够使用神经网络和多参数决策树方法来进行自学习,以获得合适的阈值;而用最近邻域分类法分割图像时,则利用隶属度函数,即根据最大的隶属度来判断这个颜色属于哪个类;阈值向量法是先使用一组事先确定的阈值向量来把色彩值在色彩空间中的位置来判断其属于哪种颜色。
在色彩分类之后,必须对各个颜色类的点做处理,最终辨识出场上的各个敌我队员和球在场上的位置和方向角。识别时,通常的做法是对分类后的像素进行一次扫描,即将相邻的同种颜色的像素连成色块。
对于采用基于彩色图像分割的方法识别目标时,首先要选择正真适合的颜色空间,常用的颜色空间有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的值有很小变化也引起变换值有很大的跳动。
YUVRGB颜色空间线性变化为亮度色彩空间。是未解决彩色电视机与黑白电视机的兼容问题而提出的。Y表示亮度(Luminance),UV用来表示色差(Chrominance)。YUV表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是相互独立的。所谓色差是指基色信号中的3个分量信号(即R、G、B)与亮度信号之差。
在确定阈值时,首先通过采集样本做训练,从而得到预定的几种颜色在YUV空间的分量的上下阈值,如图2所示。
当一个待判定的像素在色彩空间中的位置落在这个长方体中时,就认为该像素属于要找的颜色,从而完成对图像颜色的识别。在Y空间中,Y值表示亮度,因它的变化很大,所以只考虑了U和V的值,在进行颜色判断时,首先分别建立U、V的阈值向量。
在颜色识别后进行图像分割,在图像分割中采用了种子填充算法,其整个种子的填充是和像素点的颜色一起进行的,一开始不是对所有的像素做处理,而是分块进行的。当中心点是所要识别的颜色时,就以这个点为种子向四周扩散,并判定周围像素点的颜色,直到填满整个块。