一种基于虚拟相机的投影散斑校正方法与流程

文档序号:11144728阅读:730来源:国知局
一种基于虚拟相机的投影散斑校正方法与制造工艺

本发明属于立体视频中基于结构光的复杂场景采样与重建领域,特别涉及相机和投影机参数不同且任意位置时的场景重建。



背景技术:

人类感知外部事物的主要方式是通过视觉,有研究表明,人类获取的所有信息中的80%是来自视觉系统。人类观察到的物体具有立体感,是因为人类的视觉系统能够从双眼看到的图像中计算场景深度值、恢复场景三维信息。但是在传统的2D视频中,深度信息没有被记录下来,导致视觉系统无法从平面图像中获得三维信息,使用户难以获得立体感和临场感。3D视频技术的出现就是为了保留场景深度信息,使用户在获取场景纹理信息的同时也能感受到场景的深度信息,从而产生立体感受,给用户带来真实的身临其境的感觉。3D视频中最重要的前提是深度获取,目前很多国家的研究机构提出了各种深度获取方法并且已经搭建了系统,如MIT、斯坦福大学、德国HHI以及名古屋大学等。

由于传统双目视觉无法获取弱纹理区域的深度值,目前最广泛采用的深度获取方法是基于结构光的主动视觉技术。基本的结构光测量系统由一个相机和一个投影机组成,投影机投射经过编码的散斑到场景表面,相机拍摄带有散斑的场景图像,计算投射散斑和拍摄到的散斑之间的偏移量,可以获得场景的深度信息。微软公司研制的Kinect是利用结构光技术获取深度的代表,利用光编码技术,结合红外投影机和红外CMOS传感器直接获取深度值。Kinect是成熟的商用产品,灵活性较差,并且深度精度和探测距离有限制。实际应用中常用相机和投影机搭建结构光深度测量系统。

由于相机和投影机参数不同,并且摆放位置很难像Kinect中的相机和红外收发器一样严格对齐,所以相机拍摄到的投影区域与设计的投影散斑形状不同。为了便于在水平极线上进行匹配,需要对投影散斑进行校正,使其与相机拍摄到的投影区域形状相同并且像素大小相同。在传统双目立体视觉中,图像校正前要对相机和投影机进行标定,获得其内外参数。标定过程是比较复杂的,需要多方位拍摄标定板图像,进行大量计算,并且标定的精度对图像校正的结果影响较大。这会使深度信息获取的过程变的复杂并且结果稳定性变差,不能适应实际中方便快捷的使用。



技术实现要素:

本发明针对搭建结构光测量系统的复杂性问题,设计了一种基于虚拟相机的投影散斑校正方法,所述方法构造了一个虚拟相机。由于虚拟相机和真实相机的图像像素大小相同,可以直接匹配计算深度图,二者图像之间存在水平偏移,这个偏移量可由图像坐标与世界坐标之间的比例关系计算。将投影散斑变换到虚拟相机,即可得到校正后的散斑图像。

本发明提供的一种基于虚拟相机的投影散斑校正方法,包括如下步骤:

步骤一,设计带有棋盘格边界的随机散斑;

步骤二,投影机投射散斑到场景中,相机拍摄带有散斑的场景图像,确定散斑上棋盘格角点的位置;

步骤三,在相机图像平面和过投影机焦点的屏幕法线相交位置构造虚拟相机的成像位置,虚拟相机在该位置获取到校正后的散斑图像,该图像和真实相机拍摄的散斑图像形状相同并且像素大小一致,计算虚拟相机上的图像平移量,确定校正后图像的位置;

步骤四,计算校正前的投影散斑和校正后的散斑图像之间的单应性矩阵,确定校正后图像的灰度值;

步骤五,结合第三步得到的校正图像的位置和第四步得到的校正图像灰度,生成最终的校正图像。

本发明的优点和积极效果在于:

(1)结合相机和投影机的标定和校正过程,并对这两个过程做了简化,用确定的对应点直接进行图像校正,避免了标定中计算相机和投影机内外参数的过程。

(2)适用于实际中的各种情况,例如投影机投射出的图像变形、相机与投影机视角范围不同、相机与投影机图像平面不平行等情况。

(3)灵活性高,可以方便的增加分辨率来提高深度精度、增加投射光强来提高深度检测距离,适用于工业和科研领域。

附图说明

图1是本发明中基于虚拟相机的投影散斑校正方法进行图像校正和匹配计算深度值的示意图;

图2是本发明中设计的投影散斑图像示意图;

图3是本发明中构造的虚拟相机位置示意图;

图4是本发明中计算虚拟相机图像偏移量的示意图。

具体实施方式

下面将结合附图和实施例对本发明作进一步的详细说明。

