22 #if !defined(SPARSE_BUNDLE_CU_H)
23 #define SPARSE_BUNDLE_CU_H
89 std::vector<float>& qmapw,
90 std::vector<float>& qlistw);
147 const int* point_idx,
const int* cam_idx);
148 virtual void SetFocalMask(
const int* fmask,
float weight);
167 virtual ConfigBA* GetInternalConfig() {
return this; }
void ParseParam(int argc, char **argv)
int __use_radial_distortion
CuTexImage _cuCameraMeasurementListT
void AdjustBundleAdjsutmentMode()
void NonlinearOptimizeLM()
CuTexImage _cuCameraQListW
float EvaluateProjection(CuTexImage &cam, CuTexImage &point, CuTexImage &proj)
bool CheckRequiredMem(int fresh=1)
void ComputeJtE(CuTexImage &E, CuTexImage &JtE, int mode=0)
CuTexImage _cuCameraMeasurementMap
virtual void SetCameraData(size_t ncam, CameraT *cams)
void EvaluateJacobians(bool shuffle=true)
virtual float GetMeanSquaredError()
CuTexImage _cuVectorJtE
LM normal equation.
virtual void SetNextTimeBudget(int seconds)
virtual void SetPointData(size_t npoint, Point3D *pts)
virtual void SetFocalMask(const int *fmask, float weight)
CuTexImage _cuCameraDataEX
void SaveBundleRecord(int iter, float res, float damping, float &g_norm, float &g_inf)
bool InitializeBundleGPU()
virtual int RunBundleAdjustment()
int SolveNormalEquation(float lambda)
bool InitializeStorageForCG()
float SaveUpdatedSystem(float residual_reduction, float dx_sqnorm, float damping)
virtual void EnableRadialDistortion(DistortionT type)
void TransferDataToHost()
void ComputeBlockPC(float lambda, bool dampd=true)
virtual void SetNextBundleMode(BundleModeT mode)
virtual void AbortBundleAdjustment()
float UpdateCameraPoint(CuTexImage &dx, CuTexImage &cuImageTempProj)
const float * _imgpt_data
CuTexImage _cuJacobianPoint
float EvaluateProjectionX(CuTexImage &cam, CuTexImage &point, CuTexImage &proj)
void PrepareJacobianNormalization()
virtual int GetCurrentIteration()
void ApplyBlockPC(CuTexImage &v, CuTexImage &pv, int mode=0)
CuTexImage _cuJacobianCamera
void RunTestIterationLM(bool reduced)
SparseBundleCU(int device)
std::vector< float > _imgpt_datax
virtual void ParseParam(int narg, char **argv)
void ReleaseAllocatedData()
void ComputeJX(CuTexImage &X, CuTexImage &JX, int mode=0)
CuTexImage _cuCameraMeasurementList
void ProcessWeightCameraQ(std::vector< int > &cpnum, std::vector< int > &qmap, std::vector< float > &qmapw, std::vector< float > &qlistw)
void ComputeDiagonal(CuTexImage &JJ, CuTexImage &JJI)
virtual void SetProjection(size_t nproj, const Point2D *imgpts, const int *point_idx, const int *cam_idx)
bool ProcessIndexCameraQ(std::vector< int > &qmap, std::vector< int > &qlist)
CuTexImage _cuCameraQMapW
void SaveNormalEquation(float lambda)
CuTexImage _cuPointMeasurementMap
virtual void SetFixedIntrinsics(bool fixed)
int SolveNormalEquationPCGX(float lambda)
CuTexImage _cuJacobianCameraT
CuTexImage _cuCameraQList
CuTexImage _cuMeasurements
CuTexImage _cuProjectionMap
int SolveNormalEquationPCGB(float lambda)
float EvaluateDeltaNorm()
void ReserveStorage(size_t ncam, size_t npt, size_t nproj)
CuTexImage _cuPointDataEX
void ReserveStorageAuto()