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

c++ - Ceres Solver:无法禁用日志记录(google glog)

我正在为一个项目使用 ceres 求解器,当我调用该ceres::Solve函数时,库开始输出如下行:

我试图禁用这些中间步骤的日志记录,但到目前为止我没有成功。我在我的类的构造函数上调用这一行:

我调用求解器时设置的选项是:

在我看来,ceres 日志记录已被有效禁用,但其依赖库(即:SuiteSparse)的日志记录却没有。

有人知道如何禁用这个烦人的日志吗?

0 投票
1 回答
981 浏览

c++ - 修改平方和 [ceres-solver]

我正在尝试修改 ceres 的默认行为,即计算残差的平方和作为成本函数。我希望它只计算一个总和(残差已经以它们只能是正数的方式计算)

根据文档我应该使用ConditionedCostFunction

这就是我所做的:我定义了接受 1 个残差和 1 个参数的调节器

我将调节器放在向量中

它编译和一切。但这并不能解决问题。它甚至没有开始。它说 :

代替 :

(如果你想自己尝试,这个例子修改了helloword例子)你对哪里出错有什么方向吗??(ceres 报告没有更具体)

0 投票
1 回答
1680 浏览

math - 我可以使用 Google Ceres Solver 求解非线性方程组吗?

Google Ceres Solver 解决了稳健的非线性边界约束最小二乘问题。

我可以使用非线性最小二乘求解器来找到非线性方程组的解吗?

来自维基百科:“最小二乘法是超定系统近似解的标准方法,即方程组中方程多于未知数。”

现在,由于非线性方程的“正常”系统应该在超定系统的集合中(在退化的情况下,未知数的数量等于方程的数量),我可以推断我可以使用非线性为此目的的最小二乘求解器?

这个问题来自这样一个事实,即我必须使用似乎只提供非线性最小二乘方法的 Google Ceres Solver 库。

参考资料:
Ceres Solver 教程
非线性最小二乘求解器求解非线性方程组?

0 投票
1 回答
947 浏览

android - 使用 Android 和 Eclipse 编译 Ceres Solver

我正在尝试将 ceres 求解器与我的 android 应用程序一起使用,并且似乎没有很多关于正确使用它们的文档。我遵循了 ceres 求解器网站上的构建说明,以及这个有用的教程:

http://tech.sandyeggi.com/2013/10/using-ceres-solver-in-android-ndk.html

这让我走得很远,一切都正确链接,但是当我尝试编译项目时,我得到一个奇怪的错误:

果然那个文件不存在。但问题是为什么?它应该是自动生成的吗?还是创造了我自己?

我可能很重要,所以这是我的 Android.mk:

0 投票
1 回答
1408 浏览

computer-vision - 如何在 ceres 求解器中组合变换?

我有两个参数转换作为 Ceres 成本函数的输入。它们都是要组合的变换,以便重新投影我的观点。两种变换都以 Rodrigues 旋转向量和平移向量的形式给出。

我的问题是,如何在成本函数中结合这两个转换(使用 Ceres API),以便重新投影点?

0 投票
1 回答
1999 浏览

c++ - Ceres Solver 的捆绑调整

我是 ceres(非线性最小二乘)求解器和 C++ 模板编程的新手。通过下载发布在http://grail.cs.washington.edu/projects/bal/上的数据集,我已经成功安装了 ceres 求解器并在 ubuntu 上执行了 bundle_adjuster.cc 代码。我必须在项目中使用捆绑调整作为黑盒。我想打印经过优化的相机姿势,数据集的三维坐标。如何做到这一点,我应该在 bundle_adjuster.cc 中编辑什么以获得新的姿势矩阵和 3D 坐标。

谢谢。

0 投票
1 回答
3231 浏览

android - 链接到 Android 上的 ceres 库

我正在尝试将 ceres 求解器编译并部署到 Android 项目中。

我成功编译了 ceres(1.8.0 和 1.9.0,都尝试了),从 ceres jni 文件夹运行 ndk-build。

然后,我使用 QtCreator 来编译和部署 Android 项目。它失败并出现以下错误:

我想知道这是否可能是由于 ceres 与 c++ 库静态链接,而我的程序则动态链接......但不知道如何解决这个问题。

0 投票
1 回答
1141 浏览

c++ - 将 T* 数组(Jet* 或 float*)转换为 cv::Mat

我正在使用带有 AutoDiffCostFunction 的 ceres-solver。我的成本函数将 1x3 向量作为参数并输出 1x1 残差。如何从我的 T* 参数向量中创建 opencv Mat?它可以是 Jet 或浮动。我尝试了以下代码,但出现错误“无法从 Jet 转换为浮动”

有一种方法可以从 T* 矩阵中获取 Eigen 矩阵:

但我想打电话cv::decomposeHomographyMat。我怎样才能做到这一点?

0 投票
1 回答
4648 浏览

c++ - 编译错误ceres库示例程序“helloworld”

我尝试在示例中使用gcc helloworld.cc. 我检查了所有的库都在/usr/local/lib. 我已经按照以下说明glog安装了。我已经尝试给出库的明确路径。gflag egien

我想我有链接器错误,但无法弄清楚如何解决它。

0 投票
1 回答
2644 浏览

c++ - 如何从 ceres 求解器结果中检索异常值?

我尝试使用类似于Features2D + Homography 的方法比较图像以找到已知对象,但用findHomography()自写findAffine()函数替换。

我使用Ceres Solver来获得考虑异常值的最佳仿射矩阵。

Ceres 求解器提供LossFunction

损失函数减少了具有高残差的残差块的影响,通常是对应于异常值的块。

当然,我可以通过获得的矩阵从第一张图像转换关键点坐标,与第二张图像进行比较并得到偏差。但是 ceres 求解器在工作期间已经在内部完成了。

我怎样才能找回它?在文档中没有找到。