Jafar
|
Mathematical part of our Bundle Adjustment implementation. More...
Mathematical part of our Bundle Adjustment implementation.
Definition at line 27 of file linearsys.hpp.
#include <linearsys.hpp>
Public Member Functions | |
bundleLinearSys (const observationsContainer obsCon_) | |
Default constructor. | |
void | afficheB1 (unsigned int indObs, unsigned int indVue) |
void | afficheB2 (unsigned int indObs, unsigned int indObj) |
template<typename typeCam > | |
void | processData (bundle::observationsContainer &bobs, bundle::bundleVariables< typeCam > &bvar) |
Computation of the jacobian matrix J, of the gradient vector G and of the matrix A=trans(J)*SIGMA*J (see Lourakis's TR to more infos). | |
double | maxDiagA () |
Return the max value of the diagonal of A. | |
void | solveByLU (double mu=0.0) |
Resolve the linear system (A+muId)dp = g by LU decomposition. | |
void | solveByGC (double mu=0.0) |
Resolve the linear system (A+muId)dp = g by the Conjugate Gradient method. | |
Public Attributes | |
jblas::vec | gradient |
Gradient vector. | |
jblas::vec | deltap |
Incremental upate of the BA variables vector (extrinsic parameters + 3D points localization) | |
Private Member Functions | |
void | bundle_forward_substitution (double const mu) |
void | bundle_backward_substitution () |
After resvoling of S dpCPDV = T, dp3D is obtained by backward substitution. | |
Private Attributes | |
unsigned int | nbCam |
unsigned int | nbObj3D |
unsigned int | nbObs2D |
jmath::matofmat< double, 2, 6 > | B1 |
jmath::matofmat< double, 2, 3 > | B2 |
std::vector< jblas::mat66 > | U |
std::vector< jblas::mat33 > | V |
std::vector< jblas::mat33 > | invV |
jblas::mat | Y |
std::vector< jblas::mat_range * > | rangeY |
jblas::vec | T |
std::vector< jblas::vec_range * > | rangeT |
jblas::mat | S |
std::vector< jblas::mat_range * > | rangeS |
jblas::mat | D |
std::vector< jblas::mat_range * > | rangeD |
std::vector< jblas::vec_range * > | gradCpdv |
std::vector< jblas::vec_range * > | grad3d |
jblas::vec_range | dpcpdv |
jblas::vec_range | dp3d |
std::vector< jblas::vec_range * > | dp1cpdv |
std::vector< jblas::vec_range * > | dp1obj3d |
double jafar::bundle::bundleLinearSys::maxDiagA | ( | ) | [inline] |
Return the max value of the diagonal of A.
max(Aii) = max(max(Uii),max(V(ii))) This value is used to initialize mu (in the Levenberg Marquardt algorithm)
Definition at line 344 of file linearsys.hpp.
Referenced by jafar::bundle::bundleLM().
Generated on Wed Oct 15 2014 00:37:32 for Jafar by doxygen 1.7.6.1 |