基于EG-SLAM的无人机实时三维场景重建方法与流程

文档序号:15640966发布日期:2018-10-12 22:03阅读:281来源:国知局

本发明涉及无人机自主飞行、计算机视觉、地图构建等领域,具体地说是利用实时同步定位与地图构建(eg-slam),对得到的三维点云进行稠密扩散和纹理渲染实现无人机对地面目标的三维场景重建。



背景技术:

无人机实时同步定位并重建三维场景一直都是无人机自主飞行领域和计算机视觉领域的热点和难点。无人机有诸多优点,比如:体积小、成本低、隐身性好、灵活方便、作战能力强等,近几年被广泛应用到军民的多个领域。军事方面无人机可用于侦察、攻击、电子对抗等军事任务,也可当做靶机,对未来空战有着重要的意义。民用方面,是无人机真正刚需的领域,目前在农业、植保、快递运输、抢险救灾、城市管理、新闻报道、影视拍摄甚至自拍等领域无人机有着很大的积极作用。在未知的空间领域,往往要求实时获取外界环境信息,构建地图,以满足无人机障碍物规避、路径规划和自主飞行的需求,故实时同步定位并重建三维场景有着尤为重要的实际意义。

同步定位与地图构建(simultaneouslocalizationandmapping,简称slam)这种方法描述了无人机从未知环境的未知位置出发,在运动过程中重复观测环境,根据传感器感知的环境特征定位自身位置和姿态,再根据自身位置增量式的构建地图。随着图像处理技术以及摄像机硬件的发展,基于视觉的slam成为一个比较热门的研究方向。常见的视觉slam一般分为相机定位跟踪和场景地图构建两个高度相关的部分。相机定位跟踪是指确定相机在环境中的位置和位姿,场景地图构建是指构建相机所在场景的三维地图。

然而目前存在的同步定位与地图构建方法存在几点不足:

1)无法很好的处理重复率不够高的图像帧。比如大尺度单目半稠密直接法(large-scaledirectmonocularslam,简称lsd-slam)、稀疏直接法(directsparseodometry,简称dso)、半直接视觉里程计(semi-directmonocularvisualodometry,简称svo)等直接法,基于orb特征点法的orb-slam,都需要数据集有较高的重复率。

2)摄像机获得的初始图像信息冗余度极高,导致传输带宽和计算资源浪费。

3)目前无人机利用计算机视觉技术实时生成的大规模地图大多是只有几何结构,不包含纹理信息的三维点云。



技术实现要素:

为解决现有技术存在的问题,本发明提出一种基于eg-slam的无人机实时三维场景重建方法,具体包括以下步骤:

步骤1:采集并处理图像:

无人机机载相机采集到一系列图像,实时将图像传递给计算单元,并利用相机标定数据对采集到的每一帧图像进行去畸变处理,得到去畸变的图像;

步骤2:对步骤1得到的前两帧图像进行以下处理得到初始化地图:

步骤2.1:将第一帧图像设置为第一个关键帧;提取并存储前两帧图像的sift特征点,任意设定前两帧中提取的特征点的初始逆深度;

步骤2.2:利用特征点匹配关系求解前两帧之间的本质矩阵e,通过svd分解出第二帧图像到第一帧图像所对应的相机位姿变化的旋转矩阵r和平移矩阵t;

步骤2.3:根据步骤2.2得到的第二帧图像到第一帧图像所对应的相机位姿变化的旋转矩阵r和平移矩阵t,通过逆深度滤波方法计算前两帧中特征点的逆深度,以及得到特征点在三维空间中的对应空间坐标,完成三维点云地图的初始化;

步骤3:对实时获得的第i帧图像进行以下处理,完成追踪和构图过程,i=3,4,5......:

步骤3.1:得到第i帧去畸变的图像后,以当前关键帧为基准,求解第i帧与当前关键帧之间的相机位姿变化:

提取第i帧图像的sift特征点,并对每个特征点的逆深度初始化,利用特征点匹配关系求解第i帧图像与当前关键帧之间的本质矩阵e,通过svd分解出第i帧到当前关键帧之间位姿变化se(3)矩阵的初始值;

对于当前关键帧和第i帧的特征匹配点对p1、p2,已知当前关键帧中的特征点p1的图像位置坐标和初始逆深度d,可得到p1在三维空间中的位置p,利用位姿变化se(3)矩阵将三维点p重投影到第i帧图像上,得到投影点计算投影点与第i帧上p1对应的特征匹配点p2的重投影误差e,以位姿变化se(3)矩阵和逆深度d为优化变量,优化求解出当前关键帧与第i帧的位姿变化se(3)矩阵,以及当前关键帧中特征点的逆深度d′,使重投影误差最小;

