摘要:前面通过几个篇幅阐述了Ceres的基本应用,本篇基于之前的样例展示一个稍加复杂的样例。在给出使用样例之前,我们先来谈谈捆绑优化(Bundle Adjustment)和单目视觉中的尺度问题。 1.捆绑优化 捆绑优化的概念追溯久远,要从其原始出处说起,还真不是一两话能说清楚,涉及视觉领域相当专业的概念。
阅读全文
posted @ 2020-02-02 23:33
随笔 - 61, 文章 - 0, 评论 - 5, 阅读 -
36446
|
|
随笔分类 - Ceres-Solver
摘要:前面通过几个篇幅阐述了Ceres的基本应用,本篇基于之前的样例展示一个稍加复杂的样例。在给出使用样例之前,我们先来谈谈捆绑优化(Bundle Adjustment)和单目视觉中的尺度问题。 1.捆绑优化 捆绑优化的概念追溯久远,要从其原始出处说起,还真不是一两话能说清楚,涉及视觉领域相当专业的概念。
阅读全文
posted @ 2020-02-02 23:33
摘要:Ceres中的扰动导数主要通过是继承ceres::LocalParameterization来实现。当然,LocalParameterization本身具有更远大的使命或者说具有更广义的功能,扰动导数只是其特定的应用,也是其典型应用。 谈到扰动求导自然避不开李代数的知识,但这不属于本文的范围,可参见
阅读全文
posted @ 2020-02-02 23:02
摘要:之前已经介绍过Ceres自动求导的使用样例,详见《Ceres-Solver学习日志:自动求导使用样例与针孔成像器的应用》,这里介绍手动求导使用样例,并对比与cv::LMSolver的使用差异。 1.定义代价类 手动求导的核心就是继承CostFunction或DynamicCostFunction或S
阅读全文
posted @ 2020-02-02 22:56
摘要:1.定义残差类 基于自动求导的核心是定义残差类。 说到要定义一个类,感觉是要实现很复杂的功能,而实际上该类就实现一个功能,即实现残差模型。 必须在残差类中重截operator()实现残差模型,很多时候,残差类也就这么一个成员,无需再添加其它成员,就能实现残差模型。 如何实现残差类取决于残差模型,反映
阅读全文
posted @ 2020-02-02 22:46
摘要:6.使用样例 提供三个官方使用样例,封装为三个类: (1)AboutPowellEquation:四个残差模型、每个残差模型仅一个残差项、LM算法。 (2)AboutCurveFitting:一个残差模型、此残差模型对应多个残差项、LM算法。 (3)AboutRosenbrock:两个残差模型、每个
阅读全文
posted @ 2020-02-02 22:37
|
|