第1期 张雪华,等:采用Kinect的移动机器人目标跟踪 .35. 耗大量的时间做重复计算,文献[5-8]在直方图的快 起来。它能够以实时的速率(30帧/s)提供彩色图 速计算上做出了新的尝试,提高了运行速度的同时 像和对应像素的深度信息,并且深度精度在毫米量 保证跟踪的准确性。本文针对粒子滤波目标跟踪的 级,这使更多的工作变得易行。 缺陷提出融合Kinect的深度信息的目标跟踪算法, 2增量式直方图计算(HC)算法 并提出了增量式直方图计算算法来提高系统计算速 度,从而实现基于Kinect的移动机器人目标跟踪。 增量式直方图计算(incremental histogram calcu-- lation)算法是一种基于蒙特卡洛法(Monte Carlo l基于Kinect的目标跟踪系统 method)的粒子滤波算法[1],它的基本思想是根据 Kinect是微软公司开发的一款体感摄像机,其 增量式相似度计算来确定每个粒子的权值。文献 结合了视觉与距离传感器的特点,并且开放了可以 [12-13]对HC算法原理及其应用进行了新的研究 在个人计算机上进行二次开发的SDK,以其独特的 和实验,并提出按顺序播撒的2个粒子的矩形区域 功能吸引了大批研究者的关注。基于Kinect视觉 通常会有一个大的重叠区域,因此,在计算后一个粒 与距离相结合的特点,人们对它的使用范围已经不 子的权值时只需消耗较短的时间来计算非重叠区域 局限于游戏开发领域,目前在计算机视觉、机器人等 即可,这样避免了相同像素的重复计算,显著提高跟 领域也取得了优秀的研究成果。 踪的实时性能。 基于Kinect的目标跟踪系统框架如图1所示。 HC算法的基本原理如图2所示,图中为2个 粒子x和x1分别对应的2个矩形框,定义为R和 R1。定义δ为矩形框R+1表示的区域颜色直方 图,8定义为矩形框R的颜色直方图。则直方图 彩色摄像头 深度摄像头 h+1由式(1)可得。 h+1=h:+86-6i (1) RGB图像 深度图像 增量式直方图算法获取日标的 计算颜色直方图深度值 粒子滤波算 法计算权值 R 融合深度信息 再计算权值 。实现目标跟踪 图22个粒子的增量式直方图计算 Fig.2 IHC algorithm between two particles 图1基于Kinect的目标跟踪框架 Fig.1 Kinect-based target tracking framework 显然,如果矩形框R和R1的重叠区域较大, Kinect硬件上主要由一个普通的低分辨率RGB 那么计算6和δ消耗的时间就会较少,这样计算 摄像机、一个红外发射器、一个红外投影仪以及一组 h:+1的时间就会减少,因此就不需要计算重叠区域 麦克风阵列组成。普通RGB摄像机能够以30帧/s 的直方图。但是,当重叠区域的面积小于非重叠区 速率传送分辨率大小640×480的RGB图像,而红外 域面积时,HC算法反而会增加计算量,消耗更多的 发射器和投影仪则是用来采集相应的深度信息,通 时间,此时需设立一个评价函数来判断HC算法是 过内部芯片转换并传送分辨率大小320×240的深 否适用于当前粒子的分布情况。如果人为设定粒子 度图像。通过插值处理,Kinect的驱动可以为上层 分布的方差为某一限值,那么大部分粒子都可以满 软件提供几乎同步的相同分辨率的RGB图像流和 足HC算法的条件。对于传统的直方图计算方法, 深度图像流,并且通过简单的校准,如利用出厂的摄 权值小的粒子会导致对快速运动目标的跟踪性能下 像机参数,可以将RGB图像和深度图像像素点对应 降,而对于HC算法,小方差可以提高运算速度,减耗大量的时间做重复计算,文献[5⁃8]在直方图的快 速计算上做出了新的尝试,提高了运行速度的同时 保证跟踪的准确性。 本文针对粒子滤波目标跟踪的 缺陷提出融合 Kinect 的深度信息的目标跟踪算法, 并提出了增量式直方图计算算法来提高系统计算速 度,从而实现基于 Kinect 的移动机器人目标跟踪。 1 基于 Kinect 的目标跟踪系统 Kinect 是微软公司开发的一款体感摄像机,其 结合了视觉与距离传感器的特点,并且开放了可以 在个人计算机上进行二次开发的 SDK,以其独特的 功能吸引了大批研究者的关注。 基于 Kinect 视觉 与距离相结合的特点,人们对它的使用范围已经不 局限于游戏开发领域,目前在计算机视觉、机器人等 领域也取得了优秀的研究成果。 基于 Kinect 的目标跟踪系统框架如图 1 所示。 图 1 基于 Kinect 的目标跟踪框架 Fig.1 Kinect⁃based target tracking framework Kinect 硬件上主要由一个普通的低分辨率 RGB 摄像机、一个红外发射器、一个红外投影仪以及一组 麦克风阵列组成。 普通 RGB 摄像机能够以 30 帧/ s 速率传送分辨率大小 640×480 的 RGB 图像,而红外 发射器和投影仪则是用来采集相应的深度信息,通 过内部芯片转换并传送分辨率大小 320×240 的深 度图像。 通过插值处理,Kinect 的驱动可以为上层 软件提供几乎同步的相同分辨率的 RGB 图像流和 深度图像流,并且通过简单的校准,如利用出厂的摄 像机参数,可以将 RGB 图像和深度图像像素点对应 起来。 它能够以实时的速率(30 帧/ s) 提供彩色图 像和对应像素的深度信息,并且深度精度在毫米量 级,这使更多的工作变得易行。 2 增量式直方图计算(IHC)算法 增量式直方图计算(incremental histogram calcu⁃ lation)算法是一种基于蒙特卡洛法 ( Monte Carlo method)的粒子滤波算法[9⁃11] ,它的基本思想是根据 增量式相似度计算来确定每个粒子的权值。 文献 [12⁃13]对 IHC 算法原理及其应用进行了新的研究 和实验,并提出按顺序播撒的 2 个粒子的矩形区域 通常会有一个大的重叠区域,因此,在计算后一个粒 子的权值时只需消耗较短的时间来计算非重叠区域 即可,这样避免了相同像素的重复计算,显著提高跟 踪的实时性能。 IHC 算法的基本原理如图 2 所示,图中为 2 个 粒子 x i k 和 x i+1 k 分别对应的 2 个矩形框,定义为 Ri 和 Ri+1 。 定义 δ + h 为矩形框 Ri+1 表示的区域颜色直方 图, δ - h 定义为矩形框 Ri 的颜色直方图。 则直方图 hi+1 由式(1)可得。 hi+1 = hi + δ - h - δ + h (1) 图 2 2 个粒子的增量式直方图计算 Fig.2 IHC algorithm between two particles 显然,如果矩形框 Ri 和 Ri+1 的重叠区域较大, 那么计算 δ - h 和 δ + h 消耗的时间就会较少,这样计算 hi+1 的时间就会减少,因此就不需要计算重叠区域 的直方图。 但是,当重叠区域的面积小于非重叠区 域面积时,IHC 算法反而会增加计算量,消耗更多的 时间,此时需设立一个评价函数来判断 IHC 算法是 否适用于当前粒子的分布情况。 如果人为设定粒子 分布的方差为某一限值,那么大部分粒子都可以满 足 IHC 算法的条件。 对于传统的直方图计算方法, 权值小的粒子会导致对快速运动目标的跟踪性能下 降,而对于 IHC 算法,小方差可以提高运算速度,减 第 1 期 张雪华,等:采用 Kinect 的移动机器人目标跟踪 ·35·