一种基于移动设备单目相机的场景重建方法及装置与流程

文档序号:12273149阅读:241来源:国知局
一种基于移动设备单目相机的场景重建方法及装置与流程

本发明涉及智能设备位姿态及计算机视觉领域,尤其是涉及一种基于移动设备单目相机的场景重建方法及装置。



背景技术:

随着智能移动设备的广泛应用,其内嵌的摄像头和传感器也越来越丰富。其中,智能手机的摄像头仍主要用于场景拍照和视频通话。然而,随着三维技术的发展以及消费者对手机成像功能越来越高的要求,通过手机设备进行场景重建和目标测距得到了更多地关注。

传统的场景重建技术主要以双目相机为基础,通过相机标定获得内外参数进而建立图像像素点坐标与三维空间坐标的对应关系,从而实现场景重建和目标测距。而常见的智能手机只含一个摄像头,这种方法并不适用。

随着智能手机硬件设备完善,加速度计、陀螺仪、磁力计等传感器越来越普及,其测量精度也越来越高。利用这些传感器数据可对手机准确定位和有效测量智能手机各时刻的姿态,但是无线实现场景重建等功能。



技术实现要素:

本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种基于移动设备单目相机的场景重建方法及装置。用同一智能设备单目相机(含单个摄像头)在不同位置拍摄同一场景相同物体的思想来模拟双目立体视觉,即:将智能设备t1时刻(第一次)拍照的位置设为相机1所处位置,将智能设备t2时刻(第二次)拍照位置设为相机2所处位置;通过对这两个时刻拍摄图像进行数据处理得到单目相机内外参数,然后通过得到的稠密视觉差值得到t1时刻图像的任意位置的视觉差值,进行三维场景重建。

本发明采用的技术方案如下:

一种基于移动设备单目相机的场景重建方法包括:

步骤1:通过移动设备的单目相机拍摄同一物体的两个不同位置的图片,即t1时刻拍摄第一张图片,t2时刻拍摄第二张图片;移动设备从t1时刻开始记录时长为X的传感器设备数据;t2=t1+X;

步骤2:计算移动设备t1时刻的初始姿态矩阵Cb1n;对传感器设备数据进行融合,用以更新姿态,得到t2时刻的终止姿态矩阵Cb2n

步骤3:根据初始姿态矩阵Cb1n,终止姿态矩阵Cb2n得到两个位置的旋转矩阵根据旋转矩阵计算相机外参矩阵R;同时得到根据传感器中加速度计得到的参数计算相机外参矩阵T;

步骤4:根据相机内参矩阵M和外参矩阵T、R,进行拍摄场景重建。

进一步的,所述步骤2具体过程是:

步骤21:在移动设备的单目相机第一次拍照时,移动设备处于静止状态:(移动设备坐标系中加速度计在移动设备坐标轴的x,y,z三个轴的加速度分量只受重力加速度影响)根据移动设备的传感器数据得到移动设备坐标系在当前时刻相对于地理坐标系的初始姿态矩阵Cb1n;再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0};

步骤22:将传感器数据中角速度数据减去零点漂移Offset后的传感器数据进行滤波处理,对滤波后的传感器数据进行融合处理以互补校正,再用更新算法计算数据采集时刻智能设备姿态矩阵,直到更新至t2时刻,此时计算得到智能设备的姿态矩阵即为Cb2n

进一步的,所述步骤3具体过程是:

步骤:31:姿态更新同时计算,计算地理坐标系下,加速度数据分量a={ax,ay,az},并且加速度数据减去重力加速度得到智能设备在地理坐标系下的实际加速度a'={ax,ay,az-g}={a'x,a'y,a'z};ax,ay,az指的是地理坐标系中x,y,z三轴加速度数据分量;

步骤32:旋转矩阵R计算:通过初始矩阵Cb1n和终止姿态矩阵Cb2n即可得到两个位置间的旋转矩阵公式如下:

其中表示地理坐标系转换为智能设备坐标系的旋转矩阵。

步骤33:平移矩阵T计算:通过对步骤32得到的实际加速度a'进行二次积分即可得到t2时刻智能设备单目相机相对于t1时刻智能设备单目相机拍照时刻在地理坐标系下三轴的位移T'={sx,sy,sz};位移s计算公式如下所示:

其中sx,sy,sz指的是位移s在地理坐标系下的三轴坐标;

设在地理坐标系下,智能设备t1时刻拍照位置坐标为A1、t2时刻拍照位置坐标为A2,通过旋转关系即可将地理坐标系下的位移转换为世界坐标系下的位移ΔA=A2-A1;因此得到t1时刻、t2时刻拍照位置在世界坐标系下的位移为此时平移矩阵T=-ΔA。因此,平移矩阵T和旋转矩阵R则可以表达成:

进一步的,所述步骤4具体包括:

步骤41:根据步骤3得到的R、T,结合移动设备单目相机焦距f、相机靶面尺寸w*h以及图像大小width*height。那么,单目相机的内参矩阵M即可表示为:

dx=w/width,dy=h/height

cx=width/2,cy=height/2

w*h表示单目相机靶面宽度和高度值,单位是毫米;width*height表示t1时刻单目相机拍摄的第一图像宽度方向像素个数和高度方向像素个数;

步骤42:利用相机内参矩阵M中智能设备单目相机光心横坐标cx、纵坐标cy、以及T、R对t1时刻采集的图像img1、t2时刻采集的图像img2进行处理;

步骤43:获取t1时刻采集的图像img1、t2时刻采集的图像img2的稠密视差图;或先得到img1和img2的稀疏视差图,再利用插值算法得到稠密视差图,

步骤44:根据稠密是插图得到t1时刻拍照图像中任意一点(xi,yj)所在位置的视差值di;根据视差值di计算t1时刻采集的图像场景中每点的三维空间坐标,实现场景重建,空间三维点坐标计算公式如下:

其中,B为平移矩阵T中的Tx分量,xi,yi表示第一幅图图像像素点横纵坐标,cx,cy表示智能设备单目相机光心横纵坐标,f表示单目相机的像素焦距,d表示t1时刻拍照图像中任意一点(xi,yj)所在位置的视差值。

一种基于移动设备单目相机的场景重建装置包括:

图像采集模块,用于通过移动设备的单目相机拍摄同一物体的两个不同位置的图片,即t1时刻拍摄第一张图片,t2时刻拍摄第二张图片;移动设备从t1时刻开始记录时长为X的传感器设备数据;t2=t1+X;

姿态矩阵计算模块,用于计算移动设备t1时刻的初始姿态矩阵Cb1n;对传感器设备数据进行融合,用以更新姿态,得到t2时刻的终止姿态矩阵Cb2n

相机外参数计算模块,用于根据初始姿态矩阵Cb1n,终止姿态矩阵Cb2n得到两个位置的旋转矩阵根据旋转矩阵计算相机外参矩阵R;同时得到根据传感器中加速度计得到的参数计算相机外参矩阵T;

场景重建模块,用于根据相机内参矩阵M和外参矩阵T、R,同时读取移动设备相机焦距f、相机靶面尺寸w*h以及两幅图像,进行拍摄场景重建。

进一步的,所述姿态矩阵计算模块具体处理过程是:

初始姿态矩阵计算模块:在移动设备的单目相机第一次拍照时,移动设备处于静止状态:(移动设备坐标系中加速度计在移动设备坐标轴的x,y,z三个轴的加速度分量只受重力加速度影响)根据移动设备的传感器数据得到移动设备坐标系在当前时刻相对于地理坐标系的初始姿态矩阵Cb1n;再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0};

终止姿态矩阵计算模块:将传感器数据中角速度数据减去零点漂移Offset后的传感器数据进行滤波处理,对滤波后的传感器数据进行融合处理以互补校正,再用更新算法计算数据采集时刻智能设备姿态矩阵,直到更新至t2时刻,此时计算得到智能设备的姿态矩阵即为Cb2n

进一步的,所述相机外参数计算模块具体处理过程是:

实际加速度计算模块,用于姿态更新同时计算,计算地理坐标系下,加速度数据分量a={ax,ay,az},并且加速度数据减去重力加速度得到智能设备在地理坐标系下的实际加速度a'={ax,ay,az-g}={a'x,a'y,a'z};ax,ay,az指的是地理坐标系中x,y,z三轴加速度数据分量;

旋转矩阵R计算模块,用于通过初始矩阵Cb1n和终止姿态矩阵Cb2n即可得到两个位置间的旋转矩阵公式如下:

其中表示地理坐标系转换为智能设备坐标系的旋转矩阵。

平移矩阵T计算模块:通过对步骤32得到的实际加速度a'进行二次积分即可得到t2时刻智能设备单目相机相对于t1时刻智能设备单目相机拍照时刻在地理坐标系下三轴的位移T'={sx,sy,sz};位移s计算公式如下所示:

其中sx,sy,sz指的是位移s在地理坐标系下的三轴坐标;

设在地理坐标系下,智能设备t1时刻拍照位置坐标为A1、t2时刻拍照位置坐标为A2,通过旋转关系即可将地理坐标系下的位移转换为世界坐标系下的位移ΔA=A2-A1;因此得到t1时刻、t2时刻拍照位置在世界坐标系下的位移为此时平移矩阵T=-ΔA。因此,平移矩阵T和旋转矩阵R则可以表达成:

进一步的,所述场景重建模块具体处理包括:

相机坐标获取模块,用于根据R、T,结合移动设备单目相机焦距f、相机靶面尺寸w*h以及图像大小width*height。那么,单目相机的内参矩阵M即可表示为:

dx=w/width,dy=h/height

cx=width/2,cy=height/2

w*h表示单目相机靶面宽度和高度值,单位是毫米;width*height表示t1时刻单目相机拍摄的第一图像宽度方向像素个数和高度方向像素个数;

图像校正处理模块,用于利用相机内参矩阵M中智能设备单目相机光心横坐标cx、纵坐标cy、以及T、R对t1时刻采集的图像img1、t2时刻采集的图像img2进行处理;

稠密视差值计算模块,用于获取t1时刻采集的图像img1、t2时刻采集的图像img2的稠密视差图;或先得到img1和img2的稀疏视差图,再利用插值算法得到稠密视差图;

场景三维重建模块,用于根据稠密是插图得到t1时刻拍照图像中任意一点(xi,yj)所在位置的视差值di;根据视差值di计算t1时刻采集的图像场景中每点的三维空间坐标,实现场景重建,空间三维点坐标计算公式如下:

其中,B为平移矩阵T中的Tx分量,xi,yi表示第一幅图图像像素点横纵坐标,cx,cy表示智能设备单目相机光心横纵坐标,f表示单目相机的像素焦距,d表示t1时刻拍照图像中任意一点(xi,yj)所在位置的视差值。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

智能设备实现场景重建还可实现智能设备至目标的距离测量。本发明所实现功能基于移动终端,不受时间和空间限制,方便快捷。此外,本发明所生成的场景图像还可进行后续开发利用。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是手机坐标系(当智能设备是手机时)。

图2是地理坐标系。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

本发明相关说明:

1、智能设备坐标系:x轴:由智能设备左边缘指向右边缘。y轴:由智能设备上边缘指向下边缘。z轴:由智能设备内部指向外部。其中,智能设备加速度计和陀螺仪数据都以智能设备坐标系为坐标系。智能设备可以是带有单目相机(摄像头)的手机、ipad等,带有加速度计、陀螺仪、磁力计等传感器,并且能进行数据处理的设备。

世界坐标系是将智能设备第一次拍照时智能设备坐标系作为世界坐标系。

地理坐标系:X轴:与设备所在位置的地面相切,指向东方Y轴:与设备所在位置的与地面相切,指向地磁北极Z轴:垂直于地面,由地心指向天空。

地理坐标系中的磁力计等获得重力加速度数据,或者根据先验值得到重力加速度数据。这个数据是本专利的基础数据。通过以下两种方式得到初始姿态、终止姿态、R以及T;

1)可以通过重力加速度数据+加速度数据

2)、重力加速度数据+加速度数据+角速度数据。

2、更新算法是四元数姿态以及与四元数姿态更新算法相同作用的算法。

3、角速度数据通过陀螺仪测量得到。在智能设备静止时刻,智能设备内陀螺仪理论上在三个轴的分量应为0,将此时角速度(通过陀螺仪获取)三个轴的分量数据作为零点漂移Offset={xgyr0,ygyr0,zgyr0}。

4、滤波处理指的是卡尔曼滤波算法等。

5、方向余弦一个向量在坐标系中的位置也可以用方向余弦表示,也就是这个向量分别到三个坐标轴的夹角余弦值,实际上就是这个向量到各个坐标轴的投影,角度范围是0~π(维基)。所以推广到载体坐标系和参考坐标系当中,我们就有了载体坐标轴xyz分别与参考轴XYZ的方向余弦,这里就是所说的方向余弦矩阵了,它是由两组不同的标准正交基的基底向量之间的方向余弦所形成的3x3矩阵。方向余弦矩阵可以用来表达一组标准正交基与另一组标准正交基之间的关系。余弦矩阵的列表示载体坐标系中的单位矢量在参考坐标系中的投影,分量形式为

6、传感器设备是移动设备的部件,包括加速度计、陀螺仪以及磁力计等设备。若传感器数据包括加速度数据、角速度数据以及重力加速度数据,则计算初始姿态矩阵Cb1n和零点漂移Offset={xgyr0,ygyr0,zgyr0}具体过程是:读取智能设备t1时刻传感器数据。根据加速度计数据和重力加速度数据计算t1时刻智能设备坐标系的x,y,z轴与地理坐标系X,Y,Z轴夹角,并将夹角转换为智能设备初始姿态矩阵Cb1n。再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0}。

本发明具体过程是:将智能设备从第二个位置移动到第一个位置的位移作为与双目立体视觉中平移矩阵T计算的参考,将智能设备从第二个位置转换到第一个位置的坐标变换矩阵作为与双目立体视觉对应的旋转矩阵R,R和T即双目相机的外参。平移矩阵T、旋转矩阵R与智能设备在不同位置的姿态矩阵密切相关。