计算当前关键帧中所有特征点逆深度优化值d′与优化前逆深度d的比值d′/d,并对当前关键帧中所有特征点的比值加权平均后,作为第i帧与当前关键帧对应相机之间位姿变化的尺度参数s;根据优化后的位姿变化se(3)矩阵和尺度参数s,得到第i帧与当前关键帧之间的相机位姿变化sim(3)矩阵;

步骤3.2:根据步骤3.1得到第i帧与当前关键帧之间第一次优化后的相机位姿变化sim(3)矩阵和特征点匹配关系,再用逆深度滤波方法更新当前关键帧特征点的逆深度;

步骤3.3:采用基于图优化的方法再次优化第i帧与当前关键帧之间的相机位姿变化sim(3)矩阵和当前关键帧特征点的逆深度,并将最终优化的具有逆深度的特征点更新到地图中;

步骤3.4:若步骤3.3得到的第i帧与当前关键帧之间的相机位姿变化大于设定的位姿变化阈值,且第i帧与当前关键帧的特征匹配点对数小于第i帧特征点数量的1/2时,则第i帧确定为新的关键帧,更新成为当前关键帧;

步骤4:将采集到的图像和步骤3更新后的点云地图传回地面端进行后续处理:

步骤4.1:利用k-d树算法聚类点云地图中的空间点,取每个聚类中空间点坐标的均值作为聚类的中心空间坐标,所有聚类的中心空间坐标组成一个新的点集;

步骤4.2:将步骤4.1得到的新点集中的空间点投影到采集到的每张图像上,若图像上的投影点数量大于设定阈值,则保留该图像,否则,删除该图像;通过筛选得到一个新的图像集合;

步骤4.3:根据图割原理,对步骤4.2得到的图像集合进行分割得到图像簇,使得每个图像簇中图像的数量小于给定的阈值;

步骤5:对步骤4得到的每个图像簇,对其内部的图像分别进行特征提取并匹配,生成一系列三维空间点,利用空间点生成贴片,并过滤掉误差较大的贴片,得到稠密空间点集:

步骤5.1:利用dog金字塔和harries算子对每个图像簇中的所有图像进行特征提取:对于一个图像簇中的某个图像ii,在图像簇中的其他图像中选取主光轴与图像ii夹角小于设定角度的图像组成图像集合i(p);利用特征匹配法寻找图像ii与i(p)中每幅图像的特征匹配点对,利用特征匹配点对通过三角化方法生成三维空间点,将三维空间点按照与ii对应的光心o(ii)距离从小到大排列;依次采用以下方法生成贴片,得到一系列初始化的稀疏贴片:

贴片p生成方法:

对于一个贴片p,由中心点c(p)和法向量n(p)表示;利用得到的三维空间点初始化候选贴片的中心点c(p),c(p)与o(ii)的单位方向向量为法向量n(p);

每个贴片p的中心点c(p)是由图像ii和图像集合i(p)中对应的匹配图像ij得到,将这两张图像ii和ij首先加入贴片的可视图集v(p);再将中心点c(p)投影到图像集合i(p)中除ij外的其他图像上,若在某一图像im存在投影点,且c(p)和该图像im对应光心的射线与n(p)方向夹角大于设定角度阈值,则将此图像im加入贴片p的可见图集v(p);

定义光度误差函数:

其中v(p)表示贴片p的可视图集,r(p)表示贴片p的参考图像,i表示除参考图像r(p)外可视图集v(p)里的任一图像,h(p,i,r(p))是指图像i和r(p)之间的光度误差;光度误差函数的自变量是贴片p的中心点c(p)、法向量n(p)和可视图集v(p);通过共轭梯度法最小化贴片p的光度误差函数,更新c(p)、n(p)、v(p);如果可见图集v(p)中的图像数量大于设定阈值,贴片p生成成功,否则不接受此贴片;

步骤5.2:扩散初始化的贴片,生成稠密的贴片:

对于贴片p和对应的v(p),将v(p)中的每个图像分成β×β像素的图像块ci(x,y),x,y表示图像块的下标,i表示v(p)中的第i张图像;将贴片p投影到v(p)中的每个图像,对于投影到图像块ci(x,y)的贴片用贴片集合qi(x,y)表示;将所有在步骤5.1中生成成功的贴片p均重复此过程;得到图像簇中每个图像对应图像块的贴片集合;

对于某一贴片p,找到满足以下条件的邻域图像块集合c(p):

c(p)={ci(x′,y′)|p∈qi(x,y),|x-x′|+|y-y′|=1}

