问题标签 [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 投票
0 回答
146 浏览

ios - 为具有多线程支持的 ios 构建 ceres-solver

您好,我正在尝试从这里为 ios构建ceres

我可以使用推荐的构建设置很好地构建,但它在没有多线程的情况下构建。

我想添加多线程支持。有什么方法可以添加多线程支持OpenMPTBBC++

0 投票
1 回答
2486 浏览

linux - Ceres make 失败:“Makefile:138: 目标‘全部’的配方失败”

我正在尝试按照ceres website 上的安装指南在 Ubuntu 16.04 上安装 Ceres ,但是当make命令失败时,显示以下错误:

我对 Linux 相当陌生,因此非常感谢任何帮助理解出了什么问题的人。

0 投票
1 回答
180 浏览

c++ - 将 Ceres 与带有 sse/avx 的库一起使用时出错

我有一个模板库,其中一些函数专门用于浮点和双精度类型。此专业化使用 sse/avx,因此,此库具有-march=native -mavx2编译器标志。当我尝试使用这个库的一些函数(不是专门的)时,我从 Ceres 收到以下运行时错误:

我已经能够使用更简单的代码重现错误:here。本质上,此示例在-mavx2 -march=native标志被删除时有效,并且在标志存在时不起作用(产生先前的错误)(来自 CmakeLists.txt 的注释和取消注释)。在此示例中,不存在使用 avx/sse 的函数,但请记住我的库中有它们,因此删除标志-mavx2 -march=native不是一种选择。关于如何解决这个问题的任何想法?当我编译 Ceres 时,我添加了文档-DCMAKE_CXX_FLAGS="-march=native"中指出的标志。

阅读错误消息中提供的网页并没有提供任何解决方案。

关于我的系统的一些有用信息:

  • 编译器:clang++
    • clang 版本 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • 目标:x86_64-pc-linux-gnu
    • 线程模型:posix
  • Ceres 版本:2.0(我实际上有 git repo,我在几分钟前更新了它:)
  • CPU:Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
0 投票
0 回答
64 浏览

opencv - 链接依赖于 OpenCV 和 Ceres-Solver 的静态库时,Opencv imread 会导致 liblapack 中的链接器错误

我正在尝试使用 CMake建立我自己的库的编译,该库依赖于 OpenCV 和 Ceres-Solver ( http://ceres-solver.org/ )。但是,这样做时,将我的库链接到某些可执行文件时会出现链接器错误,尤其是我认为 OpenCV 的 imread 函数是罪魁祸首,但问题也可能与 Ceres 有关。

我正在使用 Ceres 1.14.0 版和 OpenCV 3.2.0 版。

我已经发现如果我主要声明一个 ceres::Solver::Summary 问题就不会存在。我只是不明白为什么需要这样做?

我已经把我的问题归结为我能想到的最小的例子:

CMakeLists.txt

主文件

我希望它可以毫无问题地编译,但是如果我将 do_nothing_but_fix_linking 注释掉,我会收到以下错误:

制作

0 投票
0 回答
218 浏览

c++ - 如何从 scipy.minimize 迁移到 ceres-solver?

如何将以下代码重写为ceres-solver

我尝试按照本教程进行操作,但看起来有些混乱。

0 投票
1 回答
646 浏览

cmake - “正常”构建和 ExternalProject_Add 之间的行为差​​异

我正在尝试使用 CMake 的外部项目功能在 linux 上构建 ceres-solver。

我有一个我构建的特定版本的 Eigen,其他依赖项是通过我的数据包管理器(BLAS、LAPACK 和 Suitesparse)安装的。

如果我直接从源代码构建 Ceres-solver:

它会自动找到 suitesparse 及其所有依赖项(BLAS、LAPACK、AMD、COLAMD 等),并且可以毫无问题地构建。

这是 CMake 输出:

但是如果我将 Ceres-solver 构建为外部项目,它不会找到 BLAS(当我直接从源代码构建时会自动找到相同的 BLAS)。

ExternalProject_Add通过手动构建库与单独构建库时的行为是否存在差异?我的“主”项目(调用ExternalProject_Add者)中定义的选项和变量是否会泄漏到外部项目(如果是,我该如何防止这种情况发生?)。

我的电话ExternalProject_Add

以及 ceres-solver 的配置输出:

0 投票
1 回答
663 浏览

c++ - 如何使用 ceres::evaluation_callbacks 进行 ceres::cost 函数的内部迭代

我是根据论文计算视觉图像,然后优化我的焦距、旋转和平移参数。出于这个原因,我通过移动所有像素 bw 真实图像和虚拟图像来创建成本函数。在我的 ceres 成本函数中,我基本上从标准化的真实图像中减去了标准化的虚拟图像。虚拟图像在评估回调函数中计算,成本在成本函数函数中计算。问题源于成本函子。优化在第一次迭代时终止,因为梯度等于 0。我使用 ceres::Central 进行梯度计算,但每次迭代只调用一次虚拟图像创建函数。但是,我需要分别为 f(x+h) 和 f(xh) 调用该函子。当我通过 9 个邻居计算归一化实像和归一化虚像时,我会继续迭代,但每次迭代需要 25 秒,这对我的情况来说是不可接受的。我需要这个evaluation_callback 函数,但我无法让它工作。

我查看了evaluation_callbacks 定义。上面写着“注意:评估回调与内部迭代不兼容。”

//调用仿函数如下

我希望 ceres 求解器至少运行一次以上的迭代,梯度应该从一些值开始,并且必须通过迭代递减。

我用 9 个邻居对 pizels 进行了标准化。我发现当前的解决方案在成本函子中仅计算 9 个像素的虚拟图像并将它们用于一个像素归一化,但这太慢了。我有 640x480 像素和每个像素的 9 次计算。加上 NumericalCOstFunction 中的雅可比和梯度计算太多了。这就是为什么我想在evaluation_callback 函子中计算虚拟图像并在该函数内部对其进行归一化,并在成本函子中使用归一化图像。谢谢您的帮助。

0 投票
1 回答
492 浏览

c++ - 使用 Ceres Solver 求解非线性系统:编译问题

我正在尝试使用 Google 的 Ceres Solver 求解非线性系统。下面的例子来自这个页面:http ://terpconnect.umd.edu/~petersd/460/html/newtonex1z.html

我首先创建一个名为 的类MatlabExample,在其中计算residualsand jacobians

} };

主文件如下:

编译时,我收到以下错误:

这是我第一次使用 Ceres Solver,所以我确定我遗漏了一些东西……但我不知道是什么。有任何想法吗?

0 投票
1 回答
700 浏览

c++ - Ceres Solver C++:分段错误:11

我正在尝试使用 Google 的 Ceres Solver 求解非线性系统。下面的例子来自这个页面:http ://terpconnect.umd.edu/~petersd/460/html/newtonex1z.html

我首先创建一个名为 的类MatlabExample,在其中计算residualsand jacobians

主文件如下:

编译时,我得到一个Segmentation fault: 11错误。有任何想法吗?

0 投票
1 回答
1298 浏览

ceres-solver - Ceres-Solver 因“终止:残差和雅可比评估失败”而失败。当非静态变量用于定义雅可比 for 循环时

我有一个非线性系统,我正在使用 Ceres 来解决。这是一个具有稀疏块结构的稀疏系统。由于我也在处理图像数据,因此我的代码基于“去噪.cc”示例。

我遇到的问题是我的代码因“终止:残差和雅可比评估失败。”而失败。我可以通过在 Evaluate 中硬编码变量 'num_weights' 来解决这个问题。

当我在一个或多个像素上调用此函数时,问题仍然存在。对于每个像素,我的权重都不同。

任何关于为什么会这样的见解都会有所帮助。

谢谢!