问题标签 [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.
camera-calibration - 用于束调整的初始相机内在和外在矩阵和 3D 点坐标
我想使用多 RGB 相机重建 3d 场景。输入数据没有相机校准信息,所以我想使用捆绑调整算法(Ceres-solver)来估计校准信息。
现在我已经获得了成对匹配的特征点,但我发现束调整算法(Ceres-solver)中的算法也需要初始相机内在和外在矩阵以及 3d 点坐标作为输入。但是,我没有这些信息,也不知道如何生成初始猜测。
我应该怎么做才能生成初始相机内在和外在矩阵和 3d 点坐标?
非常感谢!
c++ - ceres_solver 中的模型拟合
我正在使用ceres-solver为我的 Monte-Carlo (MC) 模拟优化一组参数(总共 9 个)。基本上,MC 代码为每组results = { {1,2,3,...,19} }
参数返回一个类型的犰狳双矩阵。我有一组相应的数据。如何使用 ceres-solver 优化参数?
这是到目前为止的代码:
当使用 -lceres 和 -lglog 在 Xcode 中编译时(并且我安装了 eigen3 并且所有内容都安装了。包的示例运行良好,没有错误),我有non-matching member function for call to 'AddResidualBlock'
一个错误。如果我需要提供更多信息来帮助您帮助我,请告诉我。
谢谢。
编辑错误就problem.AddResidualBlock
行了。
c++ - 匹配 Eigen 和 Ceres-Solver 版本的最简单方法是什么?
我安装了 Eigen 和 Ceres-Solver 以及 brew 作为现有项目的先决条件。
当我为项目运行 make 时,我收到以下消息
找到 Eigen 依赖项,但找到的 Eigen 版本(3.3.1)与编译的 Eigen Ceres 版本(3.3.0)不完全匹配。这可能会通过触发违反单一定义规则而导致细微的错误。有关更多详细信息,请参阅 Wikipedia 文章 http://en.wikipedia.org/wiki/One_Definition_Rule
我的第一个想法是使用 brew 的 Eigen 从源代码编译 Ceres-solver,但这会在 make 期间产生其他错误消息。
具体来说,它最多可建立 54%,然后打印
...跳过一些行...
ceres安装页面推荐 Eigen 3.2.2 或更高版本,所以 3.3.1 应该没问题,除非 3.2 和 3.3 之间有一些结构变化。
我的问题:
我应该尝试的下一步是什么?安装旧版本的 Eigen?
c++ - 尝试在 Windows 上构建 OpenCV sfm:Ceres_DIR-NOTFOUND
按照本教程,我尝试使用 sfm 模块构建 OpenCV:
我的操作系统是没有管理员权限的 Windows 7。
首先我下载了 Eigen,然后我设法构建了 glog 库,然后是 gflag、suitespase 和 metis,最后是 ceres 求解器库。构建ceres求解器后,没有文件夹C:\Programs\ceres,指定为cmake_prefix_install路径。ceresconfig.cmake 文件也丢失了。
我的问题是:文件夹和 .cmake 文件都应该在那里吗?或者 ceres_dir OpenCV 是一个完全不同的文件夹?
installation - 无法使用 ceres 求解器,glog
我在 ubuntu 中安装 ceres 并使用http://ceres-solver.org/installation.html Linux 部分中的所有命令行sudo apt-get install libgoogle-glog-dev 一直进行安装似乎我已经安装ceres求解器和它的依赖没有问题。但是当我尝试运行测试文件 bin/simple_bundle_adjuster ../ceres-solver-1.12.0/data/problem-16-22106-pre.txt 它显示无法打开文件 ../ceres-solver-1.9.0 /data/problem-16-22106-pre.tx 然后我尝试在教程中编译 helloworld 使用命令 g++ -I/usr/include/eigen3 helloworld.cpp -o helloworld 它给了我一堆问题。
未定义的引用google::InitGoogleLogging(char const*)'
helloworld.cpp:(.text+0x104): undefined reference to
ceres::Problem::Problem()' helloworld.cpp:(.text+0x155): undefined reference to `ceres::Problem::AddResidualBlock(ceres::CostFunction*, ceres::LossFunction*, double*)' I没有一一列出。但似乎它根本找不到关于谷歌的东西。希望你能帮我!!它给了我一大堆问题。
c++ - 使用 Eigen 在 Ceres 中使用的多元正态 PDF
我正在尝试编写一个模板化方法,用于计算多元正态分布的给定输入的概率密度。它将输入、均值向量和协方差矩阵作为输入。
我想在 Ceres 成本函子中使用此方法,其中输入变量和均值/协方差是固定的。目前,该方法如下所示:
但是,这会在 Eigen 中引发编译错误,特别det
是在设置为L.determinant()
. 消息:
查看提到的 Eigen 源文件,我发现:
因此,据我了解,问题出在 Eigen 可以返回 1 或 0(它们是int
s),并且 int 不能转换为 a的事实ceres::Jet
。我在这里吗,如果是的话,处理这个问题的正确方法是什么?
linux - 无效的 mex 文件:未定义的符号:cholmod_camd
如何解决这个问题?我在尝试混合的 c++ 文件中没有看到与 cholmod_camd 相关的头文件。
ios - 为 iOS 安装 ceres
我正在尝试为 iOS 安装 ceres(用于设备和模拟器,但我想我理解将它们制作两次并将它们与 lipo 链接的概念)
由于工具链需要来自 iOS SDK,因此代码应如下所示:
我在哪里可以找到/path/to/eigen/header
?难道只是
-DEIGEN_INCLUDE_DIR=/usr/local/Cellar/eigen/3.3.4 \
我或多或少地理解它是:
-DIOS_PLATFORM= OS \
然后再做一次-DIOS_PLATFORM= SIMULATOR64 \
但这是什么<PATH_TO_CERES_SOURCE>
意思?这是我想要文件的地方吗?还是我应该遵循 macOS 安装并参考该路径?
提前致谢
c++ - 来自 Motion (openCV) 的结构:“reconstruct”未在此范围内声明
我是opencv库的初学者。我已经在 Ubuntu 17.04 上安装了它,安装过程中的一切都很完美,完全没有错误。我已经安装了 Opencv-master,构建了它,然后我下载了 opencv_contrib-master,一切都很完美。
我正在尝试使用 SFM(运动结构)构建 scene_reconstruction。我已经安装了所有依赖项:
然后我安装了 Ceres Solver:
一切正常,完全没有错误。我尝试按照此处的官方文档(Scene Reconstruction)编写 example_sfm_scene_reconstruction.cpp,并将其命名为Reconstruct.cpp。
我写了CMakeLists.txt文件:
我已经创建了构建目录并使用mkdir build && cd build
. 然后cmake ..
:
但是当我尝试这样做时,我遇到make
了这个错误:
我试图关注这个论坛问题 476,但任何事情都对我有帮助。