发明名称 基于变分机制的室内环境三维重建方法
摘要 本发明属于计算机视觉与智能机器人的交叉领域,公开了一种基于变分机制的大范围室内场景的重建方法,包括:步骤一,获取相机的标定参数,并建立畸变矫正模型;步骤二,建立相机位姿描述与相机投影模型;步骤三,利用基于SFM的单目SLAM算法实现相机位姿估计;步骤四,建立基于变分机制的深度图估计模型,并求解该模型;步骤五,建立关键帧选取机制,实现三维场景的更新。本发明采用RGB相机获取环境数据,针对利用高精度单目定位算法,提出了一种基于变分机制的深度图生成方法,实现了大范围的快速室内三维场景重建,有效地解决了三维重建算法成本与实时性问题。
申请公布号 CN103247075A 申请公布日期 2013.08.14
申请号 CN201310173608.X 申请日期 2013.05.13
申请人 北京工业大学 发明人 贾松敏;王可;李雨晨;李秀智
分类号 G06T17/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06T17/00(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 张慧
主权项 1.一种基于变分机制的室内环境三维重建的方法,其特征在于包括以下步骤:步骤一,获取相机的标定参数,并建立畸变矫正模型;相机标定的具体过程为:(1)打印一张棋盘模板;(2)从多个角度拍摄棋盘,应尽量让棋盘占满屏幕,并保证棋盘的每一个角都在屏幕中,一共拍摄6张模板图片;(3)检测出图像中的特征点,即棋盘的每一个黑色交叉点;(4)求取的内部参数,方法如下:RGB相机标定参数主要为相机内参,相机的内参矩阵K为:<maths num="0001"><![CDATA[<math><mrow><mi>K</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>u</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>v</mi></msub></mtd><mtd><msub><mi>v</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>式中,u、v为相机平面坐标轴,(u<sub>0</sub>,v<sub>0</sub>)是相机像平面中心坐标,(f<sub>u</sub>,f<sub>v</sub>)是相机的焦距;根据标定参数,RGB图像中点与三维空间点的映射关系如下:RGB图像中点p=(u,v)在相机坐标系下的坐标P<sub>3D</sub>=(x,y,z)表示为:<maths num="0002"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><mi>x</mi><mo>=</mo><mrow><mo>(</mo><mi>u</mi><mo>-</mo><msub><mi>u</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>*</mo><mi>z</mi><mo>/</mo><msub><mi>f</mi><mi>u</mi></msub></mtd></mtr><mtr><mtd><mi>y</mi><mo>=</mo><mrow><mo>(</mo><mi>v</mi><mo>-</mo><msub><mi>v</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>*</mo><mi>z</mi><mo>/</mo><msub><mi>f</mi><mi>v</mi></msub></mtd></mtr><mtr><mtd><mi>z</mi><mo>=</mo><mi>d</mi></mtd></mtr></mtable></mfenced></math>]]></maths>式中,d表示深度图像中点p的深度值;相机坐标系向下为y轴正方向,向前为z轴正方向,向右为x正方向;将相机的起始点位置设定为世界坐标系原点,世界坐标系的X、Y、Z方向与相机的定义相同;FOV相机矫正模型为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>u</mi><mi>d</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>u</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>f</mi><mi>u</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>f</mi><mi>v</mi></msub></mtd></mtr></mtable></mfenced><mfrac><msub><mi>r</mi><mi>d</mi></msub><msub><mi>r</mi><mi>u</mi></msub></mfrac><msub><mi>x</mi><mi>u</mi></msub></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>r</mi><mi>d</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>&omega;</mi></mfrac><mi>arctan</mi><mrow><mo>(</mo><msub><mrow><mn>2</mn><mi>r</mi></mrow><mi>u</mi></msub><mi>tan</mi><mfrac><mi>&omega;</mi><mn>2</mn></mfrac><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msub><mi>r</mi><mi>u</mi></msub><mo>=</mo><mfrac><mrow><mi>tan</mi><mrow><mo>(</mo><msub><mi>r</mi><mi>d</mi></msub><mi>&omega;</mi><mo>)</mo></mrow></mrow><mrow><mn>2</mn><mi>tan</mi><mfrac><mi>&omega;</mi><mn>2</mn></mfrac></mrow></mfrac></mrow></math>]]></maths>式中,x<sub>u</sub>为z=1面的像素坐标,u<sub>d</sub>为原始图像中像素坐标,ω为FOV相机畸变系数;步骤二,建立相机位姿描述与相机投影模型,方向如下:在已建立的世界坐标系下,相机位姿可以表示为如下矩阵:<maths num="0006"><![CDATA[<math><mrow><msub><mi>T</mi><mi>cw</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>R</mi><mi>cw</mi></msub></mtd><mtd><msub><mi>t</mi><mi>cw</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>式中,cw表示从世界坐标系到当前相机坐标系,T<sub>cw</sub>∈SE(3),SE(3)为刚体的旋转平移变换空间;T<sub>cw</sub>可由如下六元组μ=(μ<sub>1</sub>,μ<sub>2</sub>,μ<sub>3</sub>,μ<sub>4</sub>,μ<sub>5</sub>,μ<sub>6</sub>)表示,即:<maths num="0007"><![CDATA[<math><mrow><msub><mi>T</mi><mi>cw</mi></msub><mo>=</mo><mi>exp</mi><mrow><mo>(</mo><mover><mi>&mu;</mi><mo>^</mo></mover><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><mover><mi>&mu;</mi><mo>^</mo></mover><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>&mu;</mi><mn>6</mn></msub></mtd><mtd><mo>-</mo><msub><mi>&mu;</mi><mn>5</mn></msub></mtd><mtd><msub><mi>&mu;</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mn>6</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&mu;</mi><mn>4</mn></msub></mtd><mtd><msub><mi>&mu;</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mn>5</mn></msub></mtd><mtd><mo>-</mo><msub><mi>&mu;</mi><mn>4</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&mu;</mi><mn>3</mn></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>式中,μ<sub>1</sub>,μ<sub>2</sub>,μ<sub>3</sub>分别为Kinect在全局坐标系下的平移量,μ<sub>4</sub>,μ<sub>5</sub>,μ<sub>6</sub>表示局部坐标系下坐标轴的旋转量;相机的位姿T<sub>cw</sub>建立了当前坐标系下空间点云坐标p<sub>c</sub>到世界坐标p<sub>w</sub>的变换关系,即:p<sub>c</sub>=T<sub>cw</sub>p<sub>w</sub>在当前标系下,三维空间点云到z=1平面上投影定义为:π(p)=(xz,yz)<sup>T</sup>式中,p∈R<sup>3</sup>为三维空间点,x,y,z为该点的坐标值;根据当前坐标点深度值d,利用逆向投影法确定当前空间三维点坐标p,其坐标关系可表示为:π<sup>-1</sup>(u,d)=dK<sup>-1</sup>u步骤三,利用基于SFM的单目SLAM算法实现相机位姿估计;步骤四,建立基于变分机制的深度图估计模型,并求解该模型;步骤五,建立关键帧选取机制,实现三维场景的更新,方法如下:在关键帧处实现对三维场景的估计,并更新和维护所生成的三维场景;当新增一帧KeyFrame数据后,根据式<img file="FDA00003178675900026.GIF" wi="221" he="69" />将当前新增KeyFrame数据转换到世界坐标系中,完成场景数据的更新;利用深度模型中数据惩罚项,建立当前帧与关键帧间的信息重合程度评估函数,即:<maths num="0009"><![CDATA[<math><mrow><mi>N</mi><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>x</mi><mo>&Element;</mo><msup><mi>R</mi><mn>2</mn></msup></mrow></munder><mi>c</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><mi>c</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mo>|</mo><msub><mi>I</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>I</mi><mi>i</mi></msub><mrow><mo>(</mo><msup><mi>x</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>|</mo><mo>&lt;</mo><mi>&zeta;</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>others</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>式中,ζ为常数;若此时N小于图像大小的0.7时,即确定当前帧为新关键帧。
地址 100124 北京市朝阳区平乐园100号