问题标签 [ceres-solver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
116 浏览

c++ - Ceres Solver怪异输出及优化方法

我是 Ceres 优化库的新手。我想估计两组 3D 对应点之间的刚体变换,但 ceres 给出了一个奇怪的总结,如下所示:

我的代码:

有没有人解释我的错在哪里?另外,我的另一个问题是关于优化方法。我使用 DENSE_QR 来估计变换矩阵。我可以使用非线性优化算法解决线性优化问题吗?

0 投票
0 回答
110 浏览

cmake - 将 ceres 链接到 CGAL 以使用 smooth_mesh() 函数

我想在我的 C++ 项目中添加一个平滑函数,所以我试图smooth_mesh()在 CGAL 库中使用该函数。此功能需要 ceres-solver 才能工作(以及 glog 和 Eigen),因此我将其包含在项目的包含文件夹中。

我的问题是,当我尝试启动 aCGAL::Polygon_mesh_processing::smooth_mesh()时,它返回一个错误(即使一切编译正确):

我使用该功能的完整方式如下:

堆栈上有一个非常相似的问题,但给定的解决方案并没有帮助我解决我的问题。答案指示我使用,#define CGAL_PMP_USE_CERES_SOLVER但即使这样,错误仍在发生。

它还提到了 Cmake,但我没有使用 CMake 构建我的项目或库,因为 CGAL 指令使用 vcpkg,所以我猜测这可能是问题出在考虑我发现使用 Cmake 的大多数 ceres 文档的地方。但是使用 Cmake 链接 ceres 和 cgal 的说明很难找到和/或不太清楚(而且我对 Cmake 也很陌生,所以这无济于事......)。

我尝试将库手动添加到我的项目设置中(我在 Windows 上使用 Visual Studio),在某些文件中添加一些#include链接,但似乎没有任何效果。cerescgal

我希望这里有人遇到这个问题并设法解决它。如果您能帮助我,请提前感谢您!

0 投票
1 回答
119 浏览

ubuntu-16.04 - 在 ubuntu 16 中安装 ceres

我试图在 ubuntu 16 中安装 ceres 求解器,如下所示。当我尝试测试 make “make test”时,它给了我没有找到测试的错误!有人可以解释我做错了什么吗?

我正在按照官方 ceres-solver 安装说明进行操作,如下所示:

http://ceres-solver.org/installation.html

0 投票
1 回答
285 浏览

c++ - 如何在 CMake 中链接 3rd 方库(ceres-solver)

有一个简单的项目,仅包含使用ceres库(第 3 方库)的main.cpp 。

主.cpp:

以前,这是我作为一个非常初学者的编码方式:

  1. 下载与ceres相关的源文件 -> 使用 cmake 构建 -> 使用 Visual Studio 编译和安装 -> 生成我将使用的ceres.lib 。

  2. 打开视觉工作室-> 做一个空的新项目

  3. 在项目设置中链接与ceres相关的 .lib 和 .h 文件

  4. 创建main.cpp文件并开始编码:

    #include <ceres/ceres.h> ...

  5. 在 Visual Studio 中构建和运行

现在,我需要用 CMake 构建这个项目(main.cpp)。

我是否需要为 main.cpp 配置 CMakeList.txt 以便构建main.cpp期间也构建 ceres.lib ?

此外,您能否指出一个涵盖这种情况的 CMake 教程 - 配置一个使用第三方库的项目,该第三方库也需要构建。

0 投票
0 回答
70 浏览

optimization - SLAM 中的协方差估计

我尝试用 ceres 分析 vins_fusion 中优化器的协方差,但发现协方差与 EVO 计算的轨迹误差相差甚远。我怎样才能得到正确的协方差?我使用了以下命令:

0 投票
1 回答
566 浏览

ceres-solver - Ceres Solver:如何定义边界/约束?

Ceres 求解器在任何地方都表明它可以

[...] 解决鲁棒边界约束非线性最小二乘问题

并且它支持参数块的上限和下限约束(例如在http://ceres-solver.org/modeling_faqs.html它指出Ceres Solver only supports upper and lower bounds constraints on the parameter blocks),但不知何故我无法在文档中找到如何设置这些上限和下限。

那么,如何在 ceres 求解器中设置参数块的上限和下限?

具体来说,我该怎么做AutoDiffCostFunction?如果我使用if语句返回一个非常大的超出范围的残差,那么该函数是不可微的。

例如,这是 ceres Hello World:

在这个例子中,我将如何对参数 x 施加 2.0 的下限和 20.0 的上限?

0 投票
1 回答
246 浏览

cmake - 为什么 CartographerROS 安装停止并出现“无法找到谷神星”错误?

我正在尝试在 Ubuntu 20.04 上安装 CartographerROS。我已经安装了 ROS Noetic,并按照此处安装 CartographerROS 的说明进行操作:https ://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#building-installation

在运行 catkin_make_isolated --install --use-ninja 之前一切正常,导致以下错误:

/lib/cmake/Ceres/CeresConfig.cmake:88 处的 CMake 错误(消息):找不到 Ceres - Ceres 安装根目录:/,从 CeresConfig.cmake 安装位置的相对路径确定:/lib/cmake/Ceres,不包含谷神星头。要么安装目录被删除,要么安装树在 Ceres 构建后仅部分迁移到 CMake 之外。调用堆栈(最近调用优先):/lib/cmake/Ceres/CeresConfig.cmake:149 (ceres_report_not_found) CMakeLists.txt:39 (find_package) CMakeLists.txt:39 (find_package) 处的 CMake 错误:找到包配置文件:/ rib/cmake/Ceres/CeresConfig.cmake 但它将 Ceres_FOUND 设置为 FALSE,因此包“Ceres”被认为未找到。

这是在新安装的 Ubuntu 上完成的,我所做的只是安装 ROS,然后尝试安装 CartographerROS。奇怪的是,当我大约一个月前安装 CartographerROS 时,这一切都奏效了——从那时起,Ceres 构建有什么变化吗?

0 投票
1 回答
68 浏览

ceres-solver - 如何在 Ceres Solver 中添加 lasso (L1-norm) reisudial

我想在最小非线性平方函数中添加一个正则项。如何在 Ceres Solver 中进行操作?

0 投票
1 回答
80 浏览

c++ - 如何使用 Ceres Solver 库拟合二阶多元多项式(3D 表面)

我想使用非线性最小二乘法找到以下传递函数:

其中 a, b, c, d, e, f, g 是我们需要找到的系数。x、y、z 是可变的。在我的实验中,x 和 y 分别是瞳孔闪烁向量的垂直和水平坐标。此外,z 是不同距离处给定点的垂直坐标。

我不熟悉模板编程,所以希望你能指导我如何使用 Ceres Solver 库来拟合上面的二阶多元多项式。

非常感谢。^ ^。

0 投票
0 回答
107 浏览

cmake - 在 macos 上找不到带有 Ceres 的架构 x86_64 的符号

我尝试在 cere-solver 的示例中构建一个只有一个可执行文件helloworld.cc的 ceres-solver 项目,并编写了一个 cmakelist 如下。

它cmake成功,但是当我尝试制作它时,出现如下错误。

我的系统是bigsur 11.4,ceres 2.00。cmakelist 或其他有什么问题吗?谢谢你的时间!