bundle adjustment 光束平差法介绍及其应用

来源wiki pedia: http://en.wikipedia.org/wiki/Bundle_adjustment

光束平差法的最终目的归结为:减少观测图像的点和参考图像(预测图像)的点之间位置投影变换(再投影)误差。这最小化误差算法使用的是最小二乘算法,目前

使用最为成功是Levenberg-Marquardt, 它具有易于实现,对大范围的初始估计能够快速收敛的优点。

Bundle adjustment amounts to jointly refining a set of initial camera and structure parameter estimates for finding the set of parameters that most accurately predict the locations of the observed points in the set of available images. More formally, assume that  3D points are seen in  views and let  be the projection of the th point on image . Let  denote the binary variables that equal 1 if point  is visible in image  and 0 otherwise. Assume also that each camera  is parameterized by a vector  and each 3D point  by a vector . Bundle adjustment minimizes the total reprojection error with respect to all 3D point and camera parameters, specifically

where  is the predicted projection of point  on image  and  denotes the Euclidean distance between the image points represented by vectors and . Clearly, bundle adjustment is by definition tolerant to missing image projections and minimizes a physically meaningful criterion.

Software

  • sba: A Generic Sparse Bundle Adjustment C/C++ Package Based on the Levenberg–Marquardt Algorithm (C, Matlab)
  • ssba: Simple Sparse Bundle Adjustment package based on the Levenberg–Marquardt Algorithm (C) with LGPL license.
  • OpenCv: Computer Vision library in the contrib module.
  • mcba: Multi-Core Bundle Adjustment (CPU/GPU).
  • libdogleg: General-purpose sparse non-linear least squares solver, based on Powell's dogleg method. LGPL.
  • ceres-solver: A Nonlinear Least Squares Minimizer with BSD license

你可能感兴趣的:(Algorithm,matlab,Parameters,distance,structure,variables)