在智能设备姿态矩阵计算过程中涉及三个坐标系:智能设备坐标系b、地理坐标系n以及世界坐标系w。智能设备坐标系b是智能设备自身的坐标系,地理坐标系n是智能设备姿态的参考,世界坐标系w是场景重建的参考坐标系。本专利取智能设备第一次拍照时摄像头所在光心位置为世界坐标系原点,世界坐标系三轴与此时智能设备坐标系三轴方向重合。智能设备坐标系和地理坐标系示意图如图1所示。智能智能设备的姿态矩阵是指智能智能设备坐标系b至地理坐标系n的坐标变换矩阵,用Cbn表示。

(1)计算智能设备在两个不同位置间的平移矩阵T和旋转矩阵R(T和R均为相机外参)

A、计算手机姿态矩阵

第一步:智能设备竖直放置,待稳定后拍摄第一张图片,命为img1。从拍照时刻t1开始以一定时间间隔记录手机加速度计和陀螺仪数据。

第二步:移动智能设备,对相同场景进行第二次拍照,命为img2。在拍照完成时刻t2结束记录各传感器数据。

第三步:采用扩展卡尔曼滤波算法对加速度计和角速度数据进行滤波处理。

第四步:智能设备姿态矩阵计算。智能手机姿态矩阵包括初始姿态矩阵和终止姿态矩阵。

A、初始姿态矩阵计算

读取智能手机t1时刻传感器数据。根据加速度数据和重力加速度数据计算t1时刻手机坐标系的x,y,z轴与地理坐标系X,Y,Z轴夹角,并将夹角转换为手机初始姿态矩阵Cb1n。再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0}。

B、计算终止姿态矩阵Cb2n

(a)传感器数据融合更新手机姿态

将角速度数据减去零点漂移Offset,利用卡尔曼滤波算法对滤波后的加速度数据和角速度数据进行融合处理以互补校正,再用四元数姿态更新算法计算数据采集时刻智能设备姿态矩阵,直到更新至t2时刻,此时计算得到的姿态矩阵即为Cb2n。(本专利姿态更新方法也不限于四元数更新法)

在姿态更新的同时,计算加速度x,y,z三轴数据在地理坐标系下的分量a={ax,ay,az},减去重力加速度数据得到智能设备在地理坐标系下的实际加速度a'={ax,ay,az-g}={a'x,a'y,a'z}。(g为重力加速度)

(b)计算两个位置的平移矩阵T和旋转矩阵R

旋转矩阵R计算:通过初始矩阵Cb1n和终止姿态矩阵Cb2n即可得到两个位置间的旋转矩阵公式如下:

平移矩阵T计算:通过对步骤(a)得到的实际加速度a'进行二次积分即可得到t2时刻智能设备单目相机相对于t1时刻智能设备单目相机拍照时刻在地理坐标系下三轴的位移T'={sx,sy,sz};位移s计算公式如下所示:

其中sx,sy,sz指的是位移s在地理坐标系下的三轴坐标;

设在地理坐标系下,智能设备t1时刻拍照位置坐标为A1、t2时刻拍照位置坐标为A2,通过旋转关系即可将地理坐标系下的位移转换为世界坐标系下的位移ΔA=A2-A1;因此得到t1时刻、t2时刻拍照位置在世界坐标系下的位移为此时平移矩阵T=-ΔA。(通过旋转关系即可将地理坐标系下的坐标转换为世界坐标系下的坐标是本领域公知技术)。

因此,平移矩阵T和旋转矩阵R则可以表达成:

(2)场景三维重建

具体步骤如下:

第一步:得到相机内参矩阵M和外参矩阵R、T。读取智能设备单目相机焦距f、靶面尺寸w*h(mm为单位)以及图像大小width*height(像素为单位))。那么,相机的内参矩阵M即可表示为:

dx=w/width,dy=h/height

cx=width/2,cy=height/2

步骤(1)中得到的智能设备姿态数据T和R即为所要求取的相机外参数。

第二步:利用智能设备单目相机内外参数对采集的第一、二幅图像进行极线校正处理,使第一和第二幅图像严格地行对齐。

第三步:获取t1时刻采集的图像img1、t2时刻采集的图像img2的稠密视差图;或通过sift特征提取与匹配算法等方法先得到img1和img2的稀疏视差图,再利用双线性插值得到稠密视差图dispMap。

第四步:根稠密视差图得到t1时刻拍照图像中任意一点(xi,yj)所在位置的视差值di;根据视差值di计算t1时刻采集的图像场景中每点的三维空间坐标,实现场景重建,空间三维点坐标计算公式如下:

其中,B为平移矩阵T中的Tx分量,xi,yi表示图像像素点横纵坐标,cx,cy表示手机摄像头光心横纵坐标,f表示摄像头的像素焦距,d表示点(x1,y1)所在位置的视差值。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

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