问题标签 [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.
linux - Ceres make 失败:“Makefile:138: 目标‘全部’的配方失败”
我正在尝试按照ceres website 上的安装指南在 Ubuntu 16.04 上安装 Ceres ,但是当make
命令失败时,显示以下错误:
我对 Linux 相当陌生,因此非常感谢任何帮助理解出了什么问题的人。
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
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 注释掉,我会收到以下错误:
制作
c++ - 如何从 scipy.minimize 迁移到 ceres-solver?
如何将以下代码重写为ceres-solver
?
我尝试按照本教程进行操作,但看起来有些混乱。
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 的配置输出:
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 函子中计算虚拟图像并在该函数内部对其进行归一化,并在成本函子中使用归一化图像。谢谢您的帮助。
c++ - 使用 Ceres Solver 求解非线性系统:编译问题
我正在尝试使用 Google 的 Ceres Solver 求解非线性系统。下面的例子来自这个页面:http ://terpconnect.umd.edu/~petersd/460/html/newtonex1z.html
我首先创建一个名为 的类MatlabExample
,在其中计算residuals
and jacobians
:
} };
主文件如下:
编译时,我收到以下错误:
这是我第一次使用 Ceres Solver,所以我确定我遗漏了一些东西……但我不知道是什么。有任何想法吗?
c++ - Ceres Solver C++:分段错误:11
我正在尝试使用 Google 的 Ceres Solver 求解非线性系统。下面的例子来自这个页面:http ://terpconnect.umd.edu/~petersd/460/html/newtonex1z.html
我首先创建一个名为 的类MatlabExample
,在其中计算residuals
and jacobians
:
主文件如下:
编译时,我得到一个Segmentation fault: 11
错误。有任何想法吗?
ceres-solver - Ceres-Solver 因“终止:残差和雅可比评估失败”而失败。当非静态变量用于定义雅可比 for 循环时
我有一个非线性系统,我正在使用 Ceres 来解决。这是一个具有稀疏块结构的稀疏系统。由于我也在处理图像数据,因此我的代码基于“去噪.cc”示例。
我遇到的问题是我的代码因“终止:残差和雅可比评估失败。”而失败。我可以通过在 Evaluate 中硬编码变量 'num_weights' 来解决这个问题。
当我在一个或多个像素上调用此函数时,问题仍然存在。对于每个像素,我的权重都不同。
任何关于为什么会这样的见解都会有所帮助。
谢谢!