一种基于PMVS的建筑物密集点云快速重建方法与流程

文档序号:16253984发布日期:2018-12-12 00:17阅读:478来源:国知局
一种基于PMVS的建筑物密集点云快速重建方法与流程

本发明涉及图像处理领域,特别是一种基于pmvs的建筑物密集点云快速重建方法。

背景技术

由furukawa等人提出的pmvs(patch-basedmulti-viewstereo)算法是目前表现优异的主流密集点云重建算法之一。算法基本流程是:采用harris和dog算子检测出输入图像集的特征点,利用特征匹配、三角化重建获取稀疏种子点云,利用这些种子点迭代进行面片扩散、优化、滤波等步骤,最终重建出具有法向信息的、紧致覆盖于待重建物体表面的稠密面片集合。该算法的优点在于:(1)不需要任何初始信息如凸壳、包围盒等;(2)算法具有很广的适用范围,从单个物体重建到大规模复杂场景重建,该算法均能适用;(3)算法具有很高的重建精度和不错的重建效率。

尽管pmvs算法性能优良,但是同样存在一些不足之处,算法的运行效率较低就是其中之一,在处理高分辨率图像数据和大规模场景重建时,pmvs算法的运行效率会明显降低,致使pmvs算法无法满足智慧城市中大规模城市场景的快速重建的要求。

pmvs算法运行效率较低的原因之一在于:pmvs算法使用弱约束条件来对图像进行特征匹配重建待重建物体的稀疏点云,特征匹配的弱约束条件致使该过程不具备全局最优性,使得重建出的稀疏点云充满噪声。用这些富含噪声的稀疏点云作为种子点进行后续的面片扩散优化操作,会造成更多的无意义的扩散,而面片扩散和优化过程是pmvs算法中主要的耗时过程,这在一定程度上增加了pmvs算法运行时间。

针对pmvs算法的效率问题,已有许多学者提出了不同的改进方案,但是目前尚无利用建筑物几何特性的、从提高种子点密度和精度的角度对pmvs算法效率进行改进的先例。现有pmvs算法运行效率不高,无法满足智慧城市中大规模城市场景的快速重建的要求。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的不足而提供一种基于pmvs的建筑物密集点云快速重建方法,可以快速获取精度较高的建筑物的密集点云。

本发明为解决上述技术问题采用以下技术方案:

根据本发明提出的一种基于pmvs的建筑物密集点云快速重建方法,包括如下步骤:

步骤a、以假设平面拟合算法得到的点云平面聚类作为输入数据,使用delaunay三角剖分算法构建待重建建筑物的初始空间三角网格模型,并对三角网格进行信息初始化;

步骤b、使用三角网格空间插值扩散算法来对初始空间三角网格模型进行扩散加密;

步骤c、使用改进的面片优化和滤波算法对扩散后的三角网格顶点构成的点云进行面片优化和滤波;

改进的面片优化算法,具体为:

将pmvs的非线性优化中的三个变量降为一个变量;非线性优化变量只有面片位置c(p)一个,面片的法向量在优化过程中保持初始值不变;将面片位置限制在面片的法向量上,优化过程中面片只能沿着面片法向量的方向进行移动;

改进的面片滤波算法,具体为:

对于假设平面模型中第a个初始空间三角网格ta,其经过插值扩散和面片优化之后得到点云pa″,先使用meanshift聚类算法对pa″进行聚类,计算聚类结果中包含三维点个数最多的聚类的聚类中心c,计算pa″中的所有点在假设平面法向量方向上到聚类中心c的平均距离然后遍历pa″中的每一个新扩散点vj,计算vj到其母三角形所在平面的距离dj,若则将vj判定为杂点并将其滤除;

步骤d、对经过改进的面片优化和滤波之后的点云重新构建三角网格,对网格顶点法向信息和扩散惩罚值进行更新;

