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

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

Info

Publication number
CN104899924A
CN104899924A CN201510333397.0A CN201510333397A CN104899924A CN 104899924 A CN104899924 A CN 104899924A CN 201510333397 A CN201510333397 A CN 201510333397A CN 104899924 A CN104899924 A CN 104899924A
Authority
CN
China
Prior art keywords
frog
subgroup
fitness
centerdot
evolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510333397.0A
Other languages
English (en)
Inventor
雷晓春
周旭
江泽涛
王勇
陈俊彦
赵佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201510333397.0A priority Critical patent/CN104899924A/zh
Publication of CN104899924A publication Critical patent/CN104899924A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开一种基于蛙跳算法的直线射影深度估计方法,其首先将n个三维空间物体点通过q个射影矩阵投射到透视图像序列上,生成测量矩阵;然后对所得透视图像序列及测量矩阵进行归一化处理;最后生成G个青蛙,每个青蛙代表一个解,并利用蛙跳算法选出整个种群中适应度最好青蛙,并将最好青蛙所代表的解作为待求的射影深度输出。本发明具有收敛速度快,容易获得最优解的特点,其所估计出的射影深度能够使得合适的调整矩阵可以进行因数分解。

Description

基于蛙跳算法的直线射影深度估计方法
技术领域
本发明涉及射影重构技术领域,具体涉及一种基于蛙跳算法的直线射影深度估计方法。
背景技术
基于图像序列的三维重建通常是用点的重建,通过图像序列中对应的特征点匹配,在已知摄像机参数矩阵的条件下,就可以计算出点的三维坐标,三维物体的形状与位置就可以唯一确定。近年来,由于边缘检测算法的日益进步,物体的边缘较容易检测得到,而三维空间直线、曲线的重建就逐渐受到关注,成为计算机视觉领域的一大热点问题。特别对于建筑物等人工场景,直线是在几何模型里非常常见的元素。在部分图像中有遮挡的时候,直线仍能提供足够的信息用于重建,也不会影响重建的结果。
发明内容
本发明所要解决的技术问题是提供一种基于蛙跳算法的直线射影深度估计方法,其能够对三维空间直线到摄像机的射影深度进行估计,并使得合适的调整矩阵可以进行因数分解。
为解决上述问题,本发明是通过以下技术方案实现的:
基于蛙跳算法的直线射影深度估计方法,包括如下步骤:
步骤1,将n条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩阵;
步骤2,对所得透视图像序列及测量矩阵进行归一化处理;
步骤3,选择子群数量a和每个子群中青蛙的个数b,则整个种群的数量G=a×b;定义一个解 U ( x ) = { λ 1 1 , λ 1 2 , . . . , λ 1 j , λ 2 1 , λ 2 2 , . . . , λ 2 j , . . . , λ i j . . . , λ n m } , i=1,2,…,n,j=1,2,…,m;
步骤4,生成G个青蛙,每个青蛙代表一个解U(x);
步骤5,将每只青蛙所对应的测量矩阵进行奇异值分解,并由适应度函数公式计算每只青蛙的适应度J(x);
步骤6,将所有青蛙按其青蛙的适应度J(x)排序,生成一个集合X={(U(x),J(x)},并记录整个种群中适应度最好青蛙Pg;
步骤7,将集合X分成a个子群YK,每个子群YK包含b个青蛙,并按以下公式将青蛙分组,放入不同的子群,
Yk=[(U(l)k,J(l)k)|U(l)k=U(k+a(l-1)),J(l)k=J(k+a(l-1))]
其中k=1,2,…,a,l=1,2,...,b;
步骤7,通过意识进化,使得每组子群中的每只青蛙离目标位置更逼近;
步骤8,在每个子群中执行了一定意识进化以后,将各个子群YK进行合并,合并后再按青蛙的适应度J(x)进行重新排序,以更新集合X={(U(x),J(x)}及整个种群中适应度最好青蛙Pg;
步骤9,检查终止条件,如果迭代终止条件满足,则将整个种群中适应度最好青蛙Pg所代表的解U(x)作为待求的射影深度输出;否则,返回步骤6。
上述步骤7中,将每组子群中执行意识进化的过程如下:
步骤7-1,初始化子群计数im=0,进化次数in=0;用Pb和Pw分别表示每个子群YK中适应度最好和最差青蛙;
步骤7-2,子群计数im不变,并逐渐增大进化次数in,直至进化次数in达到设定的最大进化数N,每次进化次数in的变化对应一轮进化迭代;进化次数in不变,并逐渐增大子群计数im,直至子群计数im达到设定的子群数量a,每次子群计数im的变化对应一轮进化迭代;
步骤7-3,在每一轮进化迭代过程中,均采用如下方法调整每个子群中适应度最差青蛙Pw位置,即先计算最差青蛙Pw移动到最好青蛙Pb的距离D,再将最差青蛙Pw的当前位置加上距离D作为最差青蛙Pw的更新后的位置;
步骤7-4,比较最差青蛙Pw更新前和更新后的适应度,如果更新后的适应度好于更新前的适应度,则用处于新位置的最差青蛙Pw取代原来的青蛙,否则用整个种群中适应度最好青蛙Pg代替每个子群YK中适应度最好青蛙Pb,并重复步骤7-3的过程;
步骤7-5,如果始终不能生成更好的青蛙,那么就随机生成一个新的青蛙去取代原来最差青蛙Pw。
上述步骤5和步骤8中,均采用适应度J(x)升序的方式对所有青蛙的进行排序。
上述步骤9中,将整个种群中适应度最好青蛙Pg不再改变或达到最大的进化次数N作为迭代终止条件。
上述步骤2中,对所得透视图像序列及测量矩阵进行归一化处理是让每一幅透视图像中的透视图像的坐标乘上1个公共因子,使它们的平均范数为 2 .
与现有技术相比,本发明基于蛙跳算法来实现直线射影重构中的射影深度的估计,由于蛙跳算法是结合了以遗传为基础的memetic算法和以社会行为为基础的粒子群优化PSO算法的优点,因此本射影深度估计方法具有收敛速度快,容易获得最优解的特点,其所估计出的射影深度能够使得合适的调整矩阵可以进行因数分解。
具体实施方式
直线的射影重建算法原理:
首先用公式表示直线的射影重建。
式中,R表示从透视图像中检测出来的特征直线的相关测量矩阵。类似于从点的重建,R在因数分解前需要重新调节。这就需要一个图像直线相关的比例因子(射影深度);Q表示摄像机运动;L表示直线结构。
假设在m幅透视图像中有n条三维维直线。目的是从图像的测量矩阵重建三维结构(线的空间位置)和运动(摄像机位置)。
一个简单的关于直线的图像投影方程如下,为射影深度:
λ j i l j i = Q i L j - - - ( 2 )
式中,Qi是秩为3的3×6矩阵。
式中,是摄像机矩阵Pi的行,表示匹配的平面Pir和Pis的交线。
完整的透视投影方程为:
式中,Q和L分别表示运动和结构,3m′n矩阵R为重新调节的测量矩阵。Lj为三维空间直线在无穷远坐标平面的表示,即三维空间直线投影到平面的表示,其可以从透视图像获得,射影深度未知。
对矩阵进行SVD分解为
R是直线测量矩阵,在相差任意非零常数因子的情况下可以写为:
式中,H秩为6,因此均为R分解。
由上可知,要实现直线射影重构,其主要工作就是用合适的方法求得正确的射影深度。由于构成测量矩阵的图像数据之间的不平衡,优化过程有时是非常不稳定的,为了避免这种不稳定,对图像坐标进行归一化处理是非常有效的。本文归一化方法是:每一幅图像中的乘上一公共因子si(i=1,…,F),使它们的平均范数为
在无噪声且射影深度为正确值的理想情况下,测量矩阵R的秩是6,适应度函数:
J = Σ n = 7 N σ n 2 - - - ( 6 )
式中,J=0是秩为6的充要条件,于是求使J取最小值的将给出所需要的射影深度。利用SVD分解,极小化从第7个以后的奇异值
蛙跳算法的原理:在SFLA中,种群由很多青蛙组成,每只青蛙代表一个解。种群被分成了多个子群,每个子群包括一定数量的青蛙,成为一个memeplex。不同的memeplex可以看做是具有不同文化的青蛙群,分别执行局部搜索。在每个memeplex中,每只青蛙都有自己的想法,并且还受其他青蛙想法的影响,通过memetic进化来发展。这样,经过一定的memetic进化以及跳跃过程,这些想法思路就在各个memeplex中传播开来。然后,继续局部搜索和跳跃,直到收敛标准满足为止。
本发明采用奇异值(SVD)分解获得直线射影结构,引入蛙跳算法估计射影深度信息,并使其收敛获得最精确值,再假定摄像机的内部参数已知以重建获得物体三维信息。
据此,一种基于蛙跳算法的直线射影深度估计方法,其具体包括如下步骤:
步骤1,将n条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩阵;是图像上直线的齐次坐标的标准向量,i=1,2,...,m表示第i幅透视图像,j=1,2,...,n表示第j条三维空间直线。
步骤2,对图像进行归一化处理。
步骤3,初始化,选择a,b,其中a表示memeplex的数量,即子群数量,b表示每个子群中青蛙的个数,那么整个种群的数量G=a×b。由于射影模型可以用仿射模型迭代逼近,而仿射模型的射影深度为1,所以可以在(0,2]区间内随机选取,可以定义一个解为
U ( x ) = { λ 1 1 , λ 1 2 , . . . , λ 1 j , λ 2 1 , λ 2 2 , . . . , λ 2 j , . . . , λ i j . . . , λ n m }
其中i=1,2,…,n,j=1,2,…,m。
步骤4,生成G个青蛙,每个青蛙代表一个解,其中第x个的青蛙的解为U(x),即U(1),U(2),…,U(G),U(x)的性能即适应度用J(x)来表示,即J(1),J(2),…,J(G)。
步骤5,对青蛙划分等级,将每只青蛙对应的测量矩阵进行奇异值(svd)分解,并由适应度函数公式来计算每只青蛙的适应度,按适应度升序排列,生成集合YK={(U(x),J(x)},这样,该集合中处于第一位的青蛙的性能最好,记下种群中最好青蛙位置Pg。
步骤6,将青蛙分组,放入不同的子群。将集合X分成a个子群YK:Y1,Y2,…,Ya。每个子群包含b个青蛙,即
Yk=[(U(l)k,J(l)k)|U(l)k=U(k+a(l-1)),J(l)k=J(k+a(l-1))]
其中k=1,2,…,a,l=1,2,...,b;
比如a=4,那么第一只青蛙进入子群1,第2只进入子群2,第3只进入子群3,第4只进入子群4,第5只进入子群1,等等。
步骤7,将每组子群中执行意识进化。在每组子群中,每只青蛙受到其他青蛙想法的影响,通过意识进化,使得每只青蛙离目标位置更逼近。以下是每个子群中意识进化的详细步骤。
步骤7-1,设im=0,im表示对子群的计数,在0-a之间变化,与子群的数量a比较。设in=0,in表示进化次数,与每组子群中允许的最大进化次数N比较(N可以设定)。在每组子群中,用Pb和Pw分别表示性能最好和最差青蛙,用Pg表示整个种群中最好青蛙。在每一轮的进化中,改善最差青蛙Pw的位置,但并不是对所有青蛙都优化。
步骤7-2,im=im+1;
步骤7-3,in=in+1;
步骤7-4,调整最差青蛙位置,方法如下:
青蛙移动的距离D=rand()*(Pb-Pw)
新的位置Pw=Pw(当前位置)+D,(Dmax>=Di>=-Dmax)
其中,rand()是0到1之间的随机数,Dmax是允许青蛙移动的最大距离。
步骤7-5,如果上述过程能够使青蛙有一个更好的位置,即能够产生一个更好的解,那么就用新位置的青蛙取代原来的青蛙,否则,用Pg代替Pb,重复上述过程。
步骤7-6,如果上述方法仍不能生成更好的青蛙,那么就随机生成一个新解取代原来最差青蛙Pw;
步骤7-7,如果in<N,那么执行g-3;
步骤7-8,如果im<a,那么执行g-2。
步骤8,青蛙在子群之间跳跃移动,在每个子群中执行了一定意识进化以后,将各个子群Y1,Y2,…,Ya合并,并将合并后的进行按青蛙的适应度J(x)进行重新排序,以更新集合X={(U(x),J(x)}及整个种群中适应度最好青蛙Pg;
步骤9,检查终止条件。如果迭代终止条件满足,则停止。否则,重新执行步骤6。一般情况下,当执行一定次数的循环进化,代表最好青蛙不再改变或定义最大的进化次数N作为停止条件。

Claims (5)

1.基于蛙跳算法的直线射影深度估计方法,其特征是,包括如下步骤:
步骤1,将n条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩阵;
步骤2,对所得透视图像序列及测量矩阵进行归一化处理;
步骤3,选择子群数量a和每个子群中青蛙的个数b,则整个种群的数量G=a×b;定义一个解 U ( x ) = { &lambda; 1 1 , &lambda; 1 2 , &CenterDot; &CenterDot; &CenterDot; , &lambda; 1 j , &lambda; 2 1 , &lambda; 2 2 , &CenterDot; &CenterDot; &CenterDot; , &lambda; 2 j , &CenterDot; &CenterDot; &CenterDot; , &lambda; i j &CenterDot; &CenterDot; &CenterDot; , &lambda; n m } , i=1,2,…,n,j=1,2,…,m;
步骤4,生成G个青蛙,每个青蛙代表一个解U(x);
步骤5,将每只青蛙所对应的测量矩阵进行奇异值分解,并由适应度函数公式计算每只青蛙的适应度J(x);
步骤6,将所有青蛙按其青蛙的适应度J(x)排序,生成一个集合X={(U(x),J(x)},并记录整个种群中适应度最好青蛙Pg;
步骤7,将集合X分成a个子群YK,每个子群YK包含b个青蛙,并按以下公式将青蛙分组,放入不同的子群,
Yk=[(U(l)k,J(l)k)|U(l)k=U(k+a(l-1)),J(l)k=J(k+a(l-1))]
其中k=1,2,…,a,l=1,2,...,b;
步骤7,通过意识进化,使得每组子群中的每只青蛙离目标位置更逼近;
步骤8,在每个子群中执行了一定意识进化以后,将各个子群YK进行合并,合并后再按青蛙的适应度J(x)进行重新排序,以更新集合X={(U(x),J(x)}及整个种群中适应度最好青蛙Pg;
步骤9,检查终止条件,如果迭代终止条件满足,则将整个种群中适应度最好青蛙Pg所代表的解U(x)作为待求的射影深度输出;否则,返回步骤6。
2.根据权利要求1所述基于蛙跳算法的直线射影深度估计方法,其特征是,步骤7中,将每组子群中执行意识进化的过程如下:
步骤7-1,初始化子群计数im=0,进化次数in=0;用Pb和Pw分别表示每个子群YK中适应度最好和最差青蛙;
步骤7-2,子群计数im不变,并逐渐增大进化次数in,直至进化次数in达到设定的最大进化数N,每次进化次数in的变化对应一轮进化迭代;进化次数in不变,并逐渐增大子群计数im,直至子群计数im达到设定的子群数量a,每次子群计数im的变化对应一轮进化迭代;
步骤7-3,在每一轮进化迭代过程中,均采用如下方法调整每个子群中适应度最差青蛙Pw位置,即先计算最差青蛙Pw移动到最好青蛙Pb的距离D,再将最差青蛙Pw的当前位置加上距离D作为最差青蛙Pw的更新后的位置;
步骤7-4,比较最差青蛙Pw更新前和更新后的适应度,如果更新后的适应度好于更新前的适应度,则用处于新位置的最差青蛙Pw取代原来的青蛙,否则用整个种群中适应度最好青蛙Pg代替每个子群YK中适应度最好青蛙Pb,并重复步骤7-3的过程;
步骤7-5,如果始终不能生成更好的青蛙,那么就随机生成一个新的青蛙去取代原来最差青蛙Pw。
3.根据权利要求1所述基于蛙跳算法的直线射影深度估计方法,其特征是,步骤5和步骤8中,均采用适应度J(x)升序的方式对所有青蛙的进行排序。
4.根据权利要求1所述基于蛙跳算法的直线射影深度估计方法,其特征是,步骤9中,将整个种群中适应度最好青蛙Pg不再改变或达到最大的进化次数N作为迭代终止条件。
5.根据权利要求1所述基于蛙跳算法的直线射影深度估计方法,其特征是,步骤2中,对所得透视图像序列及测量矩阵进行归一化处理是让每一幅透视图像中的透视图像的坐标乘上1个公共因子,使它们的平均范数为
CN201510333397.0A 2015-06-16 2015-06-16 基于蛙跳算法的直线射影深度估计方法 Pending CN104899924A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510333397.0A CN104899924A (zh) 2015-06-16 2015-06-16 基于蛙跳算法的直线射影深度估计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510333397.0A CN104899924A (zh) 2015-06-16 2015-06-16 基于蛙跳算法的直线射影深度估计方法

Publications (1)

Publication Number Publication Date
CN104899924A true CN104899924A (zh) 2015-09-09

Family

ID=54032567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510333397.0A Pending CN104899924A (zh) 2015-06-16 2015-06-16 基于蛙跳算法的直线射影深度估计方法

Country Status (1)

Country Link
CN (1) CN104899924A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325992A (zh) * 2018-10-19 2019-02-12 珠海金山网络游戏科技有限公司 图像绘制方法和装置、计算设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751697A (zh) * 2010-01-21 2010-06-23 西北工业大学 一种基于统计模型的三维场景重建方法
CN102353945A (zh) * 2011-03-31 2012-02-15 北京航空航天大学 基于isar像序列的散射点三维位置重构方法
US20120056887A1 (en) * 2010-09-02 2012-03-08 Samsung Electronics Co., Ltd. Depth estimation system for two-dimensional images and method of operation thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751697A (zh) * 2010-01-21 2010-06-23 西北工业大学 一种基于统计模型的三维场景重建方法
US20120056887A1 (en) * 2010-09-02 2012-03-08 Samsung Electronics Co., Ltd. Depth estimation system for two-dimensional images and method of operation thereof
CN102353945A (zh) * 2011-03-31 2012-02-15 北京航空航天大学 基于isar像序列的散射点三维位置重构方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
梁栋 等: "基于遗传算法的射影重构", 《中国图象图形学报》 *
江泽涛 等: "基于图像序列的空间直线重建", 《第五届全国"信号与信息处理"联合学术会议暨陕西省生物医学工程学会》 *
江泽涛 等: "基于图像序列的空间直线重建", 《第五届全国"信号与信息处理"联合学术会议暨陕西省生物医学工程学会2006年学术年会论文集》 *
赵守法: "蛙跳算法的研究与应用", 《中国优秀硕士学文论文全文数据库 信息科技辑》 *
雷晓春: "基于图像序列的三维重构研究", 《中国学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325992A (zh) * 2018-10-19 2019-02-12 珠海金山网络游戏科技有限公司 图像绘制方法和装置、计算设备及存储介质
CN109325992B (zh) * 2018-10-19 2023-07-04 珠海金山数字网络科技有限公司 图像绘制方法和装置、计算设备及存储介质

Similar Documents

Publication Publication Date Title
US10553026B2 (en) Dense visual SLAM with probabilistic surfel map
Li et al. Realtime facial animation with on-the-fly correctives.
CN109542106A (zh) 一种移动机器人多约束条件下的路径规划方法
CN101751697B (zh) 一种基于统计模型的三维场景重建方法
CN109583509A (zh) 数据生成方法、装置及电子设备
CN107016649A (zh) 一种基于局部低秩张量估计的视觉数据补全方法
Lee et al. A procrustean Markov process for non-rigid structure recovery
CN107481313A (zh) 一种基于学习有效点云生成的密集三维物体重建方法
CN109478330A (zh) 基于rgb-d照相机的跟踪系统及其方法
Larsson et al. Rank minimization with structured data patterns
CN114663496A (zh) 一种基于卡尔曼位姿估计网络的单目视觉里程计方法
CN104851133B (zh) 一种图像自适应网格生成变分方法
US20130262041A1 (en) Three-Dimensional Model Determination from Two-Dimensional Sketch with Two-Dimensional Refinement
Chen et al. Hybrid rotation averaging: A fast and robust rotation averaging approach
JP5893166B2 (ja) 3dモデル・モーフィングのための方法および装置
CN101877146A (zh) 一种扩充三维人脸数据库的方法
CN107063267A (zh) 一种快速的基于太阳影子信息的定位方法
CN104081437B (zh) 用于基于可调谐二极管激光吸收光谱的气体浓度重建的贝叶斯方法
CN105025201A (zh) 一种时空连续的视频背景修复方法
CN103325104B (zh) 基于迭代稀疏表达的人脸图像超分辨率重建方法
CN104899924A (zh) 基于蛙跳算法的直线射影深度估计方法
CN104867185A (zh) 基于蛙跳算法的点射影深度估计方法
Zhang et al. SIFU: Side-view Conditioned Implicit Function for Real-world Usable Clothed Human Reconstruction
CN113920270B (zh) 一种基于多视角全景的布局重建方法及其系统
Wang et al. Structure and motion recovery based on spatial-and-temporal-weighted factorization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150909

WD01 Invention patent application deemed withdrawn after publication