Kinect深度测量的系统误差补偿研究

2015-06-08 04:26郑梓均孙春龙
仪表技术与传感器 2015年12期
关键词:系统误差参考值扫描仪

张 洪,郑梓均,孙春龙

(江南大学机械工程学院,江苏省食品先进制造装备技术重点实验室,江苏无锡 214122)



Kinect深度测量的系统误差补偿研究

张 洪,郑梓均,孙春龙

(江南大学机械工程学院,江苏省食品先进制造装备技术重点实验室,江苏无锡 214122)

Kinect在测量深度时往往存在系统误差,为此提出了一种基于数学统计的Kinect系统误差补偿方法。该方法设计了一个使用高精度激光扫描仪获取深度参考值的装置,然后根据Kinect的系统误差模型,将深度参考值与Kinect的深度测量值相互匹配,进行二次曲线拟合。结果表明,经过补偿之后的Kinect深度数据相比原始数据精度显著提高了。

Kinect;深度值;系统误差;数学统计;激光扫描仪;曲线拟合

0 引言

微软的Kinect是近几年中比较热门的一款消费级深度传感器。Kinect的设计初衷是为了给电脑游戏服务的,然而刚一推出,其同时获取彩色信息和深度信息的特点,便吸引了其他领域的研究者们[1]。然而研究者们发现Kinect的精度和准确性并无法满足所有研究的需求,因为Kinect的深度测量值和真实深度之间存在着明显的系统性的偏移[2]。Kinect系统误差的补偿,一般在Kinect相机标定时进行。由于微软并未将Kinect的内部算法开源,基于统计学的补偿方法被广泛应用[3-5],即建立一条深度测量值和真实深度的关系曲线。Smisek[4]等建立了包含有深度补偿的Kinect标定模型,而Daniel[5]等在前者的基础上,考虑到了同深度下不同像素点之间深度测量值存在差异的现象,对每一个像素都进行了深度补偿。Kourosh[6]等提出了Kinect的三角测量模型,并据此分析了Kinect的深度分辨率和随机误差模型,但他的误差模型同样适用于Kinect的系统误差。

本文只阐述Kinect深度测量的系统误差补偿,Kinect相机的标定作为预先的工作已经完成。本文设计了一个基于2D激光扫描仪的真实深度参考值采集装置,获取了更加可靠的真实深度参考值,然后根据三角测量的误差模型,选择二次曲线模型进行拟合补偿,取得了更好的补偿效果。

1 Kinect测量原理和误差分析

1.1 Kinect的测量原理

Kinect使用光编码技术[7]来测量物体深度,其关键在于红外发射器发射的红外激光经过光栅衍射后在物体表面形成的激光散斑。Kinect会事先获得不同深度下的激光散斑图案作为参考图案,并存储在Kinect内部,这个步骤被称为Kinect的光源标定。

测量时,Kinect获取投射到被测物体表面的激光散斑图案,然后在低分辨率模式下,与参考图案序列依次做灰度级对比,便能获得灰度级最接近的参考图案,并且以该参考图案的深度作为初步估计的深度。

随后Kinect通过三角测量的方法获得更加精确的深度值的。如图1所示,参考平面的深度Zo在先前的步骤中已知,f为红外相机的焦距,b为基线长度,当被测物体偏离参考平面时,其散斑图案会在X轴方向同样产生一个偏移,即视差d。根据三角形相似可知

(1)

(2)

联立式(1)和式(2),消去D得到被测物体的深度Zk:

(3)

图1 三角测量原理[6]

1.2 Kinect系统误差模型

Kinect的系统误差主要来源于2方面:(1)作为比较廉价的深度信息采集设备,Kinect的镜头的制造精度和整体的装配精度并不算特别高;(2)不同的Kinect使用相同的参考图像序列和处理程序。Kinect的系统误差,体现在测量深度值与真实深度之间产生了偏差,并且每一个像素点的偏差都不一样。

事实上, Kinect的系统误差在测量时直接反映在被测物体散斑图案的视差d的误差上。令Δd表示由系统误差引起的视差d的误差,ΔZk代表相应的深度测量误差,那么

(4)

化简可得

(5)

由于Kinect系统误差是固定的,那么 也是固定的,从而可以得知Kinect的深度测量误差跟物体距离的平方成正比。

2 2D激光扫描仪获取真实深度参考值

采用数学统计补偿Kinect深度测量的系统误差,需要获取被测物体的真实深度参考值。真实深度参考值的准确性直接关系到深度补偿的效果。本文选取了与Kinect平行的平面(如平整的墙面)作为被测物体,平行平面能够覆盖整个Kinect视野,以便补偿每一个像素点的系统误差。

以往的研究中,研究者常常使用卷尺或者1D测距传感器来获取真实深度参考值,但这样无法保证Kinect与被测平面的平行度。本文中设计了一个基于高精度的2D激光扫描仪的真实深度参考值采集装置,在获取精确的真实深度参考值的同时,保证了被测平面与Kinect的平行性,具体原理如下所述。

