Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
jafar::bundle::bundleLinearSys Class Reference

Mathematical part of our Bundle Adjustment implementation. More...


Detailed Description

Mathematical part of our Bundle Adjustment implementation.

Definition at line 27 of file linearsys.hpp.

#include <linearsys.hpp>

List of all members.

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::mat66U
std::vector< jblas::mat33V
std::vector< jblas::mat33invV
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

Member Function Documentation

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().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:32 for Jafar by doxygen 1.7.6.1
LAAS-CNRS