问题标签 [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 求解器中使用三次插值
这是我第一次使用 ceres 来优化我的项目,我不太清楚。wenn 我按照示例编写我的项目,它是不可编译的。这是我的代码和我的错误(黑色)以及我在 Gitlab 中找到的代码(白色)。
u,v 是像素协调的,。m_Mask 的数据类型是向量(Cv::Mat)。我想通过 u,v 像素获取掩码值(1 或 0)和灰度值(int)。我可以这样写我的代码吗,Here .ptr(0) 是什么意思?寻找你的重播。谢谢!:)
在此处 输入图像描述 在此处输入图像描述 在此处 输入图像描述
最良好的问候
opencv - 使用 sfm 模块问题构建 opencv
我正在尝试使用我已经构建并安装 gflags 然后 glog 和 ceres-solver 的 sfm 模块构建 opencv。然而,制作日志说:模块 opencv_sfm 已禁用,因为未找到以下依赖项: Glog/Gflags。尽管在前面的行中它说它找到了这两个目录。
我还构建并安装了 VTK,但由于某种原因,即使我手动选择构建目录也找不到它。
以下是我的 CMake 日志的相关部分:
未找到 VTK。请将 CMake 中的 -DVTK_DIR 设置为 VTK 构建目录,或使用 VTKConfig.cmake 文件设置 VTK 安装子目录
OpenCV Python:在开发期间附加到 PYTHONPATH:C:/DEV/opencv-4.2.0/builds/python_loader
咖啡:没有
原型:否
格洛格:是的
freetype2: 没有
哈夫布兹:没有
模块 opencv_ovis 已禁用,因为未找到 OGRE3D
没有偏好使用导出的 gflags CMake 配置集,也没有提供包含/库目录的提示。默认首选已安装/导出的 gflags CMake 配置(如果可用)。
找到已安装的 gflags 版本:C:/Program Files (x86)/gflags/lib/cmake/gflags
检测到的 gflags 版本:2.2.2
检查 SFM 部门... FALSE
模块 opencv_sfm 已禁用,因为未找到以下依赖项:Glog/Gflags
c++ - 禁止在控制台上登录 ceres
当ceresProblem
不合适时,基于 的协方差计算可能会失败algorithm_type
。例如,控制台上可能会显示以下错误。
如何抑制此控制台输出/日志记录?如何修改ceres中的日志记录级别?
相关问题:Ceres Solver:无法禁用日志记录(google glog),但未解决上述问题。
c++ - 为什么 ceres covariance.Compute() 似乎永远运行而不返回?
我正在尝试使用 Ceres 编写一个 BA 优化器,并希望为我的优化结果计算协方差。但是程序卡住了covariance.Compute(covariance_blocks, &problem)
,它似乎永远不会停止计算并永远运行。我在函数内部进行了深入调试covariance.Compute()
,发现它卡在了Eigen::SparseQR
求解器上。优化步骤工作正常。这是我从谷神星得到的完整报告。
设置协方差的代码是
cameraIntrinsic
和delta_theta_ci
是我要计算协方差的两个数组。谁能帮我?
c++ - google CERES:ceres 是否释放分配的成本函数?
在 ceres 求解器http://ceres-solver.org/nnls_tutorial.html的非线性最小二乘教程中, 给出了以下示例:
堆分配的成本函数和仿函数永远不会被删除。这只是示例的简化,还是 Ceres 拥有这些对象的所有权并删除它们?
ceres-solver - 用于逻辑增长曲线拟合的 Ceres 求解器
我试图测试 ceres 求解器 autodiff 在将简单的逻辑增长曲线与实际观察到的数据拟合方面的效果如何,令我惊讶的是,求解器似乎无法提供解决方案。使用其他 c++ 求解器,可以轻松获得结果,k=9643.61,c=84.61 和 b=3.8121。我不确定代码是否有问题,或者只是 ceres 求解器 autodiff 构建得不是很好?有什么建议吗?
下面是示例
c++ - Ceres-solver 给出错误的三边形结果
我正在尝试使用谷歌的 ceres 求解器(http://ceres-solver.org/)来计算非线性最小二乘三边测量(目标是使用 BLE 信标进行室内定位)。我的问题是 CERES 给出的结果存在重大错误,并且比较了另一个也使用 Levenberg-Marquardt 算法的解决方案,很明显我的 ceres 设置有问题。
我的出发点是:https ://nrr.mit.edu/sites/default/files/documents/Lab_11_Localization.html文档的B部分。起初我使用的库是这个 JAVA 项目:https ://github.com/lemmingapex/Trilateration ,它使用上述 LM 算法来解决三边测量问题。导数和雅可比矩阵是预先计算/编码的(我(还)不理解这些,为了快速前进,不幸的是不得不跳过更深入的理解)。使用 CERES(我第一次使用它) AutoDiffCostFunction 似乎是我定义问题的一种非常简单的方法,如下所示:
比较来自 2 解决方案的一些示例:
输入(来自 JAVA 代码,C++ 具有相同的值,但更短;数字以毫米为单位):
java三边测量库的解决方案:-23085.6 24505.1(接近预期位置)
谷神星解决方案:-13891.2, 22133.1(远离)
(还将这两个测试与其他测试进行比较,在许多测试中都给出了相同(良好)的结果。但这些现实生活中的数据似乎“混淆”了谷神星并给出了错误的结果。)
我可以想到 3 个可能的问题所在:
你能帮我解决我缺少的东西吗?(由于技术要求,我们继续使用 C++,这就是为什么我们需要在 JAVA 中替换这个已经工作的非线性三边形版本)
顺便说一句,每次调用这个三边测量计算时,这个解决方案不是计算导数吗?那么,与我不使用 autocostfunctor 相比,这会带来很大的延迟,对吧?
感谢您的任何见解!(我尝试加入 ceres google 群组但尚未获得批准,因此在这里询问,因为还有一些与 ceres-solver 相关的问题)
c++ - Ceres-solver 与 helloworld.cc 的 Cmake 编译问题
我一直在努力实现 ceres-solver。为了检查我是否做对了,我一直在测试 Ceres 网站上提供的 helloworld.cc 文件。但是,当我运行程序时,我得到一个冗长的错误(显示在底部)
我查看了类似的堆栈溢出问题(在 centOS7 上安装 ceres-solver 并让 helloworld.cc 工作),我知道这个错误与 CMake 列表和编译时找到的链接有关。但是,我仍然对如何告诉编译器在哪里找到解算器的头文件和编译库感到有些困惑。如果你能提供任何资源
- 我应该弄乱哪个cmake文件(ceres包中有很多)
- 我如何告诉编译器在哪里可以找到所需的库,将不胜感激。
我运行这个命令:
关于我的环境的详细信息:
- Ubuntu 18
- 特征 3.34
- gcc7.5
- 谷神星 1.14
这是我的错误:
xcode - 将 ceres-solver 构建为 Mac Catalyst 的静态库
我正在尝试在最新的 Apple Silicon M1 芯片上为我们的 iOS 应用程序添加测试。我们的应用程序对第三方库的依赖之一是 Ceres-Solver。几天来,我一直在尝试为最新平台编译 ceres,但我所有的尝试都失败了。
所以我们使用 CMake 生成构建文件,然后我尝试使用 Xcode 和xcodebuild
. 构建成功,但每当我尝试将libceres.a
库链接到我们的应用程序时,我都会得到:
Building for Mac Catalyst, but the linked library 'libceresMacOS.a' was built for macOS. You may need to restrict the platforms for which this library should be linked in the target editor, or replace it with an XCFramework that supports both platforms.
我觉得这很奇怪,因为我确实在 Xcode 中构建,并且在编译 ceres 和我们的应用程序时,我的目标是相同的平台(“My Mac”)。我的一个怀疑是我在 CMake 命令中设置了一些错误的标志,这就是我运行它的原因
我尝试为新的苹果目标添加标志:
-DCMAKE_C_FLAGS="-target x86_64-apple-ios13.0-macabi"
但这没有任何效果,因为当我检查输出时,我看到 clang 调用了-target arm64-apple-macos11.1
. 而且我在构建设置过程中也遇到了错误:
我也试过xcodebuild -project "Ceres.xcodeproj" -configuration "Release" -scheme "ceres" -destination "platform=macOS,variant=Mac Catalyst"
,但这给了我一个错误
所以我在这里没有想法,如果有人可以帮助我,我将非常感激。顺便提一下,我在 macOS Big Sur 11.1 上使用 Xcode 12.4 版
非常感谢
c++ - 使用 ceres 求解器构建旋转优化问题
我正在尝试校准相机和激光雷达,为此我想在 Ceres 中进行一些简单的优化。
我有以下代码:
我收到以下错误:
找不到我做错了什么。