680人阅读 评论(0)

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 $n$ 3D points are seen in $m$ views and let $\mathbf{x}_{ij}$ be the projection of the $i$th point on image $j$. Let $\displaystyle v_{ij}$ denote the binary variables that equal 1 if point $i$ is visible in image $j$ and 0 otherwise. Assume also that each camera $j$ is parameterized by a vector $\mathbf{a}_j$ and each 3D point $i$ by a vector $\mathbf{b}_i$. Bundle adjustment minimizes the total reprojection error with respect to all 3D point and camera parameters, specifically

$\min_{\mathbf{a}_j, \, \mathbf{b}_i} \displaystyle\sum_{i=1}^{n} \; \displaystyle\sum_{j=1}^{m} \; v_{ij} \, d(\mathbf{Q}(\mathbf{a}_j, \, \mathbf{b}_i), \; \mathbf{x}_{ij})^2,$

where $\mathbf{Q}(\mathbf{a}_j, \, \mathbf{b}_i)$ is the predicted projection of point $i$ on image $j$ and $d(\mathbf{x}, \, \mathbf{y})$ denotes the Euclidean distance between the image points represented by vectors $\mathbf{x}$and $\mathbf{y}$. 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 (CMatlab)
• 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

0
1

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：38240次
• 积分：1582
• 等级：
• 排名：千里之外
• 原创：118篇
• 转载：54篇
• 译文：0篇
• 评论：0条
评论排行