Ceres
工作学习笔记
JunJun~
沉淀~
展开
-
Ceres学习笔记1:在Ubuntu的安装
下载git clone https://ceres-solver.googlesource.com/ceres-solver安装依赖# CMake sudo apt-get install cmake # google-glog + gflags sudo apt-get install libgoogle-glog-dev # BLAS & LAPACK sud...翻译 2018-05-07 16:56:37 · 1652 阅读 · 0 评论 -
非线性优化库Ceres学习笔记2:自动求导
Hello World!考虑下面的最优化问题:1 编写一个代价函数struct CostFunctor { template <typename T> bool operator()(const T* const x, T* residual) const { residual[0] = T(10.0) - x[0]; return t...翻译 2018-05-07 18:22:42 · 1154 阅读 · 0 评论 -
非线性优化库Ceres学习笔记3(数值求导)
1 数值导数有的时候当自动求导不方便的时候,需要进行数值求导。struct NumericDiffCostFunctor { bool operator()(const double* const x, double* residual) const { residual[0] = 10.0 - x[0]; return true; }};2 添加问题...翻译 2018-05-09 12:56:48 · 1314 阅读 · 0 评论 -
非线性优化库Ceres学习笔记4(解析求导)
1 解析导数有时,不太可能使用自动求导。#include <vector>#include "ceres/ceres.h"#include "glog/logging.h"using ceres::CostFunction;using ceres::SizedCostFunction;using ceres::Problem;using ceres::Solve...翻译 2020-04-21 22:17:14 · 1076 阅读 · 0 评论 -
非线性优化库Ceres学习笔记5(Powell’s Function)
接下来考虑一个稍微复杂一点的例子:同样的,第一步仍然是定义残差方程。对于每一行方程都可以定义一个对应的结构体,如对于f4(x1,x4):struct F4 { template <typename T> bool operator()(const T* const x1, const T* const x4, T* residual) const { re...翻译 2020-04-25 21:44:07 · 1113 阅读 · 0 评论 -
非线性优化库Ceres学习笔记6(曲线拟合)
到目前为止,我们看到的示例都是没有数据的简单优化问题。最小二乘法和非线性最小二乘分析的本来目的是对一组数据进行曲线拟合。本节将介绍曲线拟合的问题。下面我们用下列带未知参数的方程来拟合这些采样点:我们首先定义一个模板对象来评估残差。每个观察值都会有一个残差。struct ExponentialResidual { ExponentialResidual(double x, dou...翻译 2020-04-25 22:03:55 · 939 阅读 · 0 评论 -
非线性优化库Ceres学习笔记7(鲁棒的曲线拟合)
现在假设给定的数据有一些异常值,即我们有一些不服从噪声模型的点。如果我们使用上面的代码来拟合这些数据,我们将得到如下所示的拟合。在这个时候需要应用损失函数(Loss function)来对异常数据进行过滤。比如在上文的例子中,我们对代码进行以下修改:problem.AddResidualBlock(cost_function, NULL , &m, &c);改为...翻译 2020-04-25 22:59:39 · 922 阅读 · 0 评论 -
非线性优化库Ceres学习笔记8(Bundle Adjustment)
开发Ceres的主要原因之一是我们需要解决大规模的Bundle Adjustment,简称BA。给定一组测量的图像特征和对应关系,Bundle Adjustment的目标是找到使重投影误差最小的3D点位置和相机参数。这个优化问题通常被描述为非线性最小二乘法问题,要最小化的目标函数即为测得图像中特征点位置和相机成像平面上的对应的投影之间的差的平方。Ceres例程使用了BAL数据集 。第一步是...翻译 2020-04-25 23:25:29 · 1641 阅读 · 0 评论