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
15namespace calib {
16
18
20 {OptimizerType::SPARSE_SCHUR, "sparse_schur"},
21 {OptimizerType::DENSE_SCHUR, "dense_schur"},
22 {OptimizerType::DENSE_QR, "dense_qr"}})
23
24struct OptimOptions final {
25 static constexpr double k_default_epsilon = 1e-9;
26 static constexpr int k_default_max_iterations = 1000;
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
35struct OptimResult final {
36 bool success = false;
37 Eigen::MatrixXd covariance;
38 std::string report = "Empty";
39 double final_cost = 0.0;
40};
41
44
45} // namespace calib
Linear multi-camera extrinsics initialisation (DLT)
OptimizerType
Definition optimize.h:17
constexpr int k_default_max_iterations
Improved linear initialization with distortion estimation.
Definition intrinsics.h:66
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
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
Eigen::MatrixXd covariance
Definition optimize.h:37
std::string report
Definition optimize.h:38