如图1所示,本发明提供一种基于虚拟相机的投影散斑校正方法,所述投影散斑校正方法中,在相机图像平面与过投影机焦点的屏幕法线相交位置构造虚拟相机,用来接收校正后的散斑图像;其后,计算校正图像和相机图像之间的平移量,结合相机图像提供的投影散斑位置信息,确定校正图像中投影散斑区域的位置。通过对应点计算投影散斑和校正图像之间的单应性矩阵,将投影散斑图像变换到虚拟相机中,获得校正后的图像。将相机图像与校正图像进行匹配,得到场景深度图。具体实现步骤如下说明。

步骤一,设计带有棋盘格边界的随机散斑。

如图2所示,所设计的散斑结合了随机散斑和棋盘格散斑的优点,结合并简化了标定和校正过程。棋盘格区域的设计是相机标定过程中标定板的简化,只保留在散斑边缘区域。由于在对物体进行深度测量时,投影散斑完全覆盖物体,边缘区域不会受到物体影响,可以正确提取对应点。此外,相机拍摄的图像在图像边缘区域畸变较严重,将棋盘格散斑设计在边缘区域能更好地提取畸变特征,从而更容易消除畸变。

步骤二,投影机投射散斑到场景中,相机拍摄带有散斑的场景图像,确定散斑上棋盘格角点的位置。

相机拍摄到的图像中的棋盘格角点检测可以使用OpenCV中的函数完成,保存相机图像中角点的位置。

投影机投射的散斑是在步骤一中设计的,其中的棋盘格角点可以直接获得。保存投影散斑中角点的位置,得到投射前和投射后散斑的对应点。

步骤三,在相机图像平面和过投影机焦点的屏幕法线相交位置构造虚拟相机的成像位置,计算虚拟相机上的图像平移量,确定校正后图像的位置。

相机图像平面是指真实相机拍摄的图像所在的平面。虚拟相机是设想出来的一个成像位置,在这个位置上获取的图像和真实相机拍摄的散斑区域形状相同、像素大小相等,二者能够直接进行匹配获取深度,所以虚拟相机的图像就是校正后的散斑图像。虚拟相机的图像平面中心位于相机图像平面和过投影机焦点的屏幕法线相交位置,主要因为以下两点因素:

(1)校正后的图像和相机拍摄到的图像形状相同并且像素大小一致,则要求虚拟相机和真实相机的视角范围相同、视角方向相同。只有在与相机平面共面的位置才能保证二者图像能够匹配。

(2)校正图像能与相机图像进行匹配获取场景深度信息,则要求虚拟相机位置能正确反应出视差。由于视差和相机与投影机的基线距离有关,设置虚拟相机的位置位于相机图像平面和过投影机焦点的屏幕法线上,竖直位置与投影机相同,水平方向上和相机基线距离不变。

综上所述,如图3所示,表示了实际应用中相机和投影机视角范围不同且图像平面不平行的情况。V是构造的虚拟相机的焦点位置,C是真实相机焦点,P是投影机焦点。为了更好地说明拍摄到的图像位置,在相机前放置了一个投影屏幕,从P出发的两条斜线代表投影机的视角范围,与投影屏幕围成的三角形是投影区域,在真实相机中只占整幅图像的一部分。如图1所示,真实相机图像和校正图像存在水平方向偏移,这个偏移量反映了相机焦点到投影屏幕的距离。

由于二维图像变换不能保留距离信息,在第一次使用本方法时需测量相机到投影屏幕的距离,如果要获得相对距离,而不是精确的距离值,相机到投影屏幕的距离可设为估计值。

真实相机图像和校正图像水平方向的偏移量通过世界坐标系和图像坐标系之间的比例关系计算。如图4所示,Z代表相机焦点到图像平面的距离,f表示相机的焦距,dw表示相机和投影机水平方向基线距离,即在世界坐标系中的平移距离,可以在硬件系统中测量,di表示图像坐标系中水平方向的偏移量,计算方法如公式(1)所示。

公式(1)计算出的di的单位是以世界坐标系中厘米为单位的,图像坐标系的单位是像素,从参考手册中查得相机像素大小,记为s,则在图像平面中偏移的像素数为di*s。

结合真实相机中确定的投影区域形状和图像平面中平移的像素数,校正图像的位置可以被唯一确定。

步骤四,利用特征点计算校正前的投影散斑和校正后的散斑图像之间的单应性矩阵,确定校正后图像的灰度值;

利用以上两个步骤的结果,步骤二得到了校正前后的对应点,步骤三得到了校正图像的位置,需要计算校正前的投影散斑和校正后图像上每个点的对应关系,即单应性矩阵。二维图像之间的单应性矩阵是3阶方阵,且右下角元素值为1,如表达式(2)。

