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

文档序号:12273149阅读:来源:国知局

技术特征:

1.一种基于移动设备单目相机的场景重建方法,其特征在于包括:

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

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

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

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

2.根据权利要求1所述的一种基于移动设备单目相机的场景重建方法,其特征在于所述步骤2具体过程是:

步骤21:在移动设备的单目相机第一次拍照时,移动设备处于静止状态:根据移动设备的传感器数据得到移动设备坐标系在当前时刻相对于地理坐标系的初始姿态矩阵Cb1n;再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0};

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

3.根据权利要求1所述的一种基于移动设备单目相机的场景重建方法,其特征在于所述步骤3具体过程是:

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>C</mi> <mi>n</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mi>v</mi> <mo>=</mo> <mstyle> <mrow> <msubsup> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mn>1</mn> </mrow> <mrow> <mi>t</mi> <mn>2</mn> </mrow> </msubsup> <msup> <mi>a</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow> </mstyle> </mtd> </mtr> <mtr> <mtd> <mi>s</mi> <mo>=</mo> <mstyle> <mrow> <msubsup> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mn>1</mn> </mrow> <mrow> <mi>t</mi> <mn>2</mn> </mrow> </msubsup> <mi>v</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow> </mstyle> </mtd> </mtr> </mtable> </mfenced>

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

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

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>T</mi> <mo>=</mo> <mo>{</mo> <msub> <mi>T</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>T</mi> <mi>y</mi> </msub> <mo>,</mo> <msub> <mi>T</mi> <mi>z</mi> </msub> <mo>}</mo> <mo>=</mo> <mo>{</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>x</mi> </msub> <mo>,</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>y</mi> </msub> <mo>,</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>z</mi> </msub> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>R</mi> <mo>=</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> <mrow> <mi>b</mi> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow>

4.根据权利要求1所述的一种基于移动设备单目相机的场景重建方法,其特征在于所述步骤4具体包括:

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

<mrow> <mi>M</mi> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>f</mi> <mo>/</mo> <mi>d</mi> <mi>x</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>c</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>f</mi> <mo>/</mo> <mi>d</mi> <mi>y</mi> </mrow> </mtd> <mtd> <msub> <mi>c</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

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时刻采集的图像场景中每点的三维空间坐标,实现场景重建,空间三维点坐标计算公式如下:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Y</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Z</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mi>f</mi> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> </mtable> </mfenced>

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

5.一种基于移动设备单目相机的场景重建装置,其特征在于包括:

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

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

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

场景重建模块,用于根据相机内参矩阵M和外参矩阵T、R,进行拍摄场景重建。

6.根据权利要求5所述的一种基于移动设备单目相机的场景重建装置,其特征在于所述姿态矩阵计算模块具体处理过程是:

初始姿态矩阵计算模块:在移动设备的单目相机第一次拍照时,移动设备处于静止状态:根据移动设备的传感器数据得到移动设备坐标系在当前时刻相对于地理坐标系的初始姿态矩阵Cb1n;再利用t1时刻角速度数据得到零点漂移Offset={xgyr0,ygyr0,zgyr0};

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

7.根据权利要求5所述的一种基于移动设备单目相机的场景重建装置,其特征在于所述相机外参数计算模块具体处理过程是:

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>=</mo> <msubsup> <mi>C</mi> <mi>n</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <mrow> <msubsup> <mi>C</mi> <mi>n</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mi>v</mi> <mo>=</mo> <mstyle> <mrow> <msubsup> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mn>1</mn> </mrow> <mrow> <mi>t</mi> <mn>2</mn> </mrow> </msubsup> <msup> <mi>a</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow> </mstyle> </mtd> </mtr> <mtr> <mtd> <mi>s</mi> <mo>=</mo> <mstyle> <mrow> <msubsup> <mo>&Integral;</mo> <mrow> <mi>t</mi> <mn>1</mn> </mrow> <mrow> <mi>t</mi> <mn>2</mn> </mrow> </msubsup> <mi>v</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> </mrow> </mstyle> </mtd> </mtr> </mtable> </mfenced>

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

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

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>T</mi> <mo>=</mo> <mo>{</mo> <msub> <mi>T</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>T</mi> <mi>y</mi> </msub> <mo>,</mo> <msub> <mi>T</mi> <mi>z</mi> </msub> <mo>}</mo> <mo>=</mo> <mo>{</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>x</mi> </msub> <mo>,</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>y</mi> </msub> <mo>,</mo> <mo>-</mo> <msub> <mi>&Delta;A</mi> <mi>z</mi> </msub> <mo>}</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>R</mi> <mo>=</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>2</mn> </mrow> <mrow> <mi>b</mi> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <msup> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mrow> <mi>b</mi> <mn>1</mn> </mrow> <mrow> <mi>b</mi> <mn>2</mn> </mrow> </msubsup> <mo>)</mo> </mrow> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> </mrow> </mtd> </mtr> </mtable> </mfenced>

8.根据权利要求5所述的一种基于移动设备单目相机的场景重建装置,其特征在于所述场景重建模块具体处理包括:

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

<mrow> <mi>M</mi> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>f</mi> <mo>/</mo> <mi>d</mi> <mi>x</mi> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <msub> <mi>c</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>f</mi> <mo>/</mo> <mi>d</mi> <mi>y</mi> </mrow> </mtd> <mtd> <msub> <mi>c</mi> <mi>y</mi> </msub> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

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时刻采集的图像场景中每点的三维空间坐标,实现场景重建,空间三维点坐标计算公式如下:

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msub> <mi>X</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Y</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> <mtr> <mtd> <msub> <mi>Z</mi> <mi>W</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mi>B</mi> <mo>*</mo> <mi>f</mi> </mrow> <mi>d</mi> </mfrac> </mtd> </mtr> </mtable> </mfenced>

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

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