随笔分类 -  Ceres Solver

1 2 下一页
LocalParameterization子类说明:QuaternionParameterization类和EigenQuaternionParameterization类
摘要:简单地说。LocalParameterization 是在优化 Manifold 上的变量时需要考虑的,Manifold 上变量是 over parameterized,即 Manifold 上变量的维度大于其自由度。这会导致 Manifold 上变量各个量之间存在约束,如果直接对这些量求导、优化, 阅读全文
posted @ 2022-07-21 16:57 JJ_S 阅读(974) 评论(0) 推荐(1) 编辑
Ceres学习-3.Solver
摘要:使用Ceres求解非线性优化问题,一共分为三个部分: 第一部分:构建cost fuction,即代价函数,也就是寻优的目标式。参见《Ceres学习-1.CostFunction》https://www.cnblogs.com/vivian187/p/15393995.html 第二部分:通过代价函数 阅读全文
posted @ 2021-10-11 16:51 JJ_S 阅读(1727) 评论(0) 推荐(0) 编辑
Ceres学习-2.Problem
摘要:1.Problem类简述 // 来自于ceres-solver-1.14.0/include/ceres/problem.h class CERES_EXPORT Problem { public: // Problem默认掌握cost_function,loss_function和local_pa 阅读全文
posted @ 2021-10-11 16:50 JJ_S 阅读(1583) 评论(0) 推荐(0) 编辑
Ceres学习-1.CostFunction
摘要:CostFunction的概念参考 https://www.cnblogs.com/vivian187/p/15398068.html Ceres求解器,像所有基于梯度的优化算法一样,依赖于能够评估目标函数及其在其域内任意点的导数。实际上,定义目标函数及其雅可比矩阵是用户在使用Ceres求解器求解优 阅读全文
posted @ 2021-10-11 16:49 JJ_S 阅读(2196) 评论(0) 推荐(0) 编辑
18.Ceres官方教程-Modeling Non-linear Least Squares (6) Problem
摘要:Problem保持了非线性最小二乘问题的强化的边界。要创建最小二乘问题,可以使用ProblemAddResidualBlock()和ProblemAddParameterBlock()。 例如,下面这个Problem包含了三个参数块,维度分别为3,4,5。同时有两个残差块,维度分别是2和6。 dou 阅读全文
posted @ 2021-10-11 14:45 JJ_S 阅读(582) 评论(0) 推荐(0) 编辑
17.Ceres官方教程-Modeling Non-linear Least Squares (5) LocalParameterization
摘要:1.LocalParameterization 在许多优化问题中,特别是传感器融合问题中,我们必须对流形空间中的数量进行建模,例如由四元数表示的传感器的旋转/方向。 流形是空间,其局部看起来像欧几里得空间。更准确地说,在流形上的每一点上,都有一个与流形相切的线性空间。它的维数等于流形本身的内在维数, 阅读全文
posted @ 2021-10-11 11:13 JJ_S 阅读(529) 评论(0) 推荐(0) 编辑
16.Ceres官方教程-Modeling Non-linear Least Squares (4) 损失函数
摘要:对于最小二乘问题,其中最小化可能遇到包含异常值的输入项,即完全虚假的测量值,重要的是使用损失函数来减少它们的影响。 考虑一个来自运动问题的结构。未知量是3D点和摄像机参数,测量值是描述摄像机中某个点预期重投影位置的图像坐标。例如,我们想要对带有消防栓和汽车的街景的几何形状建模,通过带有未知参数的移动 阅读全文
posted @ 2021-10-11 10:54 JJ_S 阅读(251) 评论(0) 推荐(0) 编辑
15.Ceres官方教程-Modeling Non-linear Least Squares (3)
摘要:1.GradientChecker 这个类比较由代价函数返回的雅可比矩阵与用有限微分估计的导数。它是一种用于单元测试的工具,比求解器选项中的check_gradients选项提供更fine-grained的控制。 强制执行的条件是 由用户提供的成本函数乘以局部参数雅可比矩阵计算出来的雅可比矩阵, 是 阅读全文
posted @ 2021-09-30 11:16 JJ_S 阅读(249) 评论(0) 推荐(0) 编辑
14.Ceres官方教程-Modeling Non-linear Least Squares (2) 多种CostFunction
摘要:1.CostFunction 对于目标函数中的每一项,CostFunction负责计算残差向量和雅可比矩阵。具体地,考虑一个依赖于参数块的函数。 然后,对于一个给定的,CostFunction负责计算向量和雅克比矩阵 class CostFunction { public: virtual bool 阅读全文
posted @ 2021-09-28 17:41 JJ_S 阅读(984) 评论(0) 推荐(0) 编辑
13.Ceres官方教程-Modeling Non-linear Least Squares (1) 介绍
摘要:Ceres求解器由两个不同的部分组成。一个是建模API,它提供了非常丰富的工具,可以迅速构建一个优化问题模型。另一个是解算器API,用于控制最小化算法。本章致力于使用Ceres建模优化问题的任务。下一章 Solving Non-linear Least Squares 讨论了使用Ceres解决优化问 阅读全文
posted @ 2021-09-28 11:17 JJ_S 阅读(338) 评论(0) 推荐(0) 编辑
12.Ceres官方教程-On Derivatives~Interfacing with Automatic Differentiation
摘要:在成本函数的显式表达式可用的情况下,自动微分很容易使用。通常程序都需要与外部的程序或数据进行交互。在本章中,我们将考虑几种不同的方法。 为此,我们将考虑寻找参数θ和t的问题,以解决以下形式的优化问题: 这里,R是一个用角度θ参数化的二维旋转矩阵,t是一个二维向量。f是一个外部畸变函数。 我们首先考虑 阅读全文
posted @ 2021-09-26 16:02 JJ_S 阅读(183) 评论(0) 推荐(0) 编辑
11.Ceres官方教程-On Derivatives~Automatic Derivatives
摘要:现在我们将讨论自动微分算法。它是一种可以快速计算精确导数的算法,同时用户只要做与数值微分法类似的工作。下面的代码片段实现了对Rat43(https://www.itl.nist.gov/div898/strd/nls/data/ratkowsky3.shtml)的CostFunction。 stru 阅读全文
posted @ 2021-09-26 15:59 JJ_S 阅读(240) 评论(0) 推荐(0) 编辑
9.Ceres官方教程-On Derivatives~Analytic Derivatives
摘要:考虑以下曲线(Rat43 https://www.itl.nist.gov/div898/strd/nls/data/ratkowsky3.shtml)的拟合问题: 也就是说,给定一些数据,确定最适合该数据的参数 我们面临的问题就是求解使下列表达式的取值最小: 最佳拟合的概念取决于用来衡量拟合质量的 阅读全文
posted @ 2021-09-26 15:58 JJ_S 阅读(181) 评论(0) 推荐(0) 编辑
10.Ceres官方教程-On Derivatives~Numeric derivatives
摘要:使用analytic derivatives的另一个极端是使用numeric derivatives。关键是,对函数f(x)关于x的求导过程可以写成极限形式: Forward Differences前向差分 当然,在计算机中,我们不能执行数值求极限操作,所以我们要做的是,选择一个很小的值h并将导数近 阅读全文
posted @ 2021-09-26 15:58 JJ_S 阅读(271) 评论(0) 推荐(0) 编辑
8.Ceres官方教程-On Derivatives~Spivak Notation
摘要:为了简化阅读和理解,使用Spivak符号表示导数。对于单变量函数f,f(a)为其在a处的值,Df为其一阶导数,Df(a)为其在a处的导数,即 表示f的第k阶导数。 对于二元函数。和分别表示关于g的两个偏微分,即 表示g的雅可比矩阵。 更一般的,对一个多元函数g:,表示的就是一个m×n的雅可比矩阵。 阅读全文
posted @ 2021-09-26 15:56 JJ_S 阅读(142) 评论(0) 推荐(0) 编辑
7.Ceres官方教程-On Derivatives
摘要:Ceres求解器,像所有基于梯度的优化算法一样,依赖于能够评估目标函数及其在其域内任意点的导数。实际上,定义目标函数及其雅可比矩阵是用户在使用Ceres求解器求解优化问题时需要执行的主要任务。正确、高效的雅可比矩阵计算是获得良好性能的关键。 用户可以灵活的从一下三种微分算法中选择: 1.Analyt 阅读全文
posted @ 2021-09-26 15:55 JJ_S 阅读(396) 评论(0) 推荐(0) 编辑
6.Ceres官方教程-General Unconstrained Minimization
摘要:虽然Ceres Solver的大部分致力于解决非线性最小二乘问题,但它内部包含一个求解器,可以解决一般的无约束优化问题,只使用其目标函数值和梯度。GradientProblem和GradientProblemSolver对象让用户可以访问这个求解器。 所以没有太多的麻烦,让我们看看如何使用它们。 R 阅读全文
posted @ 2021-09-26 15:35 JJ_S 阅读(409) 评论(0) 推荐(0) 编辑
6.Ceres官方教程-非线性最小二乘~Other Examples
摘要:除了之前的示例外,example目录中还包含许多其他示例: 1.bundle_adjuster.cc演示了如何使用Ceres的各种特性来解决bundle adjustment问题。 2.circle_fit.cc如果将数据拟合成圆形 3.ellipse_approximation.cc用近似的线段轮 阅读全文
posted @ 2021-09-26 14:37 JJ_S 阅读(499) 评论(0) 推荐(0) 编辑
5.Ceres官方教程-非线性最小二乘~Bundle Adjustment
摘要:编写Ceres的主要原因之一是我们需要解决大规模的Bundle Adjustment问题。参考文献《Multiview Geometry in Computer Vision》《Bundle Adjustment: A Modern Synthesis, Proceedings of the Int 阅读全文
posted @ 2021-09-24 17:44 JJ_S 阅读(1102) 评论(0) 推荐(0) 编辑
4.Ceres官方教程-非线性最小二乘~Curve Fitting(曲线拟合)
摘要:1.Curve Fitting 到目前为止,我们看到的示例都是没有数据的简单优化问题。最小二乘和非线性最小二乘分析的原始目的是对数据进行曲线拟合。 接下来将介绍曲线拟合的问题。采样点是根据曲线生成的,并且添加标准差σ=0.2的高斯噪声。我们用下列带未知参数的方程来拟合这些采样点: 首先定义一个模板对 阅读全文
posted @ 2021-09-24 16:57 JJ_S 阅读(1258) 评论(0) 推荐(1) 编辑

1 2 下一页