杨志林,杨彦锋
(郑州工业应用技术学院,郑州 450002)
基于视觉的定位技术[1]是近年来研究的热点,它通过摄像机获取目标图像,借助图像处理识别目标,计算出路标相对视觉系统的位置,则机器人在这个环境中的位置和方向就可以同时计算出来[2]。目标识别效果直接影响到机器人定位的准确性,进而影响其自主性和智能化,是实现视觉定位的关键。机器人视觉或者人类视觉中,颜色都是物体表面的最最基本的特征之一,更是识别并提取物体信息的关键。
目前对移动机器人本身的视觉系统的研究中,一般都是利用目标的彩色图像信息,通过图像处理技术识别出检测到的目标。将颜色作为图像分割的依据的可靠性和可行性在很多研究中早已得到了验证,抓住了目标提取过程中的本质信息。付长斐等[3]采用基于HSV颜色空间,通过对灰度图像进行阈值分割和颜色判别相结合的ROI提取算法,无法消除背景干扰及噪声的影响。马东伟等[4]采用目标颜色空间HS向量识别与阈值分割方法和目标区域标记排除方法,较好地提高了目标识别与跟踪的实时性和准确性,但计算量大,占据内存大。谭利等[5]提出一种新的连通域标记方法,提高了区域填充的速度和效率,但跟踪和标记边界的效率较低。在前人研究的基础上,本文提出了一种基于YUV颜色空间的颜色特征提取以及具有连通性的目标区域标记的目标检测算法。
颜色空间的坐标值可以用来表示彩色图像的每一像素的颜色,其中使用较多的颜色空间有RGB颜色空间、YUV颜色空间、HSI颜色空间等[3]。选择合适的颜色空间不但可以更准确地描述图像颜色,还可以提高不同颜色之间的区分能力。下面主要介绍这3种颜色空间以及它们之间的转换关系。
(1)RGB颜色空间模型
RGB颜色空间是一种线性颜色空间,可以用如图1的立方图表示。图像采集设备最初采集到的颜色信息一般都是R、G、B值;并且颜色显示设备也是采用R、G、B分量;图像处理中使用的其他所有的颜色空间也是通过RGB颜色模型线性或非线性转换得到的,它们的处理结果也必须转换回RGB颜色空间才能清楚显现出来。
图1 RGB彩色立方图
由于R、G、B分量所表示的颜色不便于辨识和理解,因此RGB颜色空间不能很好地描述颜色特征。RGB颜色空间又是最不均匀的颜色空间之一,而且它的R、G、B值之间还具有非常高的相关性(B-R:0.78,R-G:0.98,G-B:0.94),这些高相关性的存在,加大了对图像数据进行解压的难度,并对图像中的颜色处理也造成了一定的干扰。
(2)YUV颜色空间模型
欧洲电视系统采用YUV颜色空间作为颜色编码方法[6]。YUV颜色空间因其具有单独的亮度分量表示,以及同一种颜色在不同亮度情况下能够较好地保持不失真,而成为机器人视觉中经常使用的颜色空间模型。
YUV中的Y表示图像的灰度值;U和V表示图像的颜色及饱和度,用于描述像素的色彩。亮度是将RGB信号的特别指定的部分累计并融合到一起得到的;色度则定义了颜色的两个方面:U反映了RGB输入信号B部分与RGB信号亮度值之间的区别;而V反映的是RGB输入信号R部分与RGB信号亮度值之间的不同。
YUV的Y和U、V彼此之间的关联不大,因此亮度的影响对YUV颜色空间模型的干扰不大,在亮度不同的环境中,该颜色空间能够较好的保持同一种颜色,使该颜色不失真。
YUV颜色空间和RGB颜色空间的转换公式[5]如下:
(3)HSI颜色空间模型
HSI颜色模型[7]是通过色调、饱和度、亮度这3个与视觉特征有关的量建立起来的颜色模型,用于测定颜色所含各种成分的数量对人眼的感官作用,这3个量是基本属性。HSI颜色空间可以用一个圆锥空间模型来描述,如图2所示。在HSI颜色空间中,可以方便地使用图像处理和计算机视觉中的大量算法,它们能够互不影响地进行各自的处理。因此,HSI颜色空间大大地简化了图像分析和处理的工作量,与RGB颜色空间的转换关系如下所示:
图2 HSI颜色空间模型
选择一种合适的颜色空间是彩色图像处理的关键,但是每一种颜色空间都有其优缺点,任何一种颜色空间都不会适合于所有的环境,通过对RGB、YUV、HSI这3种常用的颜色空间的比较与分析,列出了其特点比较的结果,如表1所示。
表1 RGB、YUV、HSI的特点比较
通过以上的分析与比较,本文选择YUV空间作为目标颜色检测的颜色空间。
对于所要检测目标的任意一种颜色特征的分布空间St,均在YUV颜色空间由人工来标定,并将St集合描述为6个阈值,其中每一维都含有表示该颜色类在该维的上、下阈值——最大值和最小值,如图3所示,表达式为式(3)。3个向量则在颜色空间中确定了一个长方体,如图4所示,某一目标颜色特征的计算公式如式(4)所示[8-11]。
图3 YUV颜色空间的阈值
图4 YUV颜色空间模型
将各个目标颜色特征分别在Y、U、V轴上投影,这样st集合就可以以式(5)来描述,其中{Yclass}={Yi|(Yi,Uj,Vk)为标定点}、{Uclass}={Uj|(Yi,Uj,Vk)为标定点}、{Vclass}={Vj|(Yi,Uj,Vk)为标定点}。当YUV空间中标定越来越多,点集的形状也越来越趋近于一个闭合体,即:
如图5所示,左窗口显示拍摄的源图像,右图像显示颜色识别的结果。如果存在M个目标,则对于任意一个目标的颜色特征Fi,它在环境中可能存在的特征地点为Ni,那么颜色特征学习描述如下[12-13]:
图5 颜色特征提取图像
(1)在左窗口中,选择目标i(i=1,2,…,M),确定其颜色特征Fi;
(2)在左窗口中,选择目标i的任一特征地点j(j=1,2,…,Ni),人工标定该处的颜色阈值,并检查标定的效果,若效果不好,则选择新的地点重新标定;
(3)在右窗口中显示标定的结果图像。如果Ni个特征地点均标定成功,则转到第4步,否则转到第2步;
(4)如果M个目标都标定过则转到第5步,否则重新选择目标转到第1步;
(5)结束。
符合该目标颜色特征的目标区域Ro(p)可根据下式得出:
式中:v1、v2、v3分别为像素p的Y、U、V值。
采用基于颜色特征的方法进行目标特征的提取,则是仅仅考虑了像素本身的颜色特征,不考虑像素的空间位置,从而直接将图像按照颜色特征的差异分为目标区域和非目标区域。但是图像中的所有物体都是由相互连通在一起的像素组合而成的,一个独立的物体是一个连通区域,那么若有不同的连通区域就意味着图像中存在不同的物体,因此在对物体进行检测之前,首先必须确定该物体是否是独立的。因此,为了加以区别,需要对不同的连通域进行不同的标识,从而实现目标物体与背景的分离,并消除噪声,识别同一颜色的多个目标[14-16]。
像素在图像子集中的连通:设S是图像中的一个子集,p和q是S中的点。在S中,当p和q之间存在一条全部由S中的点形成的路径时,p和q就是连通的。
为了达到实时性的效果,本文采用四连通的区域标记算法,如图6所示。分为3个步骤:采用所学习的颜色特征向量逐行扫描图像,标记连通区域,并记录等价标记;计算等价标记矩阵的传递闭包,将区域连通标记用其等价组的标记代替;连通区域特征的提取。
图6 连通性
采用所学习的颜色特征向量根据式(6)逐行处理图像。由于四连通性总是发生在相邻的两行之间,而且图像扫描又是从上到下,自左往右进行的,所以只需要考虑当前像素点与它左边的像素点和上行的像素点的关系。假设p为当前像素点,p8为左边的像素点,p2为上行的像素点,则本文所采用得四连通区域标记算法如下:
(1)如图7(a)所示:如果当前点和左边点、上行点均不同色,则把当前点标定为所属颜色的一个新标记;
(2)如图7(b)所示:如果当前点与上行点同色,而与左边点不同色,则把当前点标定为邻点同色的标记;
(3)如图7(c)所示:如果当前点与左边点同色,而与上行点不同色,则把当前点标定为邻点同色的标记;
(4)如图7(d)所示:如果当前点跟左边点、上面点均同色,但两者不是同一个标记,则记录这两个邻点的标记为等价标记,并把上面点的标记赋给当前点;
(5)如图7(e)所示:如果当前点跟左边点、上面点均同色,而且是同一个标记,则把上面点的标记赋给当前点。
图7 四连通区域标记算法
等价标记矩阵的传递闭包的计算,就是将两个等价连通性区域标记扩张为一个新的区域,并用等价组的标记来标记这个新区域。Warshall算法计算简单快速,因此,本文采用Warshall算法计算等价标记矩阵的传递闭包,来完成具有相同颜色特征的区域连通标记与其等价组的标记之间的传递[17-19]。
经过基于颜色特征的区域分割和连通区域提取后,由于摄像头检测误差和环境干扰,图像中仍存在与目标具有同一颜色特征的噪声点,影响目标的准确识别。通过实验发现,这些区域的面积要远小于目标物体的面积,因此采用基于区域面积的滤波方法过滤噪声,提高目标识别的准确性。首先,标记有效颜色区域,并统计这些区域的个数,并测量各个区域的面积。由于目标所占屏幕像素面积与目标距离相关,因此根据检测距离设定动态面积阈值,当区域的面积小于这个阈值时,则认为是噪声并消除;否则,为目标物体。基于连通性的目标区域提取的实验结果如图8所示。
图8 连通区域提取图像
设连通域的标记为L n,那么它的面积areaLn(单位:像素个数)的计算公式为:
式中:I=Ii×Ij,为连通域的标记;RO为目标区域;。
针对机器视觉图像中机器人对目标的准确检测与识别的问题,本文提出以了一种基于颜色特征和连通域标记的目标检测算法。首先人工标定目标颜色的颜色阈值,进行颜色特征学习,提取符合目标颜色特征的区域;然后采用四连通的区域标记算法,标识符合目标颜色特征的多个颜色区域,并结合Warshall算法实现同一颜色的多个目标的识别;最后依据目标所占屏幕像素面积与目标距离的关系,通过检测距离设定动态面积阈值,过滤具有同一颜色特征的噪声点,实现目标区域的准确识别。