如图2所示,激光扫描仪和Kinect安放于待测平面前,激光扫描仪中心和Kinect基线的距离为dt,同时保证二者平行。激光扫描仪的扫描范围为θ=θ1+θ2,其始末两端的测量距离为DL和DR,DM为其每次扫描的中间时刻的测量值。

图2 2D激光扫描仪获取真实深度参考值

在测量过程中,若DL=DR,则θ1=θ2,进而可以得知DM即为激光扫描仪中心到待测墙面的垂直测量距离。由于Kinect基线与激光扫描仪平行,那么Kinect到墙面的距离为Zr=Dm+dt,Zr即为Kinect对于该墙面的真实深度参考值。

本文中所选用的2D激光扫描仪为UTM-30LX激光扫描仪,最大测量范围270°,角度分辨率为0.25°,最大测量距离60 m,距离分辨率可达1 mm,可以满足本文的测量要求。

3 数据预处理

任何传感器在测量时都会产生随机误差。Kinect的随机误差体现在:某一深度下,任意一个像素点所测得的深度值往往在几个固定值之间"闪烁"的现象。与此同时,激光扫描仪获得的深度数据也是波动的。为了保证获得的深度信息的可靠性,需要进行数据的预处理,减小随机误差的影响。

3.1 激光数据的预处理

由于需要不断地对比DL与DR,采用卡尔曼滤波更加适应于激光扫描仪的数据预处理。卡尔曼滤波是以最小均方差作为估计的最佳准则,来寻求一种递推估计的算法,适合于实时处理和计算机运算。

对于卡尔曼滤波中所涉及的几个参数,过程方差Q,测量方差R和初始值的估计方差P,需要在卡尔曼滤波前初始化。过程方差Q,反映连续2个采样时刻的距离方差,考虑到激光扫描仪采样间隔极短,取Q=0.01;测量方差,反映激光传感器在某一距离下的测量精度,通过预先计算100组数据的方差获得,取R=11;初始值的估计方差,取与测量方差相等的值,即P=11。

卡尔曼滤波的效果如图3所示。可以看出,经过卡尔曼滤波的预处理之后,采样值的波动明显变小了,随机干扰得到了有效的抑制。

图3 卡尔曼滤波效果

3.2 Kinect的数据预处理

对于如图4所示的Kinect的深度值"闪烁"现象,可以统计各个离散的深度值的出现的频率,并且选择频率最高的那个深度值作为Kinect在该深度下该像素点的最终深度测量值。若有任意一个像素点,标记为(u,v),获得其在N次测量中的每一次的深度值Zi(u,v),那么对应的最终深度测量Zk(u,v)可由式(6)得到:

(6)

图4 Kinect深度值的随机误差

某像素点经过数据预处理的Kinect深度测量值序列如图5(a)所示,随着参考深度的增大,测量值逐渐偏离参考值。该点在不同深度下的深度测量的系统误差如图5(b)所示,通过Matlab拟合得到Kinect测量深度的系统误差曲线。可以发现,Kinect深度测量的系统误差曲线与参考深度的平方成正比,这与误差模型基本一致。

(a)预处理后的深度测量值

(b)不同深度下的系统误差图5 Kinect数据预处理效果

4 Kinect系统误差的补偿

微软推荐的Kinect工作范围是0.5~3.5 m,0.5 m以下处于Kinect的视野盲区,而3.5 m以上则超过了Kinect参考图像序列的最大距离,随机误差的影响过大。基于以上考虑,本文将系统误差的补偿范围限定在0.5~3.5 m。在之前的数据采集阶段,在0.5~3.5 m的范围内,每隔50 mm,获取Kinect和2D激光扫描仪的深度数据,以便进行深度曲线的拟合。

4.1 拟合深度曲线

Daniel[5]和Carolina[8]等人在拟合深度曲线时,都采用了指数关系模型。这种模型在测量深度值较小的情况下,取得了较好的补偿效果。但是这种模型并没有与Kinect的三角测量误差模型相关联,所以当测量深度较大时,补偿效果无法令人满意。

鉴于三角测量的误差模型中,Kinect的深度测量误差与物体距离的平方成正比,本文考虑将每一个像素点的真实深度参考值Zr(u,v)拟合为关于Kinect测量深度Zk(u,v)的二次曲线,即:

(7)

式中a(u,v)、b(u,v)、c(u,v)分别代表二次项系数、一次项系数和常数项。

拟合采用最小二乘法,图6显示了每一个像素点的深度曲线的二次项系数、一次项系数和常数项以及拟合的均方根误差。从均方根误差值可以看出,由于曲线拟合的范围在0.5~3.5 m,少数像素点的均方根误差较大,但整体的拟合效果是较好的。