设校正前投影散斑中的点为pi=(xi,yi),对应校正后的点为pi′=(xi′,yi′),则二者满足以下公式关系:

[xri yri zri]T=H*[xi yi 1]T (3)

公式(3)中xri,yri和zri表示校正后的点在三维空间中的坐标。公式(4)将三维坐标恢复为二维图像中的坐标。

设v为H中未知数连接成的向量,即v=[a b c d e f g h]T,v为H按行连接成的单应性向量。公式(3)和(4)可以表示成矩阵方程,如下:

为了确定H中的8个未知数,至少需要确定4个对应点,每个对应点包含横坐标和纵坐标两个方程。在实际应用中为了利用最小二乘法消除噪声对对应点提取的影响,通常确定的对应点个数大于4个。设确定了n个对应点,构造关于v的矩阵方程如下:

A*v=b (6)

公式(6)中的A是公式(5)扩展至多行的情况,如下:

公式[6]中的b是校正后图像中特征点坐标连成的向量,b=[x1′ y1′ … xn′ yn′]T

由于公式(6)是超定方程,利用最小二乘法求解如下:

v=(ATA)-1ATb (8)

由于v中的变量是H中的未知数,可以确定单应性矩阵,将校正前投影散斑中所有点变换到校正后的图像中。

步骤五,结合第三步得到的校正图像的位置和第四步得到的校正图像灰度,生成最终的校正图像。

如图1右下角所示,将生成的校正图像直接与真实相机拍摄的图像进行逐行匹配,得到场景的深度图。

实施例

该实施例中,相机和投影机的数量均为1,采用本发明提供的投影机散斑校正方法对投影散斑进行校正,与相机拍摄到的散斑进行匹配得到高质量的场景深度图,具体步骤如下:

步骤一,设计带有棋盘格边界的随机散斑;

随机散斑的大小根据投影机的输入图像大小进行设计,本系统中设置为912*1140像素。如图2所示,由MATLAB或C++生成0-1随机矩阵,1对应的位置为白色,0对应的位置为黑色。边缘的棋盘格区域宽度20像素。

步骤二,投影机投射散斑到场景中,相机拍摄带有散斑的场景图像,确定散斑上棋盘格角点的位置;

选取棋盘格4个角点和4个边中点的黑白相交的角点作为特征点,这8个点的按顺时针顺序,依次为左上、中上、右上、右中、右下、中下、左下和左中,本发明实施例中对应的坐标如下:(10,10)、(10,449)、(10,906)、(549,906)、(1134,906)、(1134,449)、(1134,10)、(549,10)。

相机的分辨率是1280*960,拍摄到的图像中这8个点的坐标如下:(25,182)、(32,619)、(34,1069)、(297,1074)、(590,1081)、(588,617)、(586,166)、(289,176)。

步骤三,在相机图像平面和过投影机焦点的屏幕法线相交位置构造虚拟相机,计算虚拟相机上的图像平移量,确定校正后图像的位置;

在相机前方120cm的位置放置投影屏幕,相机中拍摄到的投影图像形状与校正后的形状相同,只是水平位置不同。广角相机焦距为5mm,测量得相机与投影机水平方向基线距离为5.7cm,相机像素大小为3.75um,由公式(1)计算得平移量0.2375mm,图像平面平移距离63像素。由于投影机在相机左侧,校正后图像向右平移63像素,至此,校正图像的位置已确定。

步骤四,计算校正前的投影散斑和校正后的散斑图像之间的单应性矩阵,确定校正后图像的灰度值;

将步骤二中得到的8组对应点代入公式(6)中,由公式(8)解得未知数向量如下:

v=[0.4822 0.0111 20.5249 -0.0190 1.0005 172.7887 0 0]T

进而得到单应性矩阵如下:

将(9)代入公式(3)和(4),可得到校正后的散斑图像。

考虑到将原始图像中的点变换到校正图像中不一定能覆盖全部校正图像区域,校正图像中可能会有空洞,还需额外的图像修复方法。实际应用中采用逆向单应性矩阵,从校正图像中计算原始图像(校正前图像)中对应的像素值来填充,如下式:

[xri yri zri]T=H-1*[xi′ yi′ zi′]T (10)

公式(11)中得出的横纵坐标一般不会在整数位置,由于双线性插值得到的像素灰度接近真实相机中两个像素之间的模糊,采用双线性插值得到亚像素级灰度值,得到最终的校正图像。

步骤五,结合第三步得到的校正图像的位置和第四步得到的校正图像灰度,生成最终的校正图像。

用校正后的散斑图像和真实相机拍摄到的图像按行进行匹配,能够获得场景的深度值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1