分享好友 最新动态首页 最新动态分类 切换频道
Ceres使用
2024-12-27 04:03

手册地址
http://www.ceres-solver.org/nnls_modeling.html#_CPPv2N5ceres29AutoDiffLocalParameterizationE

Ceres的求解过程包括构建最小二乘和求解最小二乘问题两部分,其中构建最小二乘问题的相关方法均包含在Ceres::Problem类中,涉及的成员函数主要包括Problem::AddResidualBlock()和Problem::AddParameterBlock()。

AddResidualBlock()顾名思义主要用于向Problem类传递残差模块的信息,函数原型如下,传递的参数主要包括代价函数模块、损失函数模块和参数模块。

 

:x0、x1为估计参数

1.1.1 CostFunction

代价函数:包含了参数模块的维度信息,内部使用仿函数定义误差函数的计算方式。AddResidualBlock( )函数会检测传入的参数模块是否和代价函数模块中定义的维数一致,维度不一致时程序会强制退出。

ceres提供了许多种CostFunction模板,较为常用的包括以下三种

  • 自动导数(AutoDiffCostFunction:由ceres自行决定导数的计算方式,最常用的求导方式。
  • 数值导数(NumericDiffCostFunction:由用户手动编写导数的数值求解形式,通常在残差函数的计算使用无法直接调用的库函数,导致调用AutoDiffCostFunction类构建时使用;但手动编写的精度和计算效率不如模板类,因此不到不得已,官方并不建议使用该方法。
  • 解析导数(Analytic Derivatives:当导数存在闭合解析形式时使用,用于可基于CostFunciton基类自行编写;但由于需要自行管理残差和雅克比矩阵,除非闭合解具有具有明显的精度和效率优势,否则同样不建议使用。
    AutoDiffCostFunction为模板类,构造函数如下
 

模板参数依次为仿函数(functor)类型CostFunctor,残差维数residualDim和待优化变量维数paramDim,接受参数类型为仿函数指针CostFunctor*。

 
仿函数CostFunctor

仿函数的本质为结构体struct或者类class,由于重载了()运算符,使得其能够具有和函数一样的调用行为,因此被称为仿函数。ceres中采用仿函数来表示残差的计算过程。

  • 重载操作符()(必有
    操作符()是一个模板方法,返回值为bool型,接受参数依次为待优化变量和残差变量,且待优化变量的传入方式应和Probelm::AddResidualBlock()一致。
 

1.1.2 LossFunction

损失函数:用于处理参数中含有野值的情况,避免错误量测对估计的影响,常用参数包括HuberLoss、CauchyLoss等;该参数可以取NULL或nullptr,此时损失函数为单位函数。

用户在调用AddResidualBlock( )时其实已经隐式地向Problem传递了参数模块,但在一些情况下,需要用户显示地向Problem传入参数模块(通常出现在需要对优化参数进行重新参数化的情况)。Ceres提供了Problem::AddParameterBlock( )函数用于用户显式传递参数模块

 

:values表示优化变量,size表示优化变量的维度。
其中,第一种函数原型除了会增加一些额外的参数检查之外,功能上和隐式传递参数并没有太大区别。第二种函数原型则会额外传入LocalParameterization参数,用于重构优化参数的维数,这里我们着重讲解一下LocalParameterization类。

1.2.1 LocalParameterization

LocalParameterization是在优化Manifold(流形)上的变量时需要考虑的,Manifold上变量是过参数的,即Manifold上变量的维度大于其自由度。这会导致Manifold上变量各个量之间存在约束,如果直接对这些量求导、优化,那么这就是一个有约束的优化,实现困难。为了解决这个问题,在数学上对Manifold在当前变量值处形成的切空间求导,在切空间上优化,最后投影回Manifold。

对于SLAM问题,广泛遇到的Manifold是旋转,旋转仅需要3个量,但实际运用中涉及到万向锁问题,在更高维空间表达旋转,四元数就是在维度4表达3个自由度的三维空间的旋转。

bool ComputeJacobian()计算得到一个4*3的矩阵(global_to_local),含义是Manifold上变量对Tangent Space上变量的导数,在ceres::CostFunction处提供residuals对Manifold上变量的倒数,乘以这个矩阵,之后变就变成了对Tangent Space上变量的导数。

 

除了上面提到的QuaternionParameterization外,ceres还提供下述预定义LocalParameterization子类,具体可查手册。

1.2.2 自定义LocalParameterization

LocalParaneterization本身是一个虚基类,详细定义如下。用户可以自行定义自己需要使用的子类,或使用Ceres预先定义好的子类。

Probelm还提供了其他关于ResidualBlock和ParameterBlock的函数,例如获取模块维数、判断是否存在模块、存在的模块数目等,这里只列出几个比较重要的函数,完整的列表参见ceres API

 
 

选取合适的求解器

Ceres的参数主要有三类,一类通用参数,比如迭代次数什么的;第二类是和优化算法的参数;第三类是和线性求解器(在信任域算法中被使用)有关的参数。
常用通用参数如下

  • options.max_solver_time_in_seconds
    默认值:1e6
    最长运行时间,单位为秒。
  • options.linear_solver_type
    线性求解器的类型,用于计算Levenberg-Marquardt算法每次迭代中线性最小二乘问题的解。 如果编译Ceres时加入了SuiteSparse或CXSparse或Eigen的稀疏Cholesky分解选项,则默认为SPARSE_NORMAL_CHOLESKY,否则为DENSE_QR。

输出优化过程及结果

  • termination_type
    求解器终止的原因
 
  • final_cost
    优化后的最终代价
最新文章
河南省畜牧技术推广工作座谈会暨草牧业 高质量发展论坛在郑州召开
距离2024年结束还有18天12月10日,全省畜牧技术推广工作座谈会暨草牧业高质量发展论坛在郑州召开。省委农办副主任,省农业农村厅党组成员、副厅长刘晓文出席会议并讲话,厅总畜牧师张全勇主持座谈会。会议指出,全省畜牧技术推广系统围绕畜
长文控诉、爆猛料!OpenAI罗列12条“罪证”,痛斥马斯克“双面人”
AI科技圈的瓜又有新花絮,马斯克与OpenAI的“爱恨纠葛”大戏甚有看头。在经历了持续且猛烈的马斯克攻击波后,这一次OpenAI终于发起了反击。12条“罪证”美东时间周五,OpenAI在官网发布“大字报”长文,控诉马斯克是“”。文章开篇,OpenAI
国产高清精品软件:打造极致视觉体验
为了打造极致视觉体验,这些软件不断进行技术创新。它们采用了先进的算法和优化技术,提高了软件的运行效率和稳定性。通过对用户需求的深入研究,不断完善功能和界面设计,使得软件更加易于使用和操作。用户可以轻松地进行各种设置和调整,
站内优化和站外优化在 SEO 中的区别是什么
在网站优化(SEO)领域中,站内优化和站外优化是两个重要的概念。站内优化指的是对网站自身的结构、内容、技术等方面进行优化,以提高网站的搜索引擎排名。这包括网页标题、网页内容、网页结构、网页加载速度等。通过站内优化,可以让搜索引擎更
青州企业互联网转型升级新动力——专业网站推广优化服务助力前行
青州一家专业网站推广优化公司,致力于帮助企业实现互联网转型升级。通过精准定位、优化策略,助力企业提升品牌知名度,拓宽市场份额,助力企业迈向数字化时代。随着互联网技术的飞速发展,越来越多的企业开始意识到线上推广和网站优化的重
金舟windows优化大师官方版
金舟windows优化大师官方版是一款实用且强大的系统优化软件,它集成了C盘清理、大文件搬家、微信专清等多项功能,可以深入分析用户的电脑的状况,清理系统垃圾文件、临时文件、回收站以及浏览器缓存等无用文件,提高系统性能,从而让电脑运
铁路12306手机售票客户端 v5.8.0.4安卓版
百度CarLife华为版是一款支持手机和车机的车载互联语音出行助手,只需要将软件与汽车进行连接就能直接投屏分享到车载之中实现互联功能,接电话、发短信、听音乐等都可以语音进行操作,在驾驶途中提供方便快捷,解放双手,出行更安全。百度C
百度蜘蛛池租用:清风算法官网蜘蛛池,助力网站优化,提升搜索引擎排名
清风算法官网提供的蜘蛛池租用服务,助力网站优化,有效提升搜索引擎排名,助力企业网络营销。本文目录导读:清风算法官网蜘蛛池简介清风算法官网蜘蛛池的使用方法清风算法官网蜘蛛池的优势随着互联网的快速发展,搜索引擎优化(SEO)成为
迈威尔科技定制HBM解决方案:AI加速器性能大幅提升
近日,迈威尔科技(MRVL.US)宣布其在高带宽内存(HBM)领域的重大突破,将为人工智能处理器带来显著的性能提升。这项创新性的定制HBM解决方案是通过与美光科技、三星及SK海力士等主要内存设计公司的合作,实现的,旨在满足日益增长的AI计
高清美女写真生成神器!体验搜狐简单AI的魅力
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字化的时代,如何创造出一个完美的‘自己’成了许多人的追求,尤其是想要通过AI技术
相关文章
推荐文章
发表评论
0评