基于粒子群优化多视角立体点云生成方法及应用的摄像机与流程

文档序号:13513950阅读:387来源:国知局
基于粒子群优化多视角立体点云生成方法及应用的摄像机与流程
本发明属于图像处理
技术领域
,尤其涉及一种基于粒子群优化多视角立体点云生成方法及应用的摄像机。
背景技术
:多视角三维重建是通过摄像机在不同角度对某个场景及对象进行拍摄,利用拍摄到的多视图图像序列来恢复场景及场景中对象的三维结构模型。在场景模型的三维重建中,获取场景或对象三维模型的经典方法有两种:一种是直接利用光学原理,用特定的设备对场景或对象扫描恢复场景或对象三维模型,称为主动法,如结构光投影法和激光扫描法;另一种是利用图像序列信息,从平面图像中恢复场景或对象的三维模型,称为被动法。虽然通过结构光投影法和激光扫描法对目标直接测量能够获得精确的重建结果,但是硬件设备的昂贵成本、人工操作繁琐以及应用场合受限,使得其难以得到广泛的推广。目前基于图像序列的立体重建方法主要分为基于面片扩散和基于深度图融合的方法。基于面片扩散的方法中,furukawa等人2010年在《ieeetransactionsonpatternanalysisandmachineintelligence》的第32卷第8期上发表的《accurate,dense,androbustmultiviewstereopsis》中提出的pmvs算法性能优异,该算法首先对图像分别做dog和harris特征检测,将特征点利用立体匹配生成稀疏的初始面片,再利用这些种子扩张生成密集点云并滤波得到最终结果。该方法在特征匹配时使用dog和harris特征,并通过极线约束和局部纹理相似性两种手段保证匹配准确性,但是在纹理一致性区域,该方法存在误匹配的情况;该算法使用共轭梯度方法优化面片的深度信息和法向量信息,然而共轭梯度算法可能陷入局部最优。综上所述,现有技术存在的问题是:目前基于设备的三维立体重建方法存在硬件设备成本昂贵、人工操作繁琐以及应用场合受限;基于图像的三维立体重建方法特征误匹配使得最终生成的点云精度下降,梯度算法优化参数时容易陷入局部最优,得不到全局最优解。技术实现要素:针对现有技术存在的问题,本发明提供了一种基于粒子群优化多视角立体点云生成方法及应用的摄像机。本发明是这样实现的,一种基于粒子群优化多视角立体点云生成方法,所述基于粒子群优化多视角立体点云生成方法包括以下步骤:第一步,初始化信息,提取各图像的surf特征,对提取的特征进行立体匹配并对特征匹配对施加极线约束,生成特征匹配对对应的初始三维空间面片,使用粒子群优化算法优化初始三维空间面片的参数;第二步,将优化后的面片在空间邻域扩张形成密集的点云,对得到的密集点云执行滤波操作;第三步,多次执行面片扩张和滤波操作直到满足停止条件。进一步,所述基于粒子群优化多视角立体点云生成方法具体包括以下步骤:步骤一,信息初始化;步骤二,特征提取与特征立体匹配;步骤三,将面片集合在空间邻域扩张生成密集面片集合;步骤四,将步骤三中得到的面片集合执行滤波操作;步骤五,重复步骤三~步骤四,直到满足停止条件。进一步,粒子群优化算法优化包括:1)面片p坐标c(p)限定在c(p)与r(p)光心连线上,r(p)表示参考图像;cr表示参考图像对应相机的光心;2)n(p)转换到球坐标系下:fz为n(p)在p参考图像对应的相机坐标系z轴上的投影,fx为n(p)在p参考图像对应的相机坐标系x轴上的投影,θ为n(p)在参考图像对应的相机球坐标系下的仰角,为n(p)在参考图像对应的相机球坐标系下的方位角;4)c(p)相对r(p)光心的深度变化δd、n(p)仰角θ以及方位角作为自变量,使用粒子群算法不断更新c(p)与n(p):(1)设选取的粒子数为m,迭代次数为t,粒子的速度和位置变化范围如下:δvmax={v1max,v2max,v3max};δvmin={v1min,v2min,v3min};(2)初始化各粒子的速度和位置:xk=x+rk·(δxmax-δxmin)+δxmin;vk=rvk·(δvmax-δvmin)+δvmin;其中,x为面片的初始参数,xk和vk分别为第k个粒子的位置和速度,rk和rvk为随机参数;(3)更新各粒子速度和位置:vkj+1=w·vkj+c1·r1·(pk-xkj)+c2·r2·(g-xkj);xkj+1=xkj+vkj+1;其中,k表示第k个粒子,j表示第j次迭代值,w为动态变量,c1和c2为固定权重参数,r1和r2为随机权重值,pk表示第k个粒子的当前最佳位置,g表示所有粒子当前最佳位置;(4)设当前迭代次数为j,以各粒子位置xkj为参数,反解出对应的面片参数值,并获得对应面片参数下的目标函数值:c(pkj)=c(p)+xkj(1)*ray;fx=sin(xkj(3))cos(xkj(2)),fy=sin(xkj(3))sin(xkj(2)),fz=cos(xkj(3));n(pkj)=(fx,fy,fz);其中,pkj表示第k个粒子第j次迭代的解对应的临时面片,g*(pkj)表示pkj目标函数值;(6)迭代执行(3)和(4),迭代停止时,目标函数值最小的粒子位置参数g作为最优解更新面片p:c(p)=c(p)+g(1)*ray;fx=sin(g(3))cos(g(2)),fy=sin(g(3))sin(g(2)),fz=cos(g(3));n(p)=(fx,fy,fz);更新后的面片即为优化后的结果。进一步,所述步骤二包括:1)对图像序列中各图像提取surf特征,得到特征集合feature={fk},其中fk表示第k幅图像对应的特征集合;2)考虑图像序列中图像ik的特征集合fk,fk中有n个特征点,对于fk中一个特征fki(1≤i≤n),在特征集合找到与fki描述子欧式距离最小的特征点f',f'所在图像为i';对特征匹配对(fki,f')施加极线约束,若满足约束条件,则认为匹配对(fki,f')有效;3)通过三角测量生成匹配对(fki,f')对应面片p的三维坐标c(p),将图像ik作为面片p的参考图像r(p),p单位法向量由下式给出:其中,cr表示参考图像r(p)对应相机的光心;4)面片p的可视图像集v(p):其中,ci表示第i幅图像ii对应相机的光心;5)面片p的精准可视图像集v*(p):v*(p)={i|i∈v(p),h(p,i,r(p))≤α};其中h(p,i1,i2)表示1与面片p投影到图像i1的局部区域与投影到图像i2局部区域的相似度分数之差;6)使用粒子群优化算法优化面片p参数;7)采用4)与5)更新v(p)与v*(p);8)|v*(p)|≤γ,则认为面片p不可靠,舍去;否则保留面片p。本发明的另一目的在于提供一种使用所述基于粒子群优化多视角立体点云生成方法的摄像机。本发明的另一目的在于提供一种使用所述基于粒子群优化多视角立体点云生成方法的手机。本发明的另一目的在于提供一种使用所述基于粒子群优化多视角立体点云生成方法的计算机。本发明的优点及积极效果为:利用多视图三维重建技术,利用普通的相机或者手机获取场景多视角图像,甚至下载互联网上同一场景的不同视角的图片,利用计算机视觉中的多视角重建算法获得场景的三维立体信息;surf特征稳定性高,具有旋转不变性和尺度不变性,能够保证视角变化下特征匹配的稳定性,然后极线约束则通过空间几何关系进一步保证匹配的准确性,而准确的特征匹配对能得到准确的初始面片;粒子群算法是一种随机搜索算法,因其随机特性,在优化面片参数时能够克服梯度优化算法易陷入局部最优的缺陷,能得到全局最优解;能进一步提高点云重建的质量,可应用于三维地形重建和三维街景重建。附图说明图1是本发明实施例提供的基于粒子群优化多视角立体点云生成方法流程图。图2是本发明实施例提供的基于粒子群优化多视角立体点云生成方法实现流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。下面结合附图对本发明的应用原理作详细的描述。如图1所示,本发明实施例提供的基于粒子群优化多视角立体点云生成方法包括以下步骤:s101:初始化信息,提取各图像的surf特征,并对提取的特征进行立体匹配并对特征匹配对施加极线约束,将生成特征匹配对对应的初始三维空间面片,使用粒子群优化算法优化初始三维空间面片的参数;s102:将优化后的面片在空间邻域扩张形成密集的点云,再对得到的密集点云执行滤波操作;s103:多次执行面片扩张和滤波操作直到满足停止条件。下面结合附图对本发明的应用原理作进一步的描述。本发明实施例使用的图像来自公共图像集合templering。采用的图像集合包括数量为n=47的图像序列,以及对应相机的内参矩阵k、旋转矩阵r以及平移矩阵t。如图2所示,本发明实施例的基于粒子群优化方法的多视角立体点云生成方法,包括如下步骤:步骤1)信息初始化;步骤1a)从图像序列集合templering读入47幅图像;步骤1b)读入图像ik对应相机的参数kk、rk以及tk,并由相机参数生成对应的投影矩阵pk,公式如下:pk=kk*[rktk];其中k表示第k幅图像,且1≤k≤47;步骤1c)由pk分解得到对应相机的光心ck,pk表示第k幅图像对应相机的投影矩阵,ck表示第k幅图像对应相机的光心,且1≤k≤47。步骤2)特征提取与特征立体匹配;步骤2a)对图像序列中各图像提取surf特征,得到特征集合feature={fk},其中fk表示第k幅图像对应的特征集合,1≤k≤47;步骤2b)考虑图像序列中图像ik(1≤k≤47)的特征集合fk,设fk中有n个特征点,对于fk中一个特征fki(1≤i≤n),在特征集合{fj|1≤j≤47,j≠k}找到与fki描述子欧式距离最小的特征点f',设f'所在图像为i';对特征匹配对(fki,f')施加极线约束,若满足约束条件,则认为匹配对有(fki,f')效;步骤2c)通过三角测量生成匹配对(fki,f')对应面片p的三维坐标c(p),将图像ik作为面片p的参考图像r(p),p单位法向量由下式给出:其中,ck表示第k幅图像对应相机的光心,1≤k≤47;面片是重建对象局部切平面,大小为μ×μ,μ=5,其三维坐标为其中心的三维坐标,其法向量则由其中心指向其可视图像;步骤2d)面片p的可视图像集v(p)定义如下:其中,ci表示第i幅图像ii对应相机的光心,1≤i≤47;步骤2e)面片p的精准可视图像集v*(p)定义如下:v*(p)={i|i∈v(p),h(p,i,r(p))≤α};其中h(p,i1,i2)表示1与面片p投影到图像i1的局部区域与投影到图像i2局部区域的相似度分数之差;α在实验中取0.3;步骤2f)使用粒子群优化算法优化面片p参数;(2f1)面片p坐标c(p)限定在c(p)与r(p)光心连线上:cr指的是参考图像对应的相机的光心;(2f2)n(p)转换到球坐标系下:fz为n(p)在p参考图像对应的相机坐标系z轴上的投影,fx为n(p)在p参考图像对应的相机坐标系x轴上的投影,θ为n(p)在参考图像对应的相机球坐标系下的仰角,为n(p)在参考图像对应的相机球坐标系下的方位角;(2f3)c(p)相对r(p)光心的深度变化δd、n(p)仰角θ以及方位角作为自变量,使用粒子群算法不断更新c(p)与n(p):(2f31)设选取的粒子数为m,迭代次数为t,粒子的速度和位置变化范围如下:δvmax={v1max,v2max,v3max};δvmin={v1min,v2min,v3min};(2f32)初始化各粒子的速度和位置:xk=x+rk·(δxmax-δxmin)+δxmin;vk=rvk·(δvmax-δvmin)+δvmin;其中,x为面片的初始参数,xk和vk分别为第k个粒子的位置和速度,rk和rvk为随机参数;(2f33)更新各粒子速度和位置:vkj+1=w·vkj+c1·r1·(pk-xkj)+c2·r2·(g-xkj);xkj+1=xkj+vkj+1;其中,k表示第k个粒子,j表示第j次迭代值,w为动态变量,c1和c2为固定权重参数,r1和r2为随机权重值,pk表示第k个粒子的当前最佳位置,g表示所有粒子当前最佳位置;(2f34)设当前迭代次数为j,以各粒子位置xkj为参数,反解出对应的面片参数值,并获得对应面片参数下的目标函数值:c(pkj)=c(p)+xkj(1)*rayfx=sin(xkj(3))cos(xkj(2)),fy=sin(xkj(3))sin(xkj(2)),fz=cos(xkj(3));n(pkj)=(fx,fy,fz);其中,pkj表示第k个粒子第j次迭代的解对应的临时面片,g*(pkj)表示pkj目标函数值;(2f35)迭代执行(2f33)和(2f34),迭代停止时,目标函数值最小的粒子位置参数g作为最优解更新面片p:c(p)=c(p)+g(1)*ray;fx=sin(g(3))cos(g(2)),fy=sin(g(3))sin(g(2)),fz=cos(g(3));n(p)=(fx,fy,fz);更新后的面片即为优化后的结果。步骤2g)采用步骤2d)与步骤2e)更新v(p)与v*(p);步骤2h)若|v*(p)|≤γ,γ取3;则认为面片p不可靠,舍去;否则保留面片p。步骤3)将面片集合在空间邻域扩张生成密集面片集合;步骤3a)将步骤2)中生成的面片放入q集合,将图像集合中每一幅图像划分为2×2的单元格;步骤3b)将集合q中的各面片p投影至其精准可视图像集v*(p)单元格内,搜索v*(p)中投影单元格8-近邻的满足以下条件的单元格形成集合cell(p):(1)单元格内无其他面片投影;(2)单元格内有其他面片投影且投影面片与p不存在空间近邻关系;步骤3c)对于cell(p)中每一个单元格,由面片p参考图像对应的相机光心通过其中心交面片p所在平面于一点c,在c生成新面片p':d=(c(p)-c)*n(p)/(ray*n(p));c=c+d*ray;c(p')=c;n(p')=n(p);v(p')=v*(p);其中,c表示单元格所在图像对应的相机的光心,ray表示通过c与单元格中心形成的单位视线向量;对面片p'执行与步骤2f)~步骤2h),若p'能保留,则将其投影至其v*(p')。步骤4)将步骤3)中得到的面片集合执行滤波操作;步骤4a)滤除面片集合中的离群面片;(4a1)考虑面片集合中面片p,u表示与p没有空间近邻关系却能投影到相同单元格的面片集合;(4a2)若:满足,则删除面片p;步骤4b)v*(p)中图像通过深度测试对p可见的图像数量小于γ,删除p;步骤4c)收集p在其v(p)中投影单元格及其8-邻域单元格j(p),所有能投影至j(p)中单元格的面片中,若其中与p存在空间近邻关系的面片比率低于0.25,则删除p。步骤5)重复步骤3)~步骤4),直到满足停止条件。下面结合仿真实验对本发明的应用效果作详细的描述。1、仿真条件:在中央处理器为intel(r)core(tm)i5-65003.20ghz、内存8g、windows7操作系统上,运用visualstudio软件进行的仿真。仿真使用的图像来自公共图像集合templering。其中包含序列图像47张,以及各图像对应相机的内参k、旋转矩阵r以及平移矩阵t。2、仿真内容及结果分析:本发明以重建精确度以及完成度进行评测,重建精确度反映算法重建三维对象的精确程度,完成度则反映算法恢复三维对象的完整程度。重建精确度以重建面片和ground-truth误差值表示,误差值越小,表示重建的面片更准确。重建完成度则以重建有效面片数与ground-truth百分比来衡量,百分比越高,完成度越高。平均能量值体现优化算法的性能,能量值越低,优化算法性能越好。实验采用同样的初始面片参数,分别用共轭梯度算法以及粒子群优化算法优化,比较各面片最终能量函数值、点云精确度以及点云完成度,实验结果如下:表1方案平均能量值完成度精确度case10.157198.50.58case20.107899.3%0.56case1是pmvs的实验结果,其中面片参数使用共轭梯度优化,case2为本发明的实验结果,其中面片参数使用粒子群优化算法优化。分析表1,由面片平均能量对比可以看出,在本次实验中,粒子群优化算法相比于共轭梯度算法确实能有效的降低能量函数值,说明本发明相较于pmvs能提升单个重建面片的质量。由精确度对比可以看出;本发明相较于pmvs,点云的精确度得到有效提升。由完成度对比可以看出,本发明的实验结果相比于pmvs有更好的完成度。由于本发明能有效提高单个面片的质量,因此,最终点云的的质量也会得到提升,使得整体精确度有了提高。点云质量的提高又会使点云中错误面片数降低,滤波后滤除的点数变少,使得完成度也有了提高。理论分析与最终实验结果一致。综上所述,本发明能有效的恢复公共图像集合templering的点云数据,并能有效提高重建质量。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1