问题标签 [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.
c++ - Ceres Solver:无法禁用日志记录(google glog)
我正在为一个项目使用 ceres 求解器,当我调用该ceres::Solve
函数时,库开始输出如下行:
我试图禁用这些中间步骤的日志记录,但到目前为止我没有成功。我在我的类的构造函数上调用这一行:
我调用求解器时设置的选项是:
在我看来,ceres 日志记录已被有效禁用,但其依赖库(即:SuiteSparse)的日志记录却没有。
有人知道如何禁用这个烦人的日志吗?
c++ - 修改平方和 [ceres-solver]
我正在尝试修改 ceres 的默认行为,即计算残差的平方和作为成本函数。我希望它只计算一个总和(残差已经以它们只能是正数的方式计算)
根据文档我应该使用ConditionedCostFunction
这就是我所做的:我定义了接受 1 个残差和 1 个参数的调节器
我将调节器放在向量中
它编译和一切。但这并不能解决问题。它甚至没有开始。它说 :
代替 :
(如果你想自己尝试,这个例子修改了helloword例子)你对哪里出错有什么方向吗??(ceres 报告没有更具体)
math - 我可以使用 Google Ceres Solver 求解非线性方程组吗?
Google Ceres Solver 解决了稳健的非线性边界约束最小二乘问题。
我可以使用非线性最小二乘求解器来找到非线性方程组的解吗?
来自维基百科:“最小二乘法是超定系统近似解的标准方法,即方程组中方程多于未知数。”
现在,由于非线性方程的“正常”系统应该在超定系统的集合中(在退化的情况下,未知数的数量等于方程的数量),我可以推断我可以使用非线性为此目的的最小二乘求解器?
这个问题来自这样一个事实,即我必须使用似乎只提供非线性最小二乘方法的 Google Ceres Solver 库。
android - 使用 Android 和 Eclipse 编译 Ceres Solver
我正在尝试将 ceres 求解器与我的 android 应用程序一起使用,并且似乎没有很多关于正确使用它们的文档。我遵循了 ceres 求解器网站上的构建说明,以及这个有用的教程:
http://tech.sandyeggi.com/2013/10/using-ceres-solver-in-android-ndk.html
这让我走得很远,一切都正确链接,但是当我尝试编译项目时,我得到一个奇怪的错误:
果然那个文件不存在。但问题是为什么?它应该是自动生成的吗?还是创造了我自己?
我可能很重要,所以这是我的 Android.mk:
computer-vision - 如何在 ceres 求解器中组合变换?
我有两个参数转换作为 Ceres 成本函数的输入。它们都是要组合的变换,以便重新投影我的观点。两种变换都以 Rodrigues 旋转向量和平移向量的形式给出。
我的问题是,如何在成本函数中结合这两个转换(使用 Ceres API),以便重新投影点?
c++ - Ceres Solver 的捆绑调整
我是 ceres(非线性最小二乘)求解器和 C++ 模板编程的新手。通过下载发布在http://grail.cs.washington.edu/projects/bal/上的数据集,我已经成功安装了 ceres 求解器并在 ubuntu 上执行了 bundle_adjuster.cc 代码。我必须在项目中使用捆绑调整作为黑盒。我想打印经过优化的相机姿势,数据集的三维坐标。如何做到这一点,我应该在 bundle_adjuster.cc 中编辑什么以获得新的姿势矩阵和 3D 坐标。
谢谢。
android - 链接到 Android 上的 ceres 库
我正在尝试将 ceres 求解器编译并部署到 Android 项目中。
我成功编译了 ceres(1.8.0 和 1.9.0,都尝试了),从 ceres jni 文件夹运行 ndk-build。
然后,我使用 QtCreator 来编译和部署 Android 项目。它失败并出现以下错误:
我想知道这是否可能是由于 ceres 与 c++ 库静态链接,而我的程序则动态链接......但不知道如何解决这个问题。
c++ - 将 T* 数组(Jet* 或 float*)转换为 cv::Mat
我正在使用带有 AutoDiffCostFunction 的 ceres-solver。我的成本函数将 1x3 向量作为参数并输出 1x1 残差。如何从我的 T* 参数向量中创建 opencv Mat?它可以是 Jet 或浮动。我尝试了以下代码,但出现错误“无法从 Jet 转换为浮动”
有一种方法可以从 T* 矩阵中获取 Eigen 矩阵:
但我想打电话cv::decomposeHomographyMat
。我怎样才能做到这一点?
c++ - 如何从 ceres 求解器结果中检索异常值?
我尝试使用类似于Features2D + Homography 的方法比较图像以找到已知对象,但用findHomography()
自写findAffine()
函数替换。
我使用Ceres Solver来获得考虑异常值的最佳仿射矩阵。
Ceres 求解器提供LossFunction:
损失函数减少了具有高残差的残差块的影响,通常是对应于异常值的块。
当然,我可以通过获得的矩阵从第一张图像转换关键点坐标,与第二张图像进行比较并得到偏差。但是 ceres 求解器在工作期间已经在内部完成了。
我怎样才能找回它?在文档中没有找到。