(a) 一次项系数a(u,v)

(b) 二次项系数b(u,v)

(c) 一次项系数c(u,v)

(d) 均方根误差

4.2 拟合效果对比

确定了每个像素点的拟合函数之后,只要输入一个深度测量值,便可以得到该点经过补偿之后的深度估计值。选取1~3 m的深度范围,计算采用本文方法补偿后的所有像素点的深度值系统误差的标准差,并与原始误差和Daniel等人的方法做了对比,结果如图7所示。从图中可以发现,在1~3 m的深度范围内,补偿前的标准差随着深度的增加而急剧上升,经过补偿后的标准差基本在5 mm以下,这个效果相比Daniel等人的补偿效果显著提高了。

图7 系统误差补偿效果

选择2.5 m的深度,计算补偿前后深度图中各像素点的真实误差值,分别如图8和图9所示。通过对比可以发现,补偿后的深度误差明显比补偿前小了很多,像素点之间的差异得到了有效的抑制。

5 结束语

基于数学统计的Kinect系统误差补偿,其效果依赖于真实深度参考值的准确性和拟合曲线模型的适用性。

图8 补偿前各像素点的误差

图9 补偿后各像素点的误差

本文从这两方面着手,首先设计了基于2D激光扫描仪的真实深度参考值采集装置,并经过数据预处理,获取了可靠性较高的真实深度参考值;然后根据三角测量的误差模型,选取了二次曲线模型进行拟合,获得了更好的补偿效果。但是为每一个像素点都拟合一条二次曲线,总计需要存储90多万个参数。当进行补偿时,需要将这90多万个参数一一调用,影响了深度测量的实时性。如何简化二次曲线的数量,却不使补偿效果下降太多,是今后的工作方向。

[1] AVRAHAMI D,CONSOLVO S.RGB-D: Techniques and us-ages for Kinect style depth cameras [EB/OL].[2015-02-06].http://ils.intel-research.net/projec ts/rgbd.

[2] KHOSHELHAM K.Accuracy analysis of Kinect depth data.International Archives of the Photogrammetry,Remote Sensing and Spatial Information Sciences,Calgary,2011.

[3] BURRUS N.Kinect calibration[EB/OL].[2015-02-06].http://nicolas.burrus.name/ind ex.php/Research/KinectCalibration.

[4] SMISEK J,JANCOSEK M,PAJDLA T.3D with Kinect.IEEE ICCV Workshops,Barcelona.

[5] HERRERA D,KANNALA J,HEIKKIL A J.Joint depth and color camera calibration with distortion correction.IEEE Trans.Pattern Anal.Mach.Intell.,2012(34):2058-2064.

[6] KHOSHELHAM K,ELBERINK S O.Accuracy and resolution of Kinect depth data for indoor mapping applications.Sensors,2012,2(12): 1437-1454.

[7] GARCIA J,ZALEVSKY Z.Range mapping using speckle decorrelation.United States: 7433024.2008-10-07.

[8] CHOW J C K,LICHTI D D.Photogrammetric Bundle Adjustment With Self-Calibration of the Prime Sense 3D Camera Technology: Microsoft Kinect.Access,IEEE,2013(1):465-474.

Research on System Error Compensation in Depth Measurement of Kinect

ZHANG Hong,ZHENG Zi-jun,SUN Chun-long

(Jiangsu Provincial Key Laboratory of Advanced Food Manufacturing Equipment andTechnology,Jiangnan University,Wuxi 214122,China)

A statistics-based method was proposed in this paper in order to compensate the system error of Kinect sensor in depth measurement.In this method,a high-precision laser scanner was used to obtain a series of depth reference value in varying depths.According to the system error model,the Kinect depth data was mapped into the reference value with a second order polynomial.It was proved that the Kinect depth data after compensation is more accurate than before.

Kinect;depth;system error;statistics;laser scanner;curve fitting

2015-03-07 收修改稿日期:2015-07-02

TP391

A

1002-1841(2015)12-0120-03

张洪(1966—),博士,副教授,主要研究方向为机电测试与控制技术、机器人技术。E-mail:1105399774@qq.com 郑梓均(1990—),硕士研究生,主要研究移动机器人技术。E-mail:382319032@qq.com

猜你喜欢
系统误差参考值扫描仪
便携式膀胱扫描仪结合间歇性导尿术在脑卒中合并神经源性膀胱患者中的应用
中国健康成年人甘油三酯参考值的空间变异特征
妊娠妇女甲状腺功能血清指标参考值的建立
三维扫描仪壳体加工工艺研究
糖尿病患者应用生化检验的临床效果观察
基于ADS-B的航空器测高系统误差评估方法
基于Bagging模型的惯导系统误差抑制方法
美国甲状腺学会对于妊娠期亚临床甲减与低甲状腺素血症的治疗推荐
用系统误差考查电路实验
便携高速文件扫描仪