步骤e、循环b、c、d三个步骤n1次后,将获得的准密集点云作为pmvs算法的种子点,重复进行pmvs算法的面片扩散、面片优化、面片滤波三步流程n2次,得到最终的密集点云。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,所述步骤a包括如下步骤:

a1、对于假设平面模型中第a个平面所包含的点云pa,将点云pa中的所有三维点坐标由三维全局坐标系转换到其所在假设平面的二维局部坐标系中,得到二维点集pa′;

定义o-xyz为全局坐标系,o-x′y′z′为目标局部坐标系,两个坐标系均以o为原点,o-xyz的三个坐标轴方向的单位向量分别为:pa所在平面的单位法向量为则求出o-x′y′z′的三个坐标轴方向的单位向量是垂直于的平面上任意两个互相垂直的单位向量;用vb表示pa中第b个三维点,分别表示vb的全局坐标和局部坐标;按照公式(1)将pa由转换至的x′坐标和y′坐标作为pa的二维平面坐标,从而得到二维点集pa′;

a2、以二维点集pa′和pa所在平面包含的线段集合ea作为输入数据,使用二维限定delaunay三角剖分算法构建pa′的三角网格,得到初始三角网格其中,n3表示三角网格中的三角形个数,为ta中第m1个三角形;由于点云在pa和pa′中的排列顺序并未改变,所以ta表示的三角网格关系直接应用于pa,即ta表示pa所在假设平面的初始空间三角网格;

a3、对ta进行信息初始化;三角网格信息包括:网格顶点坐标、法向量、可视信息和扩散惩罚值;由于ta中的网格顶点等同于pa中的三维点,所以用vb表示第b个网格顶点,用表示第b个网格顶点的坐标,用表示第b个网格顶点的单位法向量,用vb表示第b个网格顶点的可视信息,vb即为可视图片的索引的集合,用fb表示第b个网格顶点的扩散惩罚值;

所有网格顶点的坐标使用其对应的pa中三维点的全局坐标进行初始化;所有网格顶点的扩散惩罚值均初始化为0;所有网格顶点的可视信息由三维线段模型重建算法的重建结果中的三维线段可视信息来进行初始化,每个顶点的可视信息与其所在三维线段的可视信息保持一致;网格顶点的法向量初始化过程如下:

遍历ta中每一个三角形,计算其平面单位法向量;第m1个三角形的平面单位法向量为并保证夹角呈锐角;其中为三角形的中心坐标,计算公式如公式(2)所示,分别为三角形的三个顶点的坐标,normalize()表示向量的单位化;

遍历ta中每一个网格顶点,计算其单位法向量;第b个网格顶点的单位法向量即任意网格顶点的法向量是包含该顶点的所有三角形的平面单位法向量的平均;其中表示以vb为顶点的第m2个三角形的平面单位法向量,n4表示以vb为顶点的三角形的总个数;

a4、遍历建筑物假设平面模型中的所有平面,重复步骤a1到a3。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,所述步骤b包括如下步骤:

b1、对于初始空间三角网格ta中第m1个三角形计算其面积阈值其中表示三角网格的平均三角形面积,loop表示预先设定的扩散次数,fine表示的扩散惩罚值,其计算公式为其中,分别表示三个顶点的扩散惩罚值;用ut和ut′两个集合来表示待扩散的三角形集合和扩散中间过程产生的临时三角形集合;计算的面积则将加入ut中;若则对ta中下一个三角形进行步骤b1操作;

b2、对集合ut中的第m2个三角形计算的中心点vc,其坐标计算如公式(2)所示;将中心点vc作为新的扩散顶点加入到点云pa中,并按如下方法对vc的法向量和可视信息进行更新:vc的法向量等于的平面法向量;vc的可视信息vc=v0∪v1∪v2,其中v0、v1、v2分别表示三个顶点的可视信息;

b3、插入点vc之后,点vc与三角形的三个顶点分别构成三个新三角形,将这三个新三角形加入到集合ut′中;

