Kinect深度图与RGB摄像头的标定与配准

自从有了Kinect,根据深度图提取前景就非常方便了。因此出现了很多虚拟现实、视频融合等应用。但是,Kinect自身的RGB摄像头分辨率有限,清晰度也不及一些专业摄像头,因此有了用第三方摄像头代替Kinect摄像头的想法。现在的问题是,如何将Kinect的深度图与第三方摄像头的RGB图像对准?

我们知道,当使用Kinect的RGB时,有方便的MapColorCoordinatesToDepth()和MapDepthCoordinatesToColor()方法可以使用,这些函数将深度图和RGB对准到一起,从而可根据深度图准确的提取出RGB中的前景。但打算使用第三方摄像头时,这些函数都没有用了,它们不可能知道我们所用摄像头的参数以及空间位置,因此只能靠自己标定的方法解决这一问题。

在标定之前,先要固定好Kinect和摄像头的位置,让深度摄像头和RGB摄像头的像平面尽量平行,距离也不要隔得太远,就像下面这样(做得很丑,请见谅-_-!!):

 

一、RGB摄像头的标定

RGB摄像头的标定想必大家都很熟悉,最常用的就是棋盘法。用待标定的摄像头拍摄多幅不同视角下的棋盘图片,将这些图片扔给OpenCV或Matlab,从而计算出该摄像头的内参以及对应于每一幅图像的外参。这里就写写我在标定过程中的一些感受和经验吧。

1、标定所用的棋盘要尽量大,至少要有A3纸的大小;

2、棋盘平面与摄像头像平面之间的夹角不要太大,控制在45度以下;

3、棋盘的姿势与位置尽可能多样化,但相互平行的棋盘对结果没有贡献;

4、用于标定的图片要多于10张;

5、注意设置好摄像头的分辨率,长宽比最好和深度图的相同,比如1280x960(4:3)。

以下是一些用于标定的样图:

 

二、深度摄像头的标定

深度摄像头看起来和RGB摄像头差别很大,实际上有很多相似之处。就Kinect而言,其通过一个红外散斑发射器发射红外光束,光束碰到障碍物后

你可能感兴趣的:(AI,and,Image,Processing,Kinect,计算机视觉,摄像头,标定,Kinect,深度图,配准)