基于蛙跳算法的直线射影深度估计方法

文档序号:8923288阅读:325来源:国知局
基于蛙跳算法的直线射影深度估计方法
【技术领域】
[0001] 本发明涉及射影重构技术领域,具体涉及一种基于蛙跳算法的直线射影深度估计 方法。
【背景技术】
[0002] 基于图像序列的三维重建通常是用点的重建,通过图像序列中对应的特征点匹 配,在已知摄像机参数矩阵的条件下,就可以计算出点的三维坐标,三维物体的形状与位置 就可以唯一确定。近年来,由于边缘检测算法的日益进步,物体的边缘较容易检测得到,而 三维空间直线、曲线的重建就逐渐受到关注,成为计算机视觉领域的一大热点问题。特别对 于建筑物等人工场景,直线是在几何模型里非常常见的元素。在部分图像中有遮挡的时候, 直线仍能提供足够的信息用于重建,也不会影响重建的结果。

【发明内容】

[0003] 本发明所要解决的技术问题是提供一种基于蛙跳算法的直线射影深度估计方法, 其能够对三维空间直线到摄像机的射影深度进行估计,并使得合适的调整矩阵可以进行因 数分解。
[0004] 为解决上述问题,本发明是通过以下技术方案实现的:
[0005] 基于蛙跳算法的直线射影深度估计方法,包括如下步骤:
[0006] 步骤1,将n条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩 阵;
[0007] 步骤2,对所得透视图像序列及测量矩阵进行归一化处理;
[0008] 步骤3,选择子群数量a和每个子群中青蛙的个数b,则整个种群的数量G=aXb; 定义一个解
,i= 1,2,…,n,j= 1,2,…,m;
[0009] 步骤4,生成G个青蛙,每个青蛙代表一个解U(x);
[0010] 步骤5,将每只青蛙所对应的测量矩阵进行奇异值分解,并由适应度函数公式计算 每只青蛙的适应度J(x);
[0011] 步骤6,将所有青蛙按其青蛙的适应度J(x)排序,生成一个集合X= {(U(x), J(x)},并记录整个种群中适应度最好青娃Pg;
[0012] 步骤7,将集合X分成a个子群YK,每个子群YK包含b个青娃,并按以下公式将青 蛙分组,放入不同的子群,
[0013] Yk=[(U⑴k,J(l)k)|U(l)k=U(k+a(l-l)),J(l)k=J(k+a(l-l))]
[0014] 其中k= 1,2,…,a,1 = 1,2, ? ??,b;
[0015] 步骤7,通过意识进化,使得每组子群中的每只青蛙离目标位置更逼近;
[0016] 步骤8,在每个子群中执行了一定意识进化以后,将各个子群¥1?进行合并,合并后 再按青蛙的适应度J(x)进行重新排序,以更新集合X= {(U(x),J(x)}及整个种群中适应 度最好青娃Pg;
[0017] 步骤9,检查终止条件,如果迭代终止条件满足,则将整个种群中适应度最好青蛙 Pg所代表的解U(x)作为待求的射影深度输出;否则,返回步骤6。
[0018] 上述步骤7中,将每组子群中执行意识进化的过程如下:
[0019] 步骤7-1,初始化子群计数im= 0,进化次数in= 0 ;用Pb和Pw分别表示每个子 群YK*适应度最好和最差青虫圭;
[0020] 步骤7-2,子群计数im不变,并逐渐增大进化次数in,直至进化次数in达到设定 的最大进化数N,每次进化次数in的变化对应一轮进化迭代;进化次数in不变,并逐渐增 大子群计数im,直至子群计数im达到设定的子群数量a,每次子群计数im的变化对应一轮 进化迭代;
[0021] 步骤7-3,在每一轮进化迭代过程中,均采用如下方法调整每个子群中适应度最差 青蛙Pw位置,即先计算最差青蛙Pw移动到最好青蛙Pb的距离D,再将最差青蛙Pw的当前 位置加上距离D作为最差青蛙Pw的更新后的位置;
[0022] 步骤7-4,比较最差青蛙Pw更新前和更新后的适应度,如果更新后的适应度好于 更新前的适应度,则用处于新位置的最差青蛙Pw取代原来的青蛙,否则用整个种群中适应 度最好青蛙Pg代替每个子群YK中适应度最好青蛙Pb,并重复步骤7-3的过程;
[0023] 步骤7-5,如果始终不能生成更好的青蛙,那么就随机生成一个新的青蛙去取代原 来最差青娃Pw。
[0024] 上述步骤5和步骤8中,均采用适应度J(x)升序的方式对所有青蛙的进行排序。
[0025] 上述步骤9中,将整个种群中适应度最好青蛙Pg不再改变或达到最大的进化次数 N作为迭代终止条件。
[0026] 上述步骤2中,对所得透视图像序列及测量矩阵进行归一化处理是让每一幅透视 图像中的透视图像的坐标乘上1个公共因子,使它们的平均范数为七。
[0027] 与现有技术相比,本发明基于蛙跳算法来实现直线射影重构中的射影深度的估 计,由于娃跳算法是结合了以遗传为基础的memetic算法和以社会行为为基础的粒子群优 化PSO算法的优点,因此本射影深度估计方法具有收敛速度快,容易获得最优解的特点,其 所估计出的射影深度能够使得合适的调整矩阵可以进行因数分解。
【具体实施方式】
[0028] 直线的射影重建算法原理:
[0029] 首先用公式表示直线的射影重建。
[0031] 式中,R表示从透视图像中检测出来的特征直线的相关测量矩阵。类似于从点的重 建,R在因数分解前需要重新调节。这就需要一个图像直线相关的比例因子(射影深度); Q表示摄像机运动;L表示直线结构。
[0032] 假设在m幅透视图像中有n条三维维直线。目的是从图像的测量矩阵重建三维结 构(线的空间位置)和运动(摄像机位置)。
[0033] -个简单的关于直线的图像投影方程如下,%为射影深度:
[0035] 式中,Qi是秩为3的3X6矩阵。
[0037] 式中,是摄像机矩阵行,,表示匹配的平面?&和Pis的交线。
[0038] 完整的透视投影方程为:
[0040] 式中,Q和L分别表示运动和结构,3m'n矩阵R为重新调节的测量矩阵。Lj为三 维空间直线在无穷远坐标平面的表示,即三维空间直线投影到平面的表示,其可以从透视 图像获得,射影深度%未知。
[0041] 对矩阵进行SVD分解为
[0042] R是直线测量矩阵,在相差任意非零常数因子的情况下可以写为:
[0044] 式中,H秩为6,因此(;=(_)//和L= /://均为R分解。
[0045] 由上可知,要实现直线射影重构,其主要工作就是用合适的方法求得正确的射影 深度。由于构成测量矩阵的图像数据之间的不平衡,优化过程有时是非常不稳定的,为了避 免这种不稳定,对图像坐标进行归一化处理是非常有效的。本文归一化方法是:每一幅图像 中的A/丨乘上一公共因子Si(i= 1,…,F),使它们的平均范数为万。
[0046] 在无噪声且射影深度为正确值的理想情况下,测量矩阵R的秩是6,适应度函数:
[0048] 式中,J=0是秩为6的充要条件,于是求使J取最小值的{%}将给出所需要的射 影深度。利用SVD分解,极小化从第7个以后的奇异值
[0049] 蛙跳算法的原理:在SFLA中,种群由很多青蛙组成,每只青蛙代表一个解。种群被 分成了多个子群,每个子群包括一定数量的青娃,成为一个memeplex。不同的memeplex可 以看做是具有不同文化的青蛙群,分别执行局部搜索。在每个memeplex中,每只青蛙都有 自己的想法,并且还受其他青娃想法的影响,通过memetic进化来发展。这样,经过一定的 memetic进化以及跳跃过程,这些想法思路就在各个memeplex中传播开来。然后,继续局部 搜索和跳跃,直到收敛标准满足为止。
[0050] 本发明采用奇异值(SVD)分解获得直线射影结构,引入蛙跳算法估计射影深度信 息,并使其收敛获得最精确值,再假定摄像机的内部参数已知以重建获得物体三维信息。
[0051] 据此,一种基于蛙跳算法的直线射影深度估计方法,其具体包括如下步骤:
[0052] 步骤1,将n条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩 阵;^是图像上直线的齐次坐标的标准向量,i=1,2,. . .,m表示第i幅透视图像,j= 1,2,. . .,n表示第j条
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1