当存在贴片p′和p是近邻关系,且p′所对应的图像块ci(x′,y′)满足ci(x′,y′)∈c(p)时,从c(p)中删除ci(x′,y′);对c(p)中剩余的图像块,建立新的贴片,新贴片中心为通过此图像块中心以及光心的射线与贴片p所在平面的交点,新贴片的法向量与贴片p法向量一致;将新贴片中心投影到贴片p对应的可视图集v(p)中的图像上,若投影点在图像上,则将此图像加入新贴片的可视图集中,若新贴片可视图集数量大于设定阈值,则认为成功扩散了一个贴片,否则失败,并对下一个贴片进行扩散;

步骤5.3:对于每个图像块中的若干贴片,利用可见度一致性约束,计算某一贴片与同一图像块中的其余贴片的平均相关系数,将平均相关系数大于设定阈值的贴片删除;

步骤5.4:重复进行步骤5.2和步骤5.3n次,稠密扩散完成,得到稠密空间点集;

步骤6:对步骤5得到的稠密空间点集进行泊松重建,得到等值,利用等值通过移动立方体算法从指示函数中提取等值面作为为点云的表面,得到三角面片构成的三角网格模型;

步骤7:对步骤6得到的三角网格模型进行纹理渲染,得到一个完整的三维纹理场景:

步骤7.1:对采集的图像进行配准,而后对三角网格模型中的三角面片和图像进行筛选和删除:对于三个顶点位置相同的三角面片认为是同一面片,只保留一个面片;用视锥体剔除的方法和纹理一致性检查方法删除不符合条件的图像,并通过图割和α-扩张的方法最小化马尔科夫随机场能量函数e(l),选择出对每个三角面片进行纹理渲染的最优图像l,将三角面片投影回最优图像可得到该三角面片的纹理颜色;

其中,edata项表示对于所有面片faces中的每个三角面片fi与可见fi的每一张图像li之间的数据成本,表达形式如下:

对于可见三角面片fi的每一张图像li,φ(fi,li)表示fi投影到li的图像区域,表示投影区域φ(fi,li)上每个像素p的梯度;esmooth项表示相邻三角面片fi,fj分别用可见面片fi,fj的图像li,lj纹理渲染后,相邻三角面片fi,fj接缝可见度;

步骤7.2:每个三角面片得到最优图像l后,对相邻三角面片公共边在三角面片对应的图像纹理块中投影区域的颜色先进行全局调整,再利用泊松编辑进行局部调整,最后利用调整颜色后的图像纹理块对相邻三角面片公共边进行纹理渲染,得到相邻三角面片公共边颜色。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤2中所述逆深度滤波方法为:

对于相邻两帧图像ir与ik,根据其中特征匹配点对ui、ui'在各自图像中的位置坐标,以及图像ir到图像ik之间的相机位姿变化,并设定图像ir中特征点ui的逆深度范围为从而计算出逆深度范围两个端点逆深度在图像ik中出现的极线位置;计算ui在图像ik中对应的特征点ui'与此极线的垂直距离,若垂直距离小于设定的阈值,则利用特征匹配点对ui、ui'的坐标关系和图像ir到图像ik之间的相机位姿变化计算出特征点ui的逆深度,反之特征点ui的逆深度计算失败。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤3中关键帧初始逆深度d通过以下过程得到:当某一帧成为新的关键帧,则新关键帧中任一特征点pi'的初始逆深度d由d1和d2加权平均得到,其中d1为特征点pi'在上一关键帧中对应的特征点pi的逆深度d1;d2为根据新关键帧与上一关键帧对应的相机位姿变化和特征点匹配关系,利用逆深度滤波方法求得的新关键帧中特征点pi'的逆深度d2。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤4.1中,通过设定阈值使得每个聚类中的点数不得大于设定点数值。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤5.1中,两幅图像间的光度误差采用以下过程得到:

对于一对图像i1和i2,将贴片p分别投影在图像i1和i2上后,对投影区域像素进行双线性插值,得到像素灰度q(p,i1)和q(p,i2),求出q(p,i1)和q(p,i2)的ncc值,1减去ncc值得到图像i1和i2之间的光度误差h(p,i1,i2)。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤6对步骤5得到的稠密空间点集进行均匀采样后得到采样有向点集s,采样有向点集中一个采样点s包含采样点的位置坐标s.p和向内曲面法向量采样点在三维场景表面均匀分布,利用采样有向点集中采样点s的向内曲面法向量构成的向量场与指示函数χm梯度场的等价关系,估计得到三维场景模型的指示函数χm,然后找到并提取模型的等值面,对模型表面重建一个无缝的三角网格模型。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤6具体实现步骤为:

