一种基于IOS-PSO的摄像机自标定方法转让专利

申请号 : CN201510497112.7

文献号 : CN105096328B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓方徐建萍陈杰窦丽华张乐乐陈文颉白永强代凤驰周睿

申请人 : 北京理工大学

摘要 :

本发明公开了一种基于IOS-PSO的摄像机自标定方法,该方法不仅算法比较简单、效率较高,而且寻优结果精度较高。主要包括三个步骤:S1、建立摄像机基于内参数的代价函数;S2、IOS-PSO优化代价函数;S3、IOS-PSO搜索结果限定规则。该方法的具体步骤为:采集同一场景的不同角度的四幅图片;进行图像特征点提取、匹配;利用匹配点对,采用RANSAC方法求取三个基础矩阵F,然后通过基础矩阵的SVD分解,构造代价函数作为粒子群算法的适应值函数;对设定的初始搜索区间划分,并按照最优值的取值情况设定搜索规则;将要标定的摄像机五个未知内参数fu,fv,u0,v0,s作为粒子群粒子的元素;采用IOS-PSO优化搜索;若搜索结果符合搜索规则,则取最终搜索结果,否则重新搜索。通过四种算法的对比实验,验证了本发明标定结果精确、稳定、高效。

权利要求 :

1.一种基于IOS-PSO的摄像机自标定方法,其特征在于,包括如下步骤:

步骤1、建立摄像机基于内参数的代价函数fcost=f(fu,fv,u0,v0,s),其中fu和fv分别表示以像素为单位的图像平面坐标系中x方向和y方向的等效焦距;u0和v0是图像平面的主点坐标;s是倾斜因子;

步骤2、将fu和fv各自的搜索区间分别均分为N个搜索单元,fu的搜索单元与fv的搜索单元一一对应;每一个fu的搜索单元与对应的fv搜索单元以及u0、v0和s的搜索区间形成一个子区间block,则共形成N个子区间block;N为大于或等于4的整数;

步骤3、子区间并行叠进式搜索;

从第一个子区间block开始,数M个子区间block,形成第一个搜索子区间x-search;从第二子区间block开始,数M个子区间block,形成第二个搜索子区间x-search;以此类推,形成多个搜索子区间x-search;M为大于或等于3的整数;

步骤4、采用粒子表征摄像机的5个内参数fu、fv、u0、v0和s,在每个搜索子区间x-search的各个子区间block中分别初始化粒子,然后同时采用粒子群优化算法对各子区间block进行搜索,得到各子区间block的局部最优粒子以及对应的适应值;其中,在本步骤得到各子区间block的局部最优粒子以及对应的适应值后,判断所述各个搜索子区间x-search的各子区间block的适应值是否同时单调递减或单调递增:如果是,返回所述步骤4,对各个子区间block中粒子重新进行初始化,搜索最优子区间,然后继续依次执行步骤5和6;否则,直接依次执行步骤5和步骤6;

步骤5、步骤4中获得的适应值最小的局部最优粒子则为搜索子区间x-search的局部最优粒子;按照步骤4的方法获得各个搜索子区间x-search的局部最优粒子,再确定最小适应值及对应的局部最优粒子,即为整个搜索区间对应的全局最优粒子;

其中,当步骤4中所述各个搜索子区间x-search的局部最优粒子的适应值不满足均为单调递减或单调递增关系时,本步骤5中,获得全局最优粒子后,先判断全局最优粒子是否满足如下条件:条件1、当全局最优粒子落在一些搜索子区间x-search的重叠区域时,并且,其它没有重叠区域的搜索子区间x-search对应的局部最优粒子所在子区间block应为所在搜索子区间x-search中最靠近所述全局最优粒子的子区间block;

条件2、当全局最优粒子只落在其中一个搜索子区间x-search中时,其它不包含全局最优粒子的搜索子区间x-search对应的局部最优粒子所在子区间block应为所在搜索子区间x-search中最靠近所述全局最优粒子的子区间block;

如果满足条件1和条件2中的任意一个,则执行步骤6,即采用所述全局最优粒子的内参数进行摄像机标定;否则,返回所述步骤4,对各个子区间block中粒子重新进行初始化,搜索局部最优粒子;

步骤6、将该全局最优粒子对应的内参数代入到所述摄像机的代价函数中,则完成对摄像机的标定。

说明书 :

