一种基于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]
[0009]
[0010]
[0011]
[0012] 其中g是迭代次数。
[0013] 2)计算适应值,比较得出全局最优:
[0014] gBestg= (P1P2...Pk...Pd)T
[0015] 3)更新粒子:
[0016]
[0017] 其中w是非负值,决定前一速度对当前速度的影响K1, (:2用于调整粒子在运动中 自身经验与群体经验的权重;1'1,1'2是[0, 1]上的任意值。
[0018] 4)判断全局最gBest是否满足规定的全局最优值或是达到规定的迭代次数。否则 继续寻优。
[0019] 但是将PSO应用于本发明建立的代价函数,优化结果会出现解的大幅度震荡性。 以代价函数其中一个独立自变量f u的搜索结果为例说明:
[0020] 设fu的定义域为[0, f J,当用PSO算法在上述定义域进行搜索时,出现波动,如图 4。即,在区间[0,fu]上进行搜索寻优时,每次运行结果变化幅度较大,可能会收敛到误差 较大的PdP 2Jp
【发明内容】
[0021] 有鉴于此,本发明提供了一种基于IOS-PSO的摄像机自标定方法。该方法不仅算 法比较简单、效率较高,而且寻优结果精度较高、稳定。
[0022] 为了解决上述技术问题,本发明是这样实现的:
[0023] -种基于IOS-PSO的摄像机自标定方法,包括如下步骤:
[0024] 步骤1、建立摄像机基于内参数的代价函数Lst= f(f u, fv, u。,V。,s),其中4和 分别表示以像素为单位的图像平面坐标系中x方向和y方向的等效焦距;u。和v。是图像平 面的主点坐标;s是倾斜因子;
[0025] 步骤2、将fu和f v各自的搜索区间分别均分为N个搜索单元,f u的搜索单元与f v 的搜索单元--对应;每一个fu的搜索单元与对应的fv搜索单元以及u 〇、ν。和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、u。、V。和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参数的区间保持一致;采 用改进的粒子群寻优方法I0S-PS0采用子区间并行叠进式搜索,确定搜索区间局部最优粒 子,最终确定全局最优粒子,方法原理简单,易于实现,搜索结果精度高、稳定,同时又能弥 补粒子群算法高维寻优时的不足。
[0038] (2)每次搜索确定全局最优粒子后,根据搜索规则判定最优粒子是否满足精度要 求,如果满足,可根据最优粒子对相机进行标定,如果不满足,继续采用粒子群优化算法搜 索最优粒子,如此,可避免搜索粒子的波动性,使得摄像机标定结果较PSO精度较大幅度提 尚。
【附图说明】
[0039] 图1为本发明所提供的方法的流程图;
[0040] 图2为粒子群算法流程图;
[0041] 图3为粒子群分区间并行叠进搜索流程图;
[0042] 图4为原始粒子群算法搜索情况;
[0043] 图5为粒子群分区间并行叠进搜索情况;
[0044] 图6为粒子群分区间并行叠进搜索