步骤6.1:根据采样有向点集的位置坐标定义一个八叉树,给定最大树深d,细分八叉树使每个采样点都落在叶节点;

步骤6.2:定义一个可进行距离平移和尺度缩放、单位积分的基函数f;对八叉树的每个叶节点o设置一个单位积分的节点函数fo,利用基函数f关系表示fo;q表示采样点位置变量,o.c和o.w分别是节点o的中心和宽度;

步骤6.3:使用三次线性插值法将采样点分配到八个最邻近的叶节点,采用fo的线性求和表示采样点集的向量场

其中ngbrd(s)为最邻近s.p的八个深度为d的叶节点,αo,s为三次线性插值的权重;

步骤6.4:对于三维模型表面附近的采样点,指示函数的梯度等于模型表面的向内法向量,得到一个泊松方程:

由步骤6.3得到向量场,采用拉普拉斯矩阵迭代求解出指示函数χm;对于每个采样点s,估计出一个指示函数的值χm(s.p),求所有采样点指示函数的加权平均值作为一个等值;

步骤6.5:利用步骤6.4得到的等值,通过移动立方体算法从指示函数中提取等值面作为点云的表面,得到三角面片构成的三角网格模型。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤7.1中,esmooth项基于potts模型,当三角面片fi,fj用同一个图像进行纹理渲染时esmooth为0,否则取设定的最大值。

进一步的优选方案,所述一种基于eg-slam的无人机实时三维场景重建方法,其特征在于:步骤7.1中纹理一致性检查方法具体如下:

1)将可见三角面片fi的所有图像看作内点;

2)计算fi在每个内点投影的平均色值ci,及所有平均色值ci的协方差矩阵σ和均值μ;

3)对可见fi的每个图像,利用高斯函数得到一个数值;

4)当此值小于设定的阈值时,去除对应的图像;

5)重复2-4步,当协方差矩阵内的元素值低于对应设定值或内点数少于相应设定值或达到设定的迭代次数时停止迭代。

有益效果

本发明实现了一种无人机实时同步定位并重建三维场景的方法,该方法利用无人机机载相机实时获取到的视觉信息,重建出具有纹理细节的大规模三维场景。与诸多现有的方法相比,本方法具有快速实时的特点,降低了对图像数据集重复率的要求,又能重建出具有纹理细节的三维场景,提高了环境感知的逼真度。

本发明之所以具有上述的有益效果其原因在于:1)无人机机载摄像机采集图像后直接在cpu上运行,快速实时的实现定位并重建出三维地图;2)没有采取传统的pnp方法求解无人机的位姿,而是利用发明的eg-slam方法来解算无人机位姿,即利用两帧之间的特征点匹配关系直接求解位姿,降低对采集图像重复率的要求;3)获取的大量环境信息使得无人机对环境结构有了更精密并细致的感知,对实时生成的大尺度三维点云地图进行纹理渲染,实现了大尺度三维地图的重建,得到了更加直观真实的三维场景。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1:逆深度滤波确定像素深度示意图;

图2:重投影误差示意图;

图3:三角网格模型图;

图4:三角面片,顶点v1是相邻面片的共同点;

图5:采样点色值权重的线性变化函数示意图;

图6:带状边框的纹理块。

具体实施方式

下面详细描述本发明的实施例,所述实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本发明无人机的主要装置是微小型计算机和机载工业相机。在无人机飞行过程中,通过相机采集图像信息,将数据传输给嵌入式计算机,嵌入式计算机对采集到的图像进行处理,完成实时定位与点云地图构建,结合飞行控制器提供的gps重建三维地图场景。

下面是具体的实现步骤:

步骤1:采集并处理图像:

无人机机载相机采集到一系列图像,实时将图像传递给计算单元,保障了传输图像的快速性。用提前获取的相机标定数据对采集到的每一帧图像做去畸变处理,得到去畸变的图像。

步骤2:对前两帧图像进行处理后得到初始化地图(eg-slam的初始化):

步骤2.1:去畸变的第一帧图像设置为第一个关键帧。提取并存储前两帧图像的sift特征点,设定前两帧中提取的特征点的初始逆深度为1,此处设定的初始逆深度不具备有效深度信息,但不影响后续点云重建精度,因为后面通过优化会得到比较准确的逆深度值。

步骤2.2:利用特征点匹配关系求解前两帧之间的本质矩阵e,通过svd分解出第二帧图像到第一帧图像所对应的相机位姿变化的旋转矩阵r和平移矩阵t。第一帧和第二帧图像的基线设为1。

