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

文档序号:8923288阅读:来源:国知局
三维空间直线。
[0053] 步骤2,对图像进行归一化处理。
[0054] 步骤3,初始化,选择a,b,其中a表示memeplex的数量,S卩子群数量,b表示每个 子群中青蛙的个数,那么整个种群的数量G=aXb。由于射影模型可以用仿射模型迭代逼 近,而仿射模型的射影深度为1,所以%可以在(0,2]区间内随机选取,可以定义一个解为
[0056] 其中i= 1,2,…,n,j= 1,2,…,m。
[0057]步骤4,生成G个青蛙,每个青蛙代表一个解,其中第x个的青蛙的解为U(x),即 U⑴,U(2),…,U(G),U(x)的性能即适应度用J(x)来表示,即J(l),J⑵,…,J(G)。
[0058] 步骤5,对青蛙划分等级,将每只青蛙对应的测量矩阵进行奇异值(svd)分解,并 由适应度函数公式来计算每只青蛙的适应度,按适应度升序排列,生成集合YK= {(U(x), J(x) },这样,该集合中处于第一位的青蛙的性能最好,记下种群中最好青蛙位置Pg。
[0059] 步骤6,将青蛙分组,放入不同的子群。将集合X分成a个子群,…,Ya。每 个子群包含b个青蛙,即
[0060] Yk= [(U⑴k,J(1)k)IU(1)k=U(k+a(1-1)),J⑴k=J(k+a(1-1))]
[0061] 其中k= 1,2, ...,a,1 = 1,2, ? ??,b;
[0062] 比如a= 4,那么第一只青蛙进入子群1,第2只进入子群2,第3只进入子群3,第 4只进入子群4,第5只进入子群1,等等。
[0063] 步骤7,将每组子群中执行意识进化。在每组子群中,每只青蛙受到其他青蛙想法 的影响,通过意识进化,使得每只青蛙离目标位置更逼近。以下是每个子群中意识进化的详 细步骤。
[0064] 步骤7-1,设im= 0,im表示对子群的计数,在0-a之间变化,与子群的数量a比 较。设in=0,in表示进化次数,与每组子群中允许的最大进化次数N比较(N可以设定)。 在每组子群中,用Pb和Pw分别表示性能最好和最差青蛙,用Pg表示整个种群中最好青蛙。 在每一轮的进化中,改善最差青蛙Pw的位置,但并不是对所有青蛙都优化。
[0065] 步骤 7-2,im=im+1 ;
[0066] 步骤 7-3,in=in+1 ;
[0067] 步骤7-4,调整最差青蛙位置,方法如下:
[0068] 青蛙移动的距离D=rand() * (Pb-Pw)
[0069] 新的位置Pw=Pw(当前位置)+D,(Dmax> =Di> = -Dmax)
[0070] 其中,rand()是0到1之间的随机数,Dmax是允许青娃移动的最大距离。
[0071] 步骤7-5,如果上述过程能够使青蛙有一个更好的位置,即能够产生一个更好的 解,那么就用新位置的青蛙取代原来的青蛙,否则,用Pg代替Pb,重复上述过程。
[0072] 步骤7-6,如果上述方法仍不能生成更好的青蛙,那么就随机生成一个新解取代原 来最差青娃Pw;
[0073] 步骤7-7,如果in〈N,那么执行g-3;
[0074] 步骤7-8,如果im〈a,那么执行g-2。
[0075] 步骤8,青蛙在子群之间跳跃移动,在每个子群中执行了一定意识进化以后,将各 个子群LY2,…,Ya合并,并将合并后的进行按青蛙的适应度J(x)进行重新排序,以更新集 合X= {(U(x),J(x)}及整个种群中适应度最好青娃Pg;
[0076] 步骤9,检查终止条件。如果迭代终止条件满足,则停止。否则,重新执行步骤6。 一般情况下,当执行一定次数的循环进化,代表最好青蛙不再改变或定义最大的进化次数N 作为停止条件。
【主权项】
1. 基于蛙跳算法的直线射影深度估计方法,其特征是,包括如下步骤: 步骤1,将η条三维空间直线通过射影矩阵投射到m幅透视图像上,生成测量矩阵; 步骤2,对所得透视图像序列及测量矩阵进行归一化处理; 步骤3,选择子群数量a和每个子群中青蛙的个数b,则整个种群的数量G = aXb ;定 义一个解以⑷=·(儿/Λ2,…,儿/?,…,又/,…,儿/…,儿Γ},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 ⑴ k,J ⑴ k) IU (I) k = U (k+a (1-1)),J (I) k = J (k+a (1-1))] 其中 k = l,2,...,a,l = l,2,...,b; 步骤7,通过意识进化,使得每组子群中的每只青蛙离目标位置更逼近; 步骤8,在每个子群中执行了一定意识进化以后,将各个子群Υκ?行合并,合并后再按 青蛙的适应度J(X)进行重新排序,以更新集合X= KU (X),J(x)}及整个种群中适应度最 好青娃Pg ; 步骤9,检查终止条件,如果迭代终止条件满足,则将整个种群中适应度最好青蛙Pg所 代表的解U(X)作为待求的射影深度输出;否则,返回步骤6。2. 根据权利要求1所述基于蛙跳算法的直线射影深度估计方法,其特征是,步骤7中, 将每组子群中执行意识进化的过程如下: 步骤7-1,初始化子群计数im = 0,进化次数in = O ;用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个公共因子,使它们的平均范数为万。
【专利摘要】本发明公开一种基于蛙跳算法的直线射影深度估计方法,其首先将n个三维空间物体点通过q个射影矩阵投射到透视图像序列上,生成测量矩阵;然后对所得透视图像序列及测量矩阵进行归一化处理;最后生成G个青蛙,每个青蛙代表一个解,并利用蛙跳算法选出整个种群中适应度最好青蛙,并将最好青蛙所代表的解作为待求的射影深度输出。本发明具有收敛速度快,容易获得最优解的特点,其所估计出的射影深度能够使得合适的调整矩阵可以进行因数分解。
【IPC分类】G06T17/00, G06F17/30, G06T7/00, G06N3/00
【公开号】CN104899924
【申请号】CN201510333397
【发明人】雷晓春, 周旭, 江泽涛, 王勇, 陈俊彦, 赵佳
【申请人】桂林电子科技大学
【公开日】2015年9月9日
【申请日】2015年6月16日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1