一种基于IOS-PSO的摄像机自标定方法

技术领域

[0001] 本发明涉及粒子群优化算法,属于计算机视觉领域,具体涉及一种基于IOS-PSO的摄像机自标定方法。

背景技术

[0002] 摄像机标定,是从摄像机所拍摄的平面二维图像重建物体在空间中的三维信息所必不可少的步骤。假设空间中某物体上的一点A在摄像机所拍摄的平面图像的对应点为a,那么二者存在如下的线性关系:[像点a]=K[R t][空间点A]。其中R是3*3矩阵,t是3*1矩阵,分别是世界坐标系到摄像机坐标系的旋转矩阵与平移矩阵;K是摄像机内参数矩阵,确定K的过程即为摄像机标定。
[0003] 现有摄像机自标定方法利用同一场景的若干幅图像之间的代数几何约束来解算摄像机内参数,可以实现在线标定,比较灵活。本发明采用的自标定方法是基于Kruppa方程的自标定方法,主要有两种,一种是采用数学规划法求解Kruppa方程,这类方法主要通过建立对Kruppa方程中未知参数的约束关系来进行求解,这类方法由于最小点附近呈现大范围的平坦区,故很难找到最小点且目标函数的最小点易受图像噪声的干扰,如Sezgin TM,Davis R的《Handling Overtraced Strokes in Hand-Drawn Sketches》。另一类是利用SVD分解直接求解Kruppa方程的方法,这类方法由于Kruppa方程未知比例因子的存在,因此是一个非线性优化问题。胡华亮,江泽涛的《基于遗传算法的摄像机自标定方法》中,假定了摄像机内参数矩阵中的倾斜因子与比例因子为理想值,这样建立的代价函数自变量为三维,搜索复杂性降低;在非理想情况下,实际搜索变量为五维,经过实验验证发现,遗传算法与粒子群算法虽然在高维优化搜索时均会出现搜索结果的震荡性,但遗传算法中的变异、交叉会增加种群的多样性,这使得遗传算法的搜索结果更加不稳定,不精确。耿利川等的《A New Camera Self-calibration Method Based on CSA》算法比较耗时,不利于目标实时跟踪。
[0004] 粒子群算法(PSO)是一种群智能算法,它模仿鸟类的捕食行为进行全局寻优。不仅规则简单容易实现而且能比较灵活的应用于函数寻优,能很迅速的收敛到全局最优。它从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质。但是,粒子群搜索后期易陷入局部极小,精度差。
[0005] PSO算法如下:
[0006] 1)在d维空间中初始化Par个粒子,第i个粒子初始化为:
[0007]
[0008] 第i个粒子的个体最优:
[0009]
[0010] 第i个粒子的速度:
[0011]
[0012] 其中g是迭代次数。
[0013] 2)计算适应值,比较得出全局最优:
[0014] gBestg=(P1P2...Pk...Pd)T
[0015] 3)更新粒子:
[0016]
[0017] 其中w是非负值,决定前一速度对当前速度的影响;c1,c2用于调整粒子在运动中自身经验与群体经验的权重;r1,r2是[0,1]上的任意值。
[0018] 4)判断全局最gBest是否满足规定的全局最优值或是达到规定的迭代次数。否则继续寻优。
[0019] 但是将PSO应用于本发明建立的代价函数,优化结果会出现解的大幅度震荡性。以代价函数其中一个独立自变量fu的搜索结果为例说明:
[0020] 设fu的定义域为[0,fu],当用PSO算法在上述定义域进行搜索时,出现波动,如图4。即,在区间[0,fu]上进行搜索寻优时,每次运行结果变化幅度较大,可能会收敛到误差较大的P1,P2,P3。

发明内容