步骤2.3:根据步骤2.2得到的第二帧图像到第一帧图像所对应的相机位姿变化的旋转矩阵r和平移矩阵t,通过逆深度滤波方法得到前两帧中特征点的逆深度,得到特征点在三维空间中的对应空间坐标,完成三维点云地图的初始化。

所述逆深度滤波方法具体描述如下:

如图1所示,对于相邻两帧图像ir与ik,根据其中特征匹配点对ui、ui'在各自图像中的位置坐标,以及图像ir到图像ik之间的相机位姿变化,并设定图像ir中特征点ui的逆深度范围为从而计算出这两个端点逆深度在图像ik中出现的极线位置;计算ui在图像ik中对应的特征点ui'与此极线的垂直距离d,若d小于设定的阈值,则利用特征匹配点对ui、ui'的坐标关系和图像ir到图像ik之间的相机位姿变化计算出特征点ui的逆深度。反之,则ui特征点的逆深度计算失败,用同样的方法计算图像ir与图像ik中的下一特征匹配点对的逆深度。

步骤3:对实时获得的第i帧图像进行以下处理(i=3,4,5......),完成追踪和构图过程(eg-slam的定位与稀疏地图构建):

步骤3.1:得到第i帧图像数据后,以当前关键帧为基准(即跟踪基础),求解第i帧与当前关键帧之间的相机位姿变化:

第i帧(当前帧)与当前关键帧的位姿变化可以表示为se(3)变换,se(3)是一个4×4的矩阵又被称为相机的外参矩阵。此矩阵表示表示相机的旋转和平移。

左上从a00到a22为旋转分量so(3),右上从t0到t2表示平移分量。se(3)矩阵加上尺度参数变为sim(3),s表示尺度参数,用于仿射变换。

提取第i帧图像的sift特征点,并对每个特征点的逆深度初始化为1(初始逆深度不具备有效深度信息)。利用特征点匹配关系求解第i帧图像与当前关键帧之间的本质矩阵e,通过svd分解出第i帧到当前关键帧之间的位姿变化(se(3)矩阵)的初始值;

对于当前关键帧和第i帧的特征匹配点对p1、p2,已知当前关键帧中的特征点p1的图像位置坐标和初始逆深度d,可得到p1在三维空间中的位置p,利用位姿变化(se(3)矩阵)将此三维点p重投影到第i帧图像上,得到投影点如图2所示。计算投影点与第i帧上p1对应的特征匹配点p2的重投影误差e(se(3)矩阵和逆深度是优化变量),通过lm(levenberg-marquard算法)优化方法迭代求解出当前关键帧与第i帧的位姿变化(se(3)矩阵),以及当前关键帧中特征点的逆深度d′,使重投影误差最小。

迭代得到的当前关键帧中某一特征点逆深度优化值d′与迭代前此特征点逆深度d,理论上应为同一个值。故利用此关系,求解两者的比值d′/d,并对当前关键帧中所有特征点的比值加权平均后,作为第i帧与当前关键帧对应相机之间位姿变化的尺度参数s。已知se(3)矩阵和尺度参数s,得到第i帧与当前关键帧之间的相机位姿变化(sim(3)矩阵)。

其中关键帧初始逆深度d通过以下过程得到:当第i帧成为新的关键帧,则第i帧中任一特征点pi'的初始逆深度d由d1和d2加权平均得到,其中d1为特征点pi'在上一关键帧中对应的特征点pi的逆深度d1;d2为根据第i帧与上一关键帧对应的相机位姿变化和特征点匹配关系,利用逆深度滤波方法求得的第i帧中特征点pi'的逆深度d2。

步骤3.2:通过步骤3.1,已知第i帧与当前关键帧之间对应相机的第一次优化后的相机位姿变化(sim(3)矩阵)和特征点匹配关系,再用逆深度滤波方法更新当前关键帧特征点的逆深度;

步骤3.3:实时同步定位和点云地图的构建相关性很强,为了更好的提高定位和点云地图的精确度,最后要采用基于图优化的方法优化第i帧与当前关键帧对应相机的位姿变化和当前关键帧特征点的逆深度,并将最终优化的具有逆深度的特征点更新到地图中。

基础的图优化方法的公式:

xk表示节点(未知的自变量状态),zk表示边(可理解为约束),ek表示这些节点满足约束的状态。ωk表示引入的信息矩阵及约束的置信度,误差大则置信度低。本发明中将地图点的逆深度和无人机的位姿变化定义为节点,将从图像到地图点的投影关系和相邻两帧之间的sim(3)变化定义为边,若有gps观测信息,将gps的观测信息也加入边。信息矩阵包含各个约束的权重。定义一个局部滑动窗,此滑动窗范围包含所有具有共同观测的关键帧,定义图优化方法的节点和边后,利用lm方法最小化局部滑动窗内所有变量之间的误差函数,取得全局最优解,即得到位姿变化和特征点逆深度的最优值。