b4、遍历集合ut中的每一个三角形,重复b2和b3步骤,遍历完之后交换集合ut和ut′;

b5、若集合ut不为空,则重复进行步骤b4;若集合ut为空,则对下一个三角形重复步骤b1到b5,直至遍历完ta中的所有三角形为止。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,步骤d中重新构建三角网格、网格顶点法向信息更新的方法如下:

对于经过改进的面片优化和滤波操作之后的点云,使用步骤a1到a2所示方法对其进行三角网格构建,网格顶点的可视信息保持不变;然后使用步骤a3中的网格顶点法向量更新方法对该网格的顶点进行法向信息更新。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,步骤d中扩散惩罚值更新方法具体步骤为:

使用ta′表示初始空间三角网格ta经过网格插值扩散、改进的面片优化和滤波步骤之后重新构建的新三角网格;

d1、计算初始空间三角网格ta中所有三角形的扩散成功率r;

使用扩散成功率r作为判断一个三角形是否接受惩罚的依据,对于ta中第m1个三角形其扩散成功率其中,na表示三角形扩散过后得到的扩散顶点的总数,nr表示在改进的面片优化和滤波之后三角形包含的扩散顶点存活个数;扩散成功率反映处于空洞区域的可能性,越小,越有可能处于空洞区域,则包含的顶点均接受惩罚,使其在下一轮扩散中被削弱扩散力度;

d2、对于新三角网格ta′中第b个网格顶点vb′,如果vb′是扩散顶点,则找到vb′的母三角形tp,tp即为扩散出vb′的三角形,并进行步骤d3;如果vb′是初始顶点,则保持其扩散惩罚值不变;

d3、如果vb′的母三角形tp的扩散成功率则需要对点vb′进行惩罚,按照公式(3)更新vb′的扩散惩罚值f′b;如果tp的扩散成功率则不对点vb′进行惩罚,按照公式(4)更新其扩散惩罚值f′b;公式(3)和(4)中的分别表示母三角形tp三个顶点的扩散惩罚值,fu为预先设定的惩罚值;

d4、遍历ta′中的每一个网格顶点,重复步骤d2到d3,完成ta′的网格顶点扩散惩罚值的更新。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,其中,n1为大于等于1的整数,n2为大于等于1的整数。

作为本发明所述的一种基于pmvs的建筑物密集点云快速重建方法进一步优化方案,n1为3,n2为2。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

(1)本发明充分利用建筑物多平面的几何特性,基于建筑物假设平面模型提供的平面先验知识,提出了一种基于空间三角网格插值扩散的pmvs改进方法,可以有效提高pmvs方法的运行效率,实验证明,使用本发明提供的改进pmvs方法在重建点云丢失率低于5%的情况下,较原pmvs方法运行速度的提升可达到15%~23%;

(2)本发明对自然景观带来的点云噪声具有一定的滤波作用,与原pmvs方法的重建结果相比,本发明提供的改进方法重建出的建筑物密集点云所包含的非建筑物主体的点云噪声明显减少;

(3)本发明的方法提供的基于建筑物假设平面模型的空间网格插值算法可以快速获取精度较高的建筑物的准密集点云。

附图说明

图1为本发明的方法流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。

如图1所示,本发明公开了一种基于空间三角网格插值扩散的pmvs改进方法,利用建筑物假设平面模型构建三角网格,通过对三角网格进行空间插值扩散,快速获取准确有效的准密集点云,并以此代替pmvs算法自建的稀疏点云作为扩散种子点,可以有效提高pmvs算法的运行效率,包括以下步骤:

步骤a.以假设平面拟合算法得到的点云平面聚类作为输入数据,使用delaunay三角剖分算法构建待重建建筑物的初始空间三角网格模型,并对三角网格进行信息初始化,其具体步骤如下:

a1.对于假设平面模型中第a个平面所包含的点云pa,将点云pa中的所有三维点坐标由三维全局坐标系转换到其所在假设平面的二维局部坐标系中,得到二维点集pa′;

定义o-xyz为全局坐标系,o-x′y′z′为目标局部坐标系,两个坐标系均以o为原点,o-xyz的三个坐标轴方向的单位向量分别为:pa所在平面的单位法向量为则求出o-x′y′z′的三个坐标轴方向的单位向量是垂直于的平面上任意两个互相垂直的单位向量;用vb表示pa中第b个三维点,分别表示vb的全局坐标和局部坐标;按照公式(1)将pa由转换至的x′坐标和y′坐标作为pa的二维平面坐标,从而得到二维点集pa′;

a2.以二维点集pa′和pa所在平面包含的线段集合ea作为输入数据,使用二维限定delaunay三角剖分算法构建pa′的三角网格,得到初始三角网格其中,n3表示三角网格中的三角形个数,为ta中第m1个三角形;由于点云在pa和pa′中的排列顺序并未改变,所以ta表示的三角网格关系可以直接应用于pa,即ta表示pa所在假设平面的初始空间三角网格;

a3.对ta进行信息初始化;三角网格信息包括:网格顶点坐标、法向量、可视信息和扩散惩罚值;由于ta中的网格顶点等同于pa中的三维点,所以用vb表示第b个网格顶点,用表示第b个网格顶点的坐标,用表示第b个网格顶点的单位法向量,用vb表示第b个网格顶点的可视信息(即可视图片的索引的集合),用fb表示第b个网格顶点的扩散惩罚值;

所有网格顶点的坐标使用其对应的pa中三维点的全局坐标进行初始化;所有网格顶点的扩散惩罚值均初始化为0;所有网格顶点的可视信息由三维线段模型重建算法的重建结果中的三维线段可视信息来进行初始化,每个顶点的可视信息与其所在三维线段的可视信息保持一致;网格顶点的法向量初始化过程如下:

遍历ta中每一个三角形,计算其平面单位法向量;第m1个三角形的平面单位法向量为并保证夹角呈锐角;其中为三角形的中心坐标,计算公式如公式(2)所示,分别为三角形的三个顶点的坐标,normalize()表示向量的单位化;

遍历ta中每一个网格顶点,计算其单位法向量;第b个网格顶点的单位法向量即任意网格顶点的法向量是包含该顶点的所有三角形的平面单位法向量的平均;其中表示以vb为顶点的第m2个三角形的平面单位法向量,n4表示以vb为顶点的三角形的总个数;

a4.遍历建筑物假设平面模型中的所有平面,重复步骤a1到a3。

步骤b.使用三角网格空间插值扩散算法来对初始空间三角网格模型进行扩散加密,其具体步骤如下:

b1.对于初始空间三角网格ta中第m1个三角形计算其面积阈值其中表示三角网格的平均三角形面积,loop表示预先设定的扩散次数,fine表示的扩散惩罚值,其计算公式为其中,分别表示三个顶点的扩散惩罚值;用ut和ut′两个集合来表示待扩散的三角形集合和扩散中间过程产生的临时三角形集合;计算的面积则将加入ut中;若则对ta中下一个三角形进行步骤b1操作、

b2.对集合ut中的第m2个三角形计算的中心点vc,其坐标计算如公式(2)所示;将中心点vc作为新的扩散顶点加入到点云pa中,并按如下方法对vc的法向量和可视信息进行更新:vc的法向量等于的平面法向量;vc的可视信息vc=v0∪v1∪v2,其中v0、v1、v2分别表示三个顶点的可视信息;

b3.插入点vc之后,点vc与三角形的三个顶点分别构成三个新三角形,将这三个新三角形加入到集合ut′中;

b4.遍历集合ut中的每一个三角形,重复b2和b3步骤,遍历完之后交换集合ut和ut′;

b5.若集合ut不为空,则重复进行步骤b4;若集合ut为空,则对下一个三角形重复步骤b1到b5,直至遍历完ta中的所有三角形为止。

步骤c.使用改进的面片优化和滤波算法对扩散后的三角网格顶点构成的点云进行面片优化和滤波,其具体如下:

步骤c使用了一种改进的面片优化算法,具体为:

将pmvs的非线性优化中的三个变量降为了一个变量。原pmvs算法的三个优化变量是:面片位置c(p)以及和面片法向量n(p)相关的两个欧拉角,而本发明的非线性优化变量只有面片位置c(p)一个,面片的法向量在优化过程中保持初始值不变。原pmvs算法的面片位置被限制在面片中心与参考照片对应的相机光心的连线上,面片位置只能沿着这条线移动;本发明算法则将面片位置限制在面片的法向量上,优化过程中面片只能沿着面片法向量的方向进行移动。

步骤c使用的面片滤波算法在原pmvs的面片滤波算法基础上,增加了一次基于meanshift聚类的中值滤波算法,具体流程如下:

对于假设平面模型中第a个初始空间三角网格ta,其经过插值扩散和面片优化之后得到点云pa″,先使用meanshift聚类算法对pa″进行聚类,计算聚类结果中包含三维点个数最多的聚类的聚类中心的c,计算pa″中的所有点在假设平面法向量方向上到聚类中心c的平均距离然后遍历pa″中的每一个新扩散点vj,计算vj到其母三角形所在平面的距离dj,若则将vj判定为杂点并将其滤除。

步骤d.对经过改进的面片优化和滤波之后的点云重新构建三角网格,对点云法向信息和扩散惩罚值进行更新,其具体如下:

步骤d中重新构建三角网格和网格顶点法向信息更新的方法如下:

对于经过改进的面片优化和滤波操作之后的点云,使用步骤a1到a2所示方法对其进行三角网格构建,网格顶点的可视信息保持不变。然后使用步骤a3中所述的网格顶点法向量更新方法对该网格进行法向信息更新。

步骤d中使用的网格顶点扩散惩罚值更新方法具体步骤为:

使用ta′表示初始空间三角网格ta经过网格插值扩散、面片优化和滤波步骤之后重新构建的新三角网格;

d1.计算初始空间三角网格ta中所有三角形的扩散成功率r;

使用扩散成功率r作为判断一个三角形是否接受惩罚的依据,对于ta中第m1个三角形其扩散成功率其中,na表示三角形扩散过后得到的扩散顶点的总数,nr表示在面片优化和滤波之后三角形包含的扩散顶点存活个数;扩散成功率反映处于空洞区域的可能性,越小,越有可能处于空洞区域,则包含的顶点均接受惩罚,使其在下一轮扩散中被削弱扩散力度;

d2.对于新三角网格ta′中第b个网格顶点vb′,如果vb′是扩散顶点,则找到vb′的母三角形tp(即扩散出vb′的三角形),并进行步骤d3;如果vb′是初始顶点,则保持其扩散惩罚值不变;

d3.如果vb′的母三角形tp的扩散成功率则需要对点vb′进行惩罚,按照公式(3)更新vb′的扩散惩罚值f′b;如果tp的扩散成功率则不对点vb′进行惩罚,按照公式(4)更新其扩散惩罚值f′b;公式(3)和(4)中的分别表示母三角形tp三个顶点的扩散惩罚值,fu为预先设定的惩罚值;

d4.遍历ta′中的每一个网格顶点,重复步骤d2到d3,完成ta′的网格顶点扩散惩罚值的更新。

步骤e.循环b、c、d三个步骤n1次后,将获得的准密集点云作为pmvs算法的种子点,重复进行原pmvs算法的面片扩散、面片优化、面片滤波三步流程n2次,得到最终的密集点云;实验中n1可取3,n2可取2。

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