[0021] 有鉴于此,本发明提供了一种基于IOS-PSO的摄像机自标定方法。该方法不仅算法比较简单、效率较高,而且寻优结果精度较高、稳定。
[0022] 为了解决上述技术问题,本发明是这样实现的:
[0023] 一种基于IOS-PSO的摄像机自标定方法,包括如下步骤:
[0024] 步骤1、建立摄像机基于内参数的代价函数fcost=f(fu,fv,u0,v0,s),其中fu和fv分别表示以像素为单位的图像平面坐标系中x方向和y方向的等效焦距;u0和v0是图像平面的主点坐标;s是倾斜因子;
[0025] 步骤2、将fu和fv各自的搜索区间分别均分为N个搜索单元,fu的搜索单元与fv的搜索单元一一对应;每一个fu的搜索单元与对应的fv搜索单元以及u0、v0和s的搜索区间形成一个子区间block,则共形成N个子区间block;N为大于或等于4的整数;
[0026] 步骤3、子区间并行叠进式搜索;
[0027] 从第一个子区间block开始,数M个子区间block,形成第一个搜索子区间x-search;从第二子区间block开始,数M个子区间block,形成第二个搜索子区间x-search;以此类推,形成多个搜索子区间x-search;M为大于或等于3的整数;
[0028] 步骤4、采用粒子表征摄像机的5个内参数fu、fv、u0、v0和s,在每个搜索子区间x-search的各个子区间block中分别初始化粒子,然后同时采用粒子群优化算法对各子区间block进行搜索,得到各子区间block的局部最优粒子以及对应的适应值;
[0029] 步骤5、步骤4中获得的适应值最小的局部最优粒子则为搜索子区间x-search的局部最优粒子;按照步骤4的方法获得各个搜索子区间x-search的局部最优粒子,再确定最小适应值及对应的局部最优粒子,即为整个搜索区间对应的全局最优粒子;
[0030] 步骤6、将该全局最优粒子对应的内参数代入到所述摄像机的代价函数中,则完成对摄像机的标定。
[0031] 较佳的,在所述步骤4得到各子区间block的局部最优粒子以及对应的适应值后,判断所述各个搜索子区间x-search的各子区间block的适应值是否同时单调递减或单调递增:如果是,返回所述步骤4,对各个子区间block中粒子重新进行初始化,搜索最优子区间,然后继续依次执行步骤5和6;否则,直接依次执行步骤5和步骤6。
[0032] 较佳的,在所述步骤4得到各子区间block的局部最优粒子以及对应的适应值后,当所述各个搜索子区间x-search的局部最优粒子的适应值不满足均为单调递减或单调递增关系时,所述步骤5中,获得全局最优粒子后,先判断全局最优粒子是否满足如下条件:
[0033] 条件1、当全局最优粒子落在一些搜索子区间x-search的重叠区域时,并且,其它没有重叠区域的搜索子区间x-search对应的局部最优粒子所在子区间block应为所在搜索子区间x-search中最靠近所述全局最优粒子的子区间block;
[0034] 条件2、当全局最优粒子只落在其中一个搜索子区间x-search中时,其它不包含全局最优粒子的搜索子区间x-search对应的局部最优粒子所在子区间block应为所在搜索子区间x-search中最靠近所述全局最优粒子的子区间block;
[0035] 如果满足条件1和条件2中的任意一个,则采用所述全局最优粒子的内参数进行摄像机标定;否则,返回所述步骤4,对各个个子区间block中粒子重新进行初始化,搜索局部最优粒子,然后继续执行步骤5和步骤6。
[0036] 本发明具有如下有益效果:
[0037] (1)本发明所提供的方法,先建立代价函数,再根据相机参数确定5个未知量的搜索区间,对搜索区间进行子区间划分,在各子搜索区间上u,v,s参数的区间保持一致;采用改进的粒子群寻优方法IOS-PSO采用子区间并行叠进式搜索,确定搜索区间局部最优粒子,最终确定全局最优粒子,方法原理简单,易于实现,搜索结果精度高、稳定,同时又能弥补粒子群算法高维寻优时的不足。
[0038] (2)每次搜索确定全局最优粒子后,根据搜索规则判定最优粒子是否满足精度要求,如果满足,可根据最优粒子对相机进行标定,如果不满足,继续采用粒子群优化算法搜索最优粒子,如此,可避免搜索粒子的波动性,使得摄像机标定结果较PSO精度较大幅度提高。

附图说明

[0039] 图1为本发明所提供的方法的流程图;
[0040] 图2为粒子群算法流程图;
[0041] 图3为粒子群分区间并行叠进搜索流程图;
[0042] 图4为原始粒子群算法搜索情况;
[0043] 图5为粒子群分区间并行叠进搜索情况;
[0044] 图6为粒子群分区间并行叠进搜索方式;
[0045] 图7为粒子群分区间并行叠进搜索方式具体实施方式;
[0046] 图8为二视图几何;
[0047] 图9为本实验所用相机图;
[0048] 图10为拍摄方式;
[0049] 图11为本发明实验拍摄的场景图片;
[0050] 图12为本发明提供的四种算法标定结果得到的距离相对误差分布。