步骤3.4:若步骤3.3得到的第i帧与当前关键帧相机位姿变化大于设定的位姿变化阈值,且第i帧与当前关键帧的特征匹配点对数小于第i帧特征点数量的1/2时,则第i帧确定为新的关键帧,更新成为当前关键帧;

本实施例为了提高运算速率,降低存储的数据量,要求若步骤3.3得到的第i帧与当前关键帧相机位姿变化大于设定的位姿变化阈值,并且第i帧与当前关键帧的特征匹配点对小于第i帧特征点数量的1/2时,则用第i帧代替当前关键帧作为新的关键帧。否则,返回步骤3.1,重复处理采集到的下一帧图像。

定义关键帧是因为当前关键帧对应的相机位姿相对于上一关键帧变化较大,其观测到的三维环境信息与之前的关键帧有较明显的不同,将其作为一个基准可以扩展环境地图并检测新帧是否可以作为关键帧。比起每帧都作为关键帧进行复杂的计算,节省了计算资源,加快了整体的运算速度。

步骤4:将采集到的图像和步骤3更新后的点云地图(点云地图是由空间点集的形式保存)传回地面端进行后续处理。图像之间有大量重叠,为了减少数据量的处理,用散列图像聚簇方法对图像进行聚簇分类,并进行筛选:

步骤4.1:利用k-d树算法聚类点云地图中的空间点,设定阈值使得每个类别中的点数不得大于设定值400。取每个聚类中空间点坐标的均值作为聚类的中心空间坐标,所有聚类的中心空间坐标组成一个新的点集。

步骤4.2:选取图像:将步骤4.1得到的新点集中的空间点投影到采集到的每张图像上,若图像上的投影点数量大于一定的阈值,则保留该图像,否则,删除该图像。重复筛选可得到一个新的图像集合。

步骤4.3:根据图割原理,对步骤4.2得到的图像集合进行分割得到图像簇,使得每个图像簇中图像的数量小于给定的阈值。对于不满足数量条件的图像簇,将其分割为更小的图像簇。

步骤5:对步骤4得到的每个图像簇,对其内部的图像分别进行特征提取并匹配,生成一系列三维空间点,利用空间点生成贴片,并过滤掉误差较大的贴片。贴片的生成和筛选需要反复进行,使得贴片足够稠密,即得到稠密点云地图:

贴片p是一个近似的与要重建场景的表面正切的小矩形。贴片p由中心点c(p)和单位法向量n(p)表示。

步骤5.1:利用dog金字塔和harries算子对每个图像簇中的所有图像进行特征提取。对于一个图像簇中的某个图像ii,在图像簇中的其他图像中选取主光轴与图像ii夹角小于设定角度的图像组成图像集合i(p)。利用特征匹配法寻找图像ii与i(p)中每幅图像的特征匹配点对,利用特征匹配点对通过三角化方法生成三维空间点,将这些三维空间点按照与ii对应的光心o(ii)距离从小到大排列。依次采用以下方法生成贴片,最后生成一系列初始化的稀疏贴片。

贴片p生成方法:

对于一个贴片p,由中心点c(p)和法向量n(p)表示。利用得到的三维空间点初始化候选贴片的中心点c(p),c(p)与o(ii)的单位方向向量为法向量n(p)。

每个贴片p的中心点c(p)是由图像ii(贴片p的参考图像r(p))和图像集合i(p)中对应的匹配图像ij得到,将这两张图像ii和ij首先加入贴片的可视图集v(p)。再将中心点c(p)投影到图像集合i(p)中除ij外的其他图像上,若在某一图像im存在投影点,且c(p)和该图像im对应光心的射线与n(p)方向夹角大于设定角度阈值,则将此图像im加入贴片p的可见图集v(p)。

首先,定义光度误差函数:

其中,v(p)表示贴片p的可视图集,r(p)表示贴片p的参考图像,i表示除参考图像r(p)外可视图集v(p)里的任一图像。h(p,i,r(p))是指图像i和r(p)之间的光度误差。光度误差函数的自变量是贴片p的中心点c(p)、法向量n(p)和可视图集v(p)。通过共轭梯度法最小化贴片p的光度误差函数,更新c(p)、n(p)、v(p)。如果可见图集v(p)中的图像数量大于设定阈值,贴片p生成成功,否则不接受此贴片。

对于一对图像i1和i2,将贴片p分别投影在图像i1和i2上后,对投影区域像素进行双线性插值,得到像素灰度q(p,i1)和q(p,i2),求出q(p,i1)和q(p,i2)的ncc值(normalizedcrosscorrelation归一化互相关算法)。1减去ncc值得到图像i1和i2之间的光度误差h(p,i1,i2)。

步骤5.2:扩散初始化的贴片,生成稠密的贴片:

对于贴片p和对应的v(p),将v(p)中的每个图像,将其分成β×β像素的图像块ci(x,y)(x,y表示图像块的下标,i表示v(p)中的第i张图像);将贴片p投影到v(p)中的每个图像,对于投影到图像块ci(x,y)的贴片用贴片集合qi(x,y)表示;将所有在步骤5.1中生成成功的贴片p均重复此过程;得到图像簇中每个图像对应图像块的贴片集合;

对于某一贴片p,找到满足以下条件的邻域图像块集合c(p):

c(p)={ci(x′,y′)|p∈qi(x,y),|x-x′|+|y-y′|=1}

当存在贴片p′和p是近邻关系,且p′所对应的图像块ci(x′,y′)满足ci(x′,y′)∈c(p)时,从c(p)中删除ci(x′,y′)。对c(p)中剩余的图像块,建立新的贴片,新贴片中心为通过此图像块中心与光心的射线与贴片p所在平面的交点,新贴片法向量与贴片p法向量一致。将新贴片中心投影到贴片p对应的可视图集v(p)中的图像上,若投影点在图像上,则将此图像加入新贴片的可视图集中,若新贴片可视图集数量大于设定阈值,则认为成功扩散了一个贴片,否则开始对下一个贴片进行扩散。

步骤5.3:对于每个图像块中的若干贴片,利用可见度一致性约束,计算某一贴片与同一图像块中的其余贴片的平均相关系数,将平均相关系数大于设定阈值的贴片删除;

重复进行步骤5.2和步骤5.3n次,稠密扩散完成,得到稠密空间点集(点云地图是由空间点集的形式保存)。

步骤6:对步骤5得到的稠密空间点集进行泊松重建,得到等值,利用等值通过移动立方体算法(marchingcube算法,简称mc方法)从指示函数中提取等值面(三角面片构成),此等值面为点云的表面,即得到三角面片构成的三角网格模型:

对步骤5得到的稠密空间点集进行均匀采样后得到采样有向点集s,采样有向点集中一个采样点s(s∈s)包含采样点的位置坐标s.p和向内曲面法向量采样点在三维场景表面均匀分布,利用采样有向点集中采样点s(代表三维场景的表面)的向内曲面法向量构成的向量场与指示函数χm梯度场的等价关系,估计出三维场景模型的指示函数χm,然后找到并提取模型的等值面,对模型表面重建一个无缝的三角网格模型:

步骤6.1:根据采样有向点集的位置坐标定义一个八叉树,给定最大树深d,细分八叉树使每个采样点都落在叶节点;

步骤6.2:定义一个可进行距离平移和尺度缩放、单位积分的基函数f,基函数f为一个盒滤波器的n阶卷积,当n增大时,近似单位方差的高斯滤波器。对八叉树的每个叶节点o设置一个单位积分的节点函数fo,利用基函数f关系表示fo。q表示采样点位置变量,o.c和o.w分别是节点o的中心和宽度。

步骤6.3:为了确保叶节点fo的精度,使用三次线性插值法将采样点分配到八个最邻近的叶节点。fo的线性求和表示采样点集的向量场(ngbrd(s)为最邻近s.p的八个深度为d的叶节点,αos为三次线性插值的权重):

步骤6.4:对于三维模型表面附近的采样点,指示函数的梯度等于模型表面的向内法向量,故得到一个泊松方程:

由步骤6.3得到向量场,采用拉普拉斯矩阵迭代求解出指示函数χm。即对于每个采样点s,估计出一个指示函数的值χm(s.p),求所有采样点指示函数的加权平均值作为一个等值。

步骤6.5:利用步骤6.4得到的等值,通过移动立方体算法(marchingcube算法,简称mc方法)从指示函数中提取等值面(三角面片构成),此等值面为点云的表面,即得到三角面片构成的三角网格模型,如图3所示。

步骤7:对步骤6得到的三角网格模型进行纹理渲染,得到一个完整的三维纹理场景:

步骤7.1:首先,对采集的图像进行配准。然后对三角网格模型中的三角面片和图像进行筛选和删除:对于三个顶点位置相同的三角面片认为是同一面片,只保留一个面片。用视锥体剔除的方法和纹理一致性检查方法删除不符合条件的图像,并通过图割和α-扩张的方法最小化马尔科夫随机场能量函数e(l),选择出对每个三角面片进行纹理渲染的最优图像l,将三角面片投影回最优图像可得到该三角面片的纹理颜色。

其中,edata项表示对于所有面片(faces)中的每个三角面片fi与可见fi的每一张图像li之间的数据成本。对于edata项,表达形式如下:

对于可见三角面片fi的每一张图像li,φ(fi,li)表示fi投影到li的图像区域,表示投影区域φ(fi,li)上每个像素p的梯度。

esmooth项表示相邻三角面片fi,fj分别用可见面片fi,fj的图像li,lj纹理渲染后相邻三角面片fi,fj接缝可见度。esmooth项基于potts模型,当三角面片fi,fj用同一个图像(li=lj)进行纹理渲染时,esmooth为0,否则取设定的最大值。

所述纹理一致性检查方法具体如下:

6)将可见三角面片fi的所有图像看作内点;

7)计算fi在每个内点投影的平均色值ci,及所有平均色值ci的协方差矩阵σ和均值μ;

8)对可见fi的每个图像,利用高斯函数会得到一个数值;

9)当此值小于设定的阈值时,去除对应的图像;

10)重复2)-4)步,当协方差矩阵内的元素值低于某个值或内点数少于设定值时,或达到设定的迭代次数停止收敛。

步骤7.2:由步骤7.1,每个三角面片得到最优图像l后,需要对相邻三角面片公共边在三角面片对应的图像纹理块中投影区域的颜色先进行基础的全局调整,再利用泊松编辑进行局部调整,最后利用调整颜色后的图像纹理块对相邻三角面片公共边进行纹理渲染,得到相邻三角面片公共边颜色:

已知每个面片对应的最优图像l,可得到最优图像中用于渲染面片的矩形图像纹理块。在调整公共边颜色之前,相邻面片公共边上的顶点v会被当作两个顶点看待,对应两种颜色。即顶点vleft和顶点vright分别属于公共边左边和右边的面片,顶点vleft和顶点vright都有自己独立对应的纹理块像素颜色利用共轭梯度法最小化颜色调整函数:

对于相邻面片公共边上的一个顶点v,表示顶点vleft对应的图像纹理块像素颜色的修正量,表示顶点vright对应的图像纹理块像素颜色的修正量。对于同一个三角面片上的相邻顶点vi,vj,表示顶点vi对应的图像纹理块像素颜色的修正量,表示顶点vj对应的图像纹理块像素颜色的修正量。最小化第一项使相邻面片公共边上的一个顶点v对应像素的左边调整色值和右边调整色值要尽可能一致;最小化第二项使同一面片中相邻顶点vi,vj颜色差异要尽可能小。

得到相邻三角面片公共边上每个顶点v对应的图像纹理块像素颜色修正量gv(包含)后,利用质心坐标计算相邻三角面片公共边对应图像纹理块区域上所有像素颜色修正量,得到相邻三角面片公共边对应图像纹理块区域上所有像素的调整色值。通过上述的全局调整得到相邻三角面片公共边对应图像纹理块区域上所有像素的调整色值后,由于相邻三角面片公共边对应图像纹理块区域上所有像素的左右边调整色值不可能完全一样,故相邻三角面片公共边对应图像纹理块区域上颜色还会有明显的界限,继续进行相邻三角面片公共边对应图像纹理块区域的颜色调整,方法如下:

如图4,顶点v1是两个相邻三角面片公共边上的一个顶点,对深灰色区域表示的三角面片对应图像纹理块的两条边均匀采样。对于边,根据采样像素距离顶点v1的远近决定权重从0到1线性增加,如图5所示,用采样像素调整后的色值乘以权重并相加分别得到根据的长度比例求的颜色均值用相同方法可以求出浅灰色区域表示的三角面片的顶点v1的颜色均值则顶点v1的颜色取的均值。对于公共边上其他的采样点,在深灰三角面片和浅灰三角面片对应的图像纹理块中分别找到采样点投影的像素位置,取颜色均值为采样点的颜色,调整深灰色对应的三角面片和浅灰色对应的三角面片的公共边在图像纹理块中对应的投影区域颜色使其一致。

相邻三角面片公共边在对应的图像纹理块中的投影区域颜色一致后,对图像纹理块边缘取20像素宽的区域(深灰色环状区域)进行泊松编辑,如图6所示。利用局部调整颜色后的图像纹理块对三角面片进行纹理颜色渲染(将图像纹理块反投影到三角面片上得到纹理颜色),使渲染后的三角面片保持纹理一致性。至此完成具有纹理细节的三维场景重建。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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