Calibration Library
1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
optimize.h
Go to the documentation of this file.
1
#pragma once
2
3
// std
4
#include <algorithm>
5
#include <cctype>
6
#include <cstdint>
7
#include <stdexcept>
8
#include <string>
9
10
// Eigen
11
#include <Eigen/Core>
12
13
#include "
calib/io/serialization.h
"
// to_json/from_json
14
15
namespace
calib
{
16
17
enum class
OptimizerType
{
DEFAULT
,
SPARSE_SCHUR
,
DENSE_SCHUR
,
DENSE_QR
};
18
19
NLOHMANN_JSON_SERIALIZE_ENUM
(
OptimizerType
, {{
OptimizerType::DEFAULT
,
"default"
},
20
{
OptimizerType::SPARSE_SCHUR
,
"sparse_schur"
},
21
{
OptimizerType::DENSE_SCHUR
,
"dense_schur"
},
22
{
OptimizerType::DENSE_QR
,
"dense_qr"
}})
23
24
struct
OptimOptions
final
{
25
static
constexpr
double
k_default_epsilon = 1e-9;
26
static
constexpr
int
k_default_max_iterations
= 1000;
27
OptimizerType
optimizer =
OptimizerType::DEFAULT
;
28
double
huber_delta = 1.0;
29
double
epsilon = k_default_epsilon;
30
int
max_iterations =
k_default_max_iterations
;
31
bool
compute_covariance
=
true
;
32
bool
verbose =
false
;
33
};
34
35
struct
OptimResult
final {
36
bool
success
=
false
;
37
Eigen::MatrixXd
covariance
;
38
std::string
report
=
"Empty"
;
39
double
final_cost
= 0.0;
40
};
41
42
static_assert
(
serializable_aggregate<OptimOptions>
);
43
static_assert
(
serializable_aggregate<OptimResult>
);
44
45
}
// namespace calib
calib::serializable_aggregate
Definition
json.h:23
calib
Linear multi-camera extrinsics initialisation (DLT)
Definition
intrinsics_utils.h:10
calib::OptimizerType
OptimizerType
Definition
optimize.h:17
calib::OptimizerType::DENSE_SCHUR
@ DENSE_SCHUR
calib::OptimizerType::DEFAULT
@ DEFAULT
calib::OptimizerType::DENSE_QR
@ DENSE_QR
calib::OptimizerType::SPARSE_SCHUR
@ SPARSE_SCHUR
calib::k_default_max_iterations
constexpr int k_default_max_iterations
Improved linear initialization with distortion estimation.
Definition
intrinsics.h:66
calib::NLOHMANN_JSON_SERIALIZE_ENUM
NLOHMANN_JSON_SERIALIZE_ENUM(OptimizerType, {{OptimizerType::DEFAULT, "default"}, {OptimizerType::SPARSE_SCHUR, "sparse_schur"}, {OptimizerType::DENSE_SCHUR, "dense_schur"}, {OptimizerType::DENSE_QR, "dense_qr"}}) struct OptimOptions final
Definition
optimize.h:19
calib::compute_covariance
auto compute_covariance(const ProblemParamBlocks &problem_param_blocks, ceres::Problem &problem, double sum_squared_residuals=0, size_t total_residuals=0) -> std::optional< Eigen::MatrixXd >
Definition
ceresutils.h:69
serialization.h
calib::OptimResult
Definition
optimize.h:35
calib::OptimResult::final_cost
double final_cost
Definition
optimize.h:39
calib::OptimResult::success
bool success
Definition
optimize.h:36
calib::OptimResult::covariance
Eigen::MatrixXd covariance
Definition
optimize.h:37
calib::OptimResult::report
std::string report
Definition
optimize.h:38
runner
work
calibration
calibration
include
calib
estimation
optim
optimize.h
Generated by
1.9.8