具体实施方式

[0051] 下面结合附图并举实施例,对本发明进行详细描述。
[0052] 本发明的标定方法包括如下步骤:
[0053] 步骤1、建立摄像机基于内参数的代价函数;同一个场景的两幅图像对应的像点满足:
[0054] x'Fx=0(0.1)
[0055] 其中F为3×3的基本矩阵,秩为2。
[0056] 经过推导求得如下的Kruppa方程:
[0057]
[0058] 其中 e'为两幅图像中x'所在图像的极点;[.]×代表反对称矩阵;c为未知的正比例因子。
[0059] 将矩阵F进行SVD分解的结果,
[0060]
[0061] 其中 是F的第i个奇异值;ui和vi分别是左右奇异向量。
[0062] 由基础矩阵与极点的关系得:
[0063] FTe'=0   (0.4)
[0064] 将(1.3)(1.4)带入式(1.2),得到:
[0065]
[0066] 其中k1=fu2+u02,k2=u0v0,k3=u0,k4=fv2+v02,k5=v0;
[0067] Kru个Kruppa方程可以建立如下代价函数:
[0068]
[0069] 本发明中,进行摄像机标定获得5个未知参数,而一个Kruppa方程仅提供关于未知参数的两个独立约束,所以取Kru值为3。
[0070] 步骤2、IOS-PSO优化代价函数;
[0071] 此方法是应用于照相机自标定,将代价函数(1.6)表示为fcost=f(fu,fv,u0,v0,s),其中fu,fv分别表示以像素为单位的图像平面坐标系中x方向和y方向的等效焦距;u0,v0是图像平面的主点坐标,以像素为单位;s是倾斜因子,该倾斜因子值近似为0。其中fu,fv的搜索区间分别设为 因为现在相机的设计制造工艺比较高,所以主点坐标近似为摄像机的像素中心点,它们的搜索区间可以定义的更精确[u1,u2],[v1,v2];s的搜索区间设为[0,s]。本发明中所用相机满足 所以设定 中的
[0072] 1)IOS-PSO区间划分;
[0073] 将fu,fv的搜索区间 分别平均分为N个搜索单元,而N个搜索单元各自对应的u,v,s的搜索区间[u1,u2],[v1,v2],[0,s]保持一致,分后如下:
[0074] 区间1: [u1,u2],[v1,v2],[0,s]
[0075] 区间2: [u1,u2],[v1,v2],[0,s]
[0076] 区间N: [u1,u2],[v1,v2],[0,s]
[0077] 2)子区间并行叠进式搜索;
[0078] 以一维变量fu的搜索为例,搜索方式如图6。
[0079] 整个搜索过程进行了m次X-search1,X-search2,…,X-search m,任意一次搜索X-search所包含的子区间个数为n(n>=3)任意相邻的两次X-search x,X-search(x+1),后者相对于前者前进了一个子区间。
[0080] X-search1: 同时进行搜索,在X-search1的n个子区间分别初始化par个粒子,然后同时进行PSO优化搜索,直到满足收敛条件,得到n个子区间的局部最优以及对应的适应值,分别为 对应的最优区间1_Blockx;
[0081] X-search2: 同时进行搜索,在X-search2的n个子区间分别初始化par个粒子,然后同时进行PSO优化搜索,直到满足收敛停止条件,得到n个子区间的局部最优以及对应的适应值,分别为 最优区间2-Blocky。
[0082] ……
[0083] X-searchm: 同时进行搜索,在X-searchm的n个子区间分别初始化par个粒子,然后同时进行PSO优化搜索,直到满足收敛停止条件,得到n个子区间的局部最优以及对应的适应值,分别为 最优
区间m-Blocky。
[0084] 其它的X-search按照上述方式逐步叠进搜索,得到m个最优子区间。可以看到,X-search1与X-search2搜索时有两个区间是重叠的。叠进搜索的原理在于若X-search1的重叠区域搜索出现误差;那么X-search2进一步搜索的同时,对重叠区域重复搜索,可以对之前的误差进行校正,同理,X-search1也可以对X-search2进行校正。并且,在重叠区域两次搜索的搜索结果都正确的情况下,若X-search2的搜索结果优于X-search1,可以替换X-search1的结果,使结果更优化。所以n至少是3,若小于3重叠区域起不到相互更正误差的作用,当然随着n以及m的增大(区间分的越精细),耗时是随着增加的。
[0085] 步骤3、IOS-PSO搜索结果限定规则;
[0086] 首先,判断此次搜索是否为Abnor-1或Abnor-2;若是则跳至S2,否则继续判断是否为Situation1,Situation2中的任何一种情况,若满足,则此次搜索是正确的,然后取m次搜索得到的m个最优子区间中的最优者作为全局最优;否则跳至S2重新进行搜索。
[0087] 1)IOS-PSO搜索结果限定;
[0088] 根据最优值所在区间假设,本发明设定了优化结果的两种情况。
[0089] Situation1:当其中一些搜索子区间search具有重叠区域时,该全局最优粒子应落在重叠区域中,并且,其它没有重叠区域的搜索子区间X-search对应的局部最优粒子所在子区间block应为所在搜索子区间X-search中最靠近所述全局最优粒子的子区间block;这样的搜索结果是正确的。
[0090] Situation2:当全局最优粒子只落在其中一个搜索子区间X-search中时,其它不包含全局最优粒子的搜索子区间X-search对应的局部最优粒子所在子区间block应为所在搜索子区间X-search中最靠近所述全局最优粒子的子区间block;这样的搜索结果是正确的。
[0091] 2)IOS-PSO异常结果;
[0092] X-search1:经过第一次搜索, 个子区间的全局最优对应的适应值,依次设为
[0093] X-search2:经过第二次搜索, 个子区间的全局最优对应的适应值,依次设为
[0094] X-search m:经过第m次搜索, 个子区间的全局最优对应的适应值,依次设为
[0095] Abnor-1: 且 且
[0096]
[0097] Abnor-2: 且 且
[0098]
[0099] 实施例:
[0100] 一种基于IOS-PSO的摄像机自标定方法,该方法源于对独立五参数代价函数的优化搜索。主要包括三个步骤:S1、建立摄像机基于内参数的代价函数;S2、IOS-PSO优化代价函数;S3、IOS-PSO搜索结果限定规则。该方法的具体介绍为:
[0101] S1.建立摄像机基于内参数的代价函数;
[0102] 如图8所示,左图中任意一点x在右图中都有相应的一条对极线I',二者的映射关系表示为x→I',引入基础矩阵F,将此映射表示为:
[0103] I'=Fx   (0.7)
[0104] 因为左图中点x在右图中的对应点x'位于对极线I'上,所以同一个场景的两幅图像对应的像点满足:
[0105] x'Fx=0   (0.8)
[0106] 其中F为3×3的基本矩阵,秩为2。
[0107] 经过推导求得如下的Kruppa方程:
[0108]
[0109] 其中 e'为两幅图像中x'所在图像的极点;[.]×代表反对称矩阵;c为未知的正比例因子。
[0110] 消去比例因子c,可以得到如下等比方程:
[0111]
[0112] 将矩阵F进行SVD分解的结果:
[0113]
[0114] 其中 是F的第i个奇异值;ui和vi分别是左右奇异向量。
[0115] 如图8所示e',是右图中的极点,为基础矩阵的右零极点,所以它满足:
[0116] FTe'=0   (0.12)
[0117] 由(1.12)可得:
[0118]将(1.11)(1.13)带入(1.9)得:
[0119]
[0120] 按照式(1.14)的形式展开得:
[0121]
[0122] 令
[0123]
[0124]
[0125] 将(1.17)带入式(1.16),得到:
[0126]
[0127] 其中k1=fu2+u02,k2=u0v0,k3=u0,k4=fv2+v02,k5=v0
[0128] 3个上述Kruppa方程可以建立如下代价函数:
[0129]
[0130] S2.IOS-PSO优化代价函数;
[0131] 此方法是应用于照相机的内参数自标定,将式(1.19)表示成fcost=f(fu,fv,u0,v0,s),其中fu,fv分别表示以像素为单位的图像平面坐标系中x方向和y方向的等效焦距;u0,v0是图像平面的主点坐标,以像素为单位;s是倾斜因子,该倾斜因子值近似为0。其中本发明中所用相机满足fu≈fv,fu,fv的搜索区间分别设为[0,2000],[0,2000];因为现在相机的设计制造工艺比较高,主点近似为摄像机像素中心点,本发明所用相机的分辨率为640*480,它们的搜索区间可以定义的更精确为[310,330],[230,250];s的搜索区间设为[0,0.01]。
[0132] 1)IOS-PSO算法区间划分
[0133] 我们将fu,fv的定义区间[0,2000],[0,2000]分别平均分为四个子区间,而四个子区间中的u,v,s的定义区间[310,330],[230,250],[0,0.01]保持一致,分后如下:
[0134] 区间1:[0,500],[0,500],[310,330],[230,250],[0,0.01]
[0135] 区间2:[500,1000],[500,1000],[310,330],[230,250],[0,0.01]
[0136] 区间3:[1000,1500],[1000,1500],[310,330],[230,250],[0,0.01][0137] 区间4:[1500,2000],[1500,2000],[310,330],[230,250],[0,0.01][0138] 2)IOS-PSO算法子区间并行叠进搜索;
[0139] 按照图7的优化方式进行优化,在X-search1的
[0140] 区间1:[0,500],[0,500],[310,330],[230,250],[0,0.01]
[0141] 区间2:[500,1000],[500,1000],[310,330],[230,250],[0,0.01]
[0142] 区间3:[1000,1500],[1000,1500],[310,330],[230,250],[0,0.01][0143] 并行搜索,每个区间30个粒子;
[0144] Step 1.第i个粒子初始化为:
[0145]
[0146] 第i个粒子的个体最优:
[0147]
[0148] 第i个粒子的速度:
[0149]
[0150] 其中g是迭代次数。
[0151] Step 2.将初始化的粒子带入式(1.19)计算适应值,两个粒子适应值小的为更优个体,比较得出第k个子区间的全局最优:
[0152]
[0153] Step 3.若迭代次数满足本发明,则停止,否则,更新粒子:
[0154]
[0155] 其中w是非负值其值取为0.3,决定前一速度对当前速度的影响;c1,c2用于调整粒子在运动中自身经验与群体经验的权重,c1,c2分别取值0.5,0.1;r1,r2是[0,1]上的任意值。
[0156] Step 4.计算粒子适应值,比较更新个体最优与全局最优。
[0157] 如果各子区间第g+1代的个体适应值比g代的个体最优适应值大,即g g+1 g则iBestiF值保持不变iBestiF =iBestiF ,否则 如果
第g+1代全局最优比第g代的全局最优适应值大,即 则gBestg保持不
变,gBestg+1=gBestg,否则gBestg+1=gBestg+1。跳至Step3继续执行。
[0158] Step 5.满足收敛条件,得到X-search1三个区间的局部最优以及三个区间的最优搜索结果的适应值,分别为 最优区间为1_Blockx;
[0159] Step 6.在X-search2的三个区间
[0160] 区间2:[500,1000],[500,1000],[310,330],[230,250],[0,0.01]
[0161] 区间3:[1000,1500],[1000,1500],[310,330],[230,250],[0,0.01][0162] 区间4:[1500,2000],[1500,2000],[310,330],[230,250],[0,0.01][0163] 分别初始化30个粒子,然后按照步骤Step1、Step2、Step3、Step4同时搜索,直到满足收敛停止条件。设三个区间的最优搜索结果的适应值,分别为 最优区间为2_Blocky。
[0164] S 3.IOS-PSO搜索结果限定规则;
[0165] 首先,判断此次搜索是否为Abnor-1或Abnor-2;若是则跳至S2,否则继[0166] 继续判断(1_Blockx,2-Blocky)是否为表1中的任何一个,若满足,则此次搜索是正确的,然后取六个子区间中的最优者作为全局最优;否则跳至S2重新进行搜索。
[0167] 1)IOS-PSO搜索结果限定;
[0168] 根据最优值所在区间假设,本发明设定了优化结果的四种情况,IOS-PSO搜索结果须满足其中的任意一种,如表1;
[0169] 以其中一种情况为例进行说明:假设最优值位于区间
[0170] X-search1:经过第一次搜索, 三个区间的全局最优对应的适应值,依次设为 其中最优适应值应该是第二个区间 的全
局最优对应的适应值。记本次搜索结果为1-2(其中第一个数字1代表第一次搜索X-search1;第二个数字2代表本次最优值所在区间为第2个区间)。
[0171] X-search2:经过第二次搜索, 三个区间的全局最优对应的适应值,依次设为 其中最优适应值应该是第一个区间 的
全局最优对应的适应值。记本次搜索结果为2-2(其中第一个数字2代表第二次搜索X-search2;第二个数字2代表本次最优值所在区间为第2个区间)。
[0172] 2)IOS-PSO异常结果;
[0173] X-search1:经过第一次搜索, 三个区间的全局最优对应的适应值,依次设为
[0174] X-search2:经过第二次搜索, 三个区间的全局最优对应的适应值,依次设为
[0175] Abnor-1: 且
[0176] Abnor-2: 且
[0177] 实验用相机为Sony Dev-50,如图9,选取校园内三辆停放在一起的汽车做为本次实验的场景目标。拍摄时,从东向西依次拍摄pic(a)、pic(b)、pic(c)、pic(d),如图10。拍摄得到的四幅图片,如图11。经过测量,目标物体距离照相机的距离约为43.4m;pic(a)与pic(b)的距离约为2.72m,用于计算目标到相机的距离。相机拍摄时分辨率为640*480。fu,fv,u,v,s的搜索区间选取上述[0,2000],[0,2000],[310,330],[230,250],[0,0.01]值。注意拍摄时四幅图像的共同区域尽可能多,以提取尽可能多的匹配点;为了后期计算目标距离拍摄相机的距离,拍摄过程中尽可能保持相机的姿态一致。
[0178] 首先,从第一幅图像,pic(a)中选定要实际进行定位的目标物体——三辆小汽车部分,并将选定部分记为pic(a)’;然后,对pic(a)’、pic(b)、pic(c)、pic(d)进行特征点提取,并将pic(a)’分别与pic(b)、pic(c)、pic(d)匹配,利用匹配特征点建立约束来分别求取pic(a)’与pic(b)、pic(c)、pic(d)之间的基础矩阵共三个;最后利用具体实施措施S1的方法建立代价函数。
[0179] 将内参数矩阵的五个未知参数fu,fv,u0,v0,s作为IOS-PSO的输入参数,将式(1.19)代价函数的取值作为输出值,亦适应值,训练次数设置为6000次。实验结果如表2。因为fu≈fv,为了结果更精确,将fu,fv的搜索结果取平均f作为最后两者的取值结果。为了说明本算法的高精度,本发明同时提供了粒子群算法(PSO)、遗传算法(GA)、共轭梯度法(CG)的自标定结果,三个算法的标定结果分别为表3、表4、表5。四种算法中,每种算法均运行10次,求解目标与摄像机距离时均带入fu,fv的平均值f。图12则提供了四种算法10次标定结果求得的距离相对误差的分布对照
[0180]
[0181] 表2IOS-PSO标定结果
[0182]
[0183] 表3PSO标定结果
[0184]
[0185] 表4GA标定结果
[0186]
[0187]
[0188] 表5CG标定结果
[0189]
[0190] 1.由计算的距离分析精度;
[0191] 由表2、表3、表4、表5可以看到IOS-PSO、PSO、GA、CG最终标定得到的结果求得的10次距离平均值分别为42.500m、75.9716m、54.927m、63.7969m。而本发明目标的距离约为43.4m。可以得出,IOS-PSO算法的标定精度最高。由图12可以看到四种算法中,IOS-PSO的十次标定误差波动最小,标定结果最稳定。说明本发明公开的算法不仅标定结果稳定,而且误差小,精度高。
[0192] 2.u0,v0,s分析;
[0193] 由表2、表3、表4、表5可以看到,四种算法10次运算的u0,v0,s值均比较平稳精确。
[0194] 3.fu,fv分析;
[0195] 由表2、表3、表4、表5可以看到,IOS-PSO标定的fu,fv值,在10次运算中比较平稳,而后三者震荡比较大。
[0196] 由图12可以看到,GA算法的波动性最大。这是因为,搜索算法本身在优化高维函数时具有比较的波动性,GA算法中交叉、变异的作用是增加种群的多样性,这就导致GA的搜索更不易收敛。CG算法属于数学迭代,波动比较小,但是它容易收敛到距离最优值稍微远一点的区域;这是因为,CG算法是按照梯度值进行迭代寻优的,而本发明的代价函数的值量级非常小,这就导致了CG算法最终因为寻优步长太小,无法进一步寻优就停止搜索。
[0197] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。