柴功博,顾宏斌,孙 瑾
(南京航空航天大学民航学院,江苏 南京 210016)
在机器视觉、虚拟现实与交互的研究当中,人手的位置检测与跟踪是难点之一。基于手部标记的三维手部跟踪是一种简便实用的方法[1-4]。该方法通过在目标手背上附加不同颜色的标记点,使用标定过内外参数的摄像机,经坐标变换,计算出各个标记点的三维空间位置。通过判断标记点绝对位置的变化,以及标记点与标记点之间相对位置的变化得出物体的运动状态和运动趋势。标记点决定了实际物体的三维坐标点,在识别跟踪的过程中,标记点的稳定性,即标记点形心位置的稳定性,对实验结果有着至关重要的影响。只有保证标记点的稳定,才能准确地判断出目标点的运动情况。
影响标记点稳定性的主要因素有两个:一是图像噪声,由于普通摄像头的抗干扰能力比较差,在亮度不够的情况下尤为突出,当噪声点的颜色与标记点的颜色相近时,噪声点会影响标记区域,导致标记点形心的跳动,使得整个三维物体的判定也产生跳动。因而一般的一阶矩检测无法满足精度要求。另一个是图像的分辨率,由于摄像头分辨率不能足够小,使得用一般方法检测出来的形心只能处于像素点之内,而不是实际位置,由此带来了检测的不准确性。
目前稳定标记点的主要方法为滤波或标记形状拟合[5-6]。然而滤波将带来时域上的延时,且拟合圆或椭圆的计算量很大。
笔者以模型手背上的3个不同颜色点为目标,采用区域增长法将噪声的影响缩小到检测区域之内,再应用Hough变换精确定位,在不增加系统延时的前提下,提高目标的检测精度。
在多颜色目标的提取中对颜色判定的准确性至关重要,影响颜色的主要因素是光源,光源的强度、颜色以及照射方向均能对目标颜色产生影响。将颜色转化到HSV空间是一种简便有效的方法。由于HSV颜色空间将色彩与亮度分离,在光亮很弱的情况下也能较好地提取颜色。图1为实验论证图。其中实线为各颜色H值随V值的变化,虚线为S值随V值的变化。
对于光源颜色问题采用H值补偿的方法。
H值补偿也可对打印机打印的颜色偏差进行补偿处理。
图1 实验论证图
区域增长法是一类递归算法[7-9]。设二维图像中第i行第j列点的像素H值为H(i,j),待检测的目标像素H值为Hdest,建立关于颜色Hdest的堆栈Stack(Hdest)。对当前点H(i,j)进行判断:
其中,ε为阈值,由图1可以看出颜色的H值略有波动,经实验实测ε取值范围为5~10,可不丢失颜色目标。
若H(i,j)满足条件则Push Stack(Hdest)。入栈后从(i,j)点向四周任一方向继续搜索,即判断:
其中,Δi=1,2,…,n;(i+Δi)∈Simage。
如果Push Stack(Hdest)则Δi累加,继续该方向搜索;如果Pop Stack(Hdest)则对堆栈前一层数据的其他方向元素,即 H(i- Δi,j),H(i,j+Δj),H(i,j-Δj)进行搜索,也可进行8方向搜索,继续判断H(i±Δi,j±Δj)的位置颜色H值,增加斜向判断可以更准确计算连通区域,但运算量增加一倍。判断终止条件是堆栈为空。当堆栈为空后,记录所有遍历过的H(i,j),作为颜色区域Scolor。
标记点的图像坐标,则由颜色区域Scolor的一阶矩决定,即:
该方法得出的图像位置坐标为亚像素值。在区域完整,即连通性好的情况下其值比较准确。图2为采用常规区域增长法得出的图像。
由于区域增长法采用递归,若区域点面积较大则面临堆栈溢出,若连通区域性不强,则可能出现检测位置不准确,因而引入分块区域增长法。该方法定义m×n小区域,用该区域Hs(m,n)代替单个像素点H(i,j)的遍历,其中:
图2 常规区域增长法得出的图像
即判断 Hs(m,n)是否在[Hdest-ε,Hdest+ε]区间内,然后采用递归算法求解。分块区域增长能有效解决递归次数过大的弊端。
自适应跟踪是在分块增长之后,根据前一帧目标的位置预测下一帧目标点的范围。若前一帧检测出的目标位置为(Xcolor,Ycolor),目标区域大小为Scolor。
则定义系数K,跟踪区域大小为:
跟踪区域左上坐标为:
跟踪区域右下坐标为:
通过对目标区域大小的判断来跟踪,可以使效率得到极大的提升。同时排除了跟踪区域外部的干扰因素,使区域检测更加准确。
由于跟踪区域为正方形,如果目标为圆形,在目标的运动速度不快的情况下,利用其外接矩形作为跟踪区域的方法之一,此时K值为3/4,然而在实际试验中,当目标运动速度较快,一帧之内的位移脱离了跟踪区域,会使得跟踪区域失效,需重新全局搜索,使效率降低。根据实验,K值取2~3,能够较好地满足一般情况下人手的跟踪运动。图3为分块跟踪后的实验图,其中方框为跟踪区域。
图3 分块跟踪区域增长法实验图
区域增长法虽然能够准确地找到目标区域,但由于噪声的干扰,在目标点的边缘部分会随机地将噪声点列入目标区域,使得整体目标质心点的位置发生波动。图4为分块大小从1×1到5×5的质心波动方差曲线,从实验数据可知,随着分块增大,虽然效率提升,但稳定性下降。
图4 不同分块大小时质心波动方差曲线
因此由区域增长法计算出的质心点不能保证稳定性要求,但可以高效地判别粗略位置,为后续准确判断提供参考。
Hough变换是利用图像空间和Hough参数空间的点线对偶性,把图像空间中的检测问题转换到参数空间。这实际上是把检测空间直线的问题,转化为检测空间点的问题[10]。为解决检测垂直线的问题,定义参数空间为:
将图像坐标中的二维点坐标(x,y)通过上式转换成参数空间中的(ρ,θ)。
对于处于同一条直线上的n个二维图像点(xi,yi),i=1,2,…,n,在参数空间对应的 n 条曲线为:
使用加权最小二乘法,估计出上述n个等式的解。求出的交点(ρl,θl)即为直线的参数空间坐标,再由空间坐标变换公式,即可反推出图像坐标中的直线公式为:
生姜是姜科多年生草本植物姜的根茎,别名有姜根、百辣云、鲜生姜、蜜炙姜等。生姜中含有的挥发油、姜辣素、姜黄素等能抗溃疡、镇吐、增加胃液分泌、调节胃肠运动、保肝利胆、兴奋循环和呼吸系统,同时还能降血脂等。其中所含的姜辣素(Curcumin)具有明显的抗氧化、抗衰老、降血脂等功能,对心脏和血管运动中枢有直接的兴奋作用,可使心跳加速、血管扩张,血行旺盛而使脉络通畅,进而实现改善体表循环的保健功能[3-6]。
实验证明Hough变换检测直线的准确性非常高,但是如果进行全区域变换不但效率很低,还会将背景中的直线全部提取出来,增加冗余运算。因而必须降低Hough变换的运算,缩小Hough变换的范围,提高系统的实时性。
Hough变换相比于直线拟合的优势是不需要判断哪些点属于同一条直线,通过对参数空间内点的拟合即可得出直线信息,但图像空间中的坐标(xi,yi)需要通过轮廓检测来得出。
由于目标标记的粗略位置已经由分块区域检测法得出上述Strack,通过这一先验知识,可以对Hough变换的区域进一步缩小。对Strack区域进行轮廓提取,这样不但消除了大范围的背景冗余轮廓,还由于区域面积的缩小降低了计算量。
将目标区域跟踪的功能交给区域增长法来实现,不交由Hough变换来运算,这种跟踪与检测分开的方法可以提高跟踪速度,降低系统资源消耗。
笔者应用普通USB摄像机,分辨率为640×480,在实验室环境中,选用模型手作为运动目标,并在模型手目标上附加标记进行跟踪实验。
首先对标记点进行改进,标记点图如图5所示。
图5 实验标记图
将普通圆形标记点均分割成4部分,相邻两部分不同色,其中一种选取待检测的颜色,另一种颜色根据待检测颜色的亮度来选取黑色或白色。若待检测颜色为黄色,则另一种颜色取黑;若待检测颜色为蓝色,则另一种颜色取白。这种取法可以使梯度法搜索出的边界更加准确。在圆形标记的中间设计一待检测颜色的小圆形,小圆形使得待检测颜色连成一个区域,因此区域增长法检测出的一阶矩不会有很大的偏差。区域增长以及边界检测如图6(a)所示。
Canny算子检测的轮廓非常准确,但要求图像的清晰度足够高,故在应用Canny检测轮廓之前需要对图像进行一定程度的锐化。
图6 区域跟踪轮廓检测
图7为Hough参数空间曲线图。由于标记点使用相互垂直的两条边界线,因此在Hough检测的参数空间中,在θ∈[0,90)度之间必存在一条直线,因而θ1的取值范围只需选取0~90,由于另一条直线与其垂直,因此另一条直线的θ参数为:
其中,Δθ的取值范围由实际检测中目标标记所在平面与摄像机光轴所成的最大夹角决定。经实验测定,若目标标记近似与摄像机光轴垂直则取Δθ为5°可以不丢失第二条直线。
图7 Hough参数空间图
图8为固定不动的红色标记点检测出的x方向位置波动图,其纵坐标为Xi-E(Xi)。
其中黑色为区域增长判断出的位置,灰色为附加Hough变换后的位置。
表1为各颜色x,y坐标的波动方差值。
表1 颜色波动方差
图8 Hough参数空间图
由实验数据可以看出,结合区域增长以及Hough变换的目标跟踪方法与仅使用区域增长的跟踪方法相比,在稳定性上有较大的提高。二维图像中的标记点波动不超过0.5个像素。
在基于标记的视频跟踪技术中,稳定颜色标记点是目标三维定位的基础,只有稳定二维图像中的颜色标记才能通过单目视觉及双目视觉的坐标变换准确地将其映射到三维环境中。基于区域增长法以及Hough变换结合的方法,可以准确而稳定地定位标记点,在使用带有跟踪的局部Hough变换之后,采集并处理之后的图像仍然可以达到每秒13~15帧的速度,因而是一种有效且稳定的标记点三维定位方法。
[1]PYLKKO H.Real-time color-based tracking via a marker interface[J].Robotics and Automation,2001(2):12-14.
[2]张欣欣.基于颜色信息的目标跟踪[D].西安:西安电子科技大学图书馆,2008.
[3]汪建林.基于颜色特征的目标跟踪算法研究[D].长春:东北师范学院图书馆,2009.
[4]高飞,初君.基于标记点图案的三维脚型建模与测量方法[J].计算机辅助设计与图形学学报,2009,21(10):1412-1419.
[5]ZHOU J.Algorithm of compensating loss of round color mark based on circle fitting[J].Mechatronics and Automation,2005(3):1397-1401.
[6]郭玉波,姚郁.基于空间矩的圆标记中心亚像素定位算法[J].吉林大学学报:工学版,2009,39(1):160-163.
[7]ROLF A,LEANNE B.Seeded region growing[J].IEEE Trans Pattern Anal Mach Intell,1994,16(6):641-647.
[8]CHANG Y L.Adaptive image region-growing[J].Image Processing,1994(3):868-875.
[9]WAN S Y.Symmetric region growing[J].Image Processing,2003(12):1007-1013.
[10]KIRIL A.Implementation of hough transform as track detector[J].Information Fusion,2000(2):11-16.