Ceres可以求解以下形式的有界约束非线性最小二乘问题:

这种形式的问题来源于科学工程的多个领域,从统计学的曲线拟合到计算机视觉中从图像中构建三维模型。

最近在做sfm方面的重建问题,需要对得到的相机位姿和3维点做BA优化,ceres-solver和g2o都能做ba

ceres-solver是有依赖项eigen的,而且Ceres can also use Eigen as a sparse linear algebra library.

但是EIGENSPARSE 在camke的时候是默认关闭的,所以当我在程序中调用

ceres_config_options.sparse_linear_algebra_library_type = ceres::EIGEN_SPARSE;

编译无错,能编译成功,但是调用的时候,会报错

E0606 ::29.387037   solver.cc:] Terminating: Can't use SPARSE_SCHUR with EIGEN_SPARSE because Eigen's sparse linear algebra was not enabled when Ceres was built.
Bundle Adjustment failed.

所以解决方案只能把ceres-solver重新装一遍


1.卸载

进入ceres-solver的编译文件夹,执行卸载命令

cd ceres-solver/build
sudo make uninstall

执行命令之后就可以完全卸载成功了。

2.安装ceres-solver

安装之前请确保你已经安装了ceres-solver的依赖项,因为我装过,所以不用再装依赖项了,你可以安装以下命令安装,

可以参考官方文档:http://www.ceres-solver.org/installation.html

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
# - If you want to build Ceres as a *static* library (the default)
# you can use the SuiteSparse package in the main Ubuntu package
# repository:
sudo apt-get install libsuitesparse-dev
# - However, if you want to build Ceres as a *shared* library, you must
# add the following PPA:
sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-
sudo apt-get update
sudo apt-get install libsuitesparse-dev

3.编译安装

以上步骤都完成后就可以编译安装ceres-solver了,cmake的时候要把 EIGENSPARSE 设置为 ON,进入到编译目录,执行命令

cd ceres-solver/build
cmake -D EIGENSPARSE=ON ..
make
sudo make install

这样就可以编译成功了

参考:http://www.ceres-solver.org/installation.html

最新文章

  1. html_随笔
  2. 【转】Weblogic的集群
  3. 问题-栈S最多能容纳4个元素,现有6个元素按A、B、C、D、E、F顺序进栈,问可能的出栈顺序。
  4. Getting the Device GUID
  5. delphi 高版本可执行程序减小的办法
  6. 一个比较完整的Inno Setup 安装脚本
  7. QAQ数论模板笔记√
  8. WCF入门(七)---自托管消费WCF服务
  9. java中的"goto"--label
  10. FACTORY设计模式【让吃货也能理解的程序】
  11. Linux---江湖
  12. swift 启动图片的设置
  13. SPM HW1 A project
  14. MyEclipse2016统一字符编码
  15. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
  16. mysql修改root密码及修改密码过程中报错的解决方案
  17. MySql cmd下的学习笔记 —— 有关视图的操作(建立表)
  18. Mac OS 10.12 - 如何关闭Rootless机制?
  19. JavaWeb基础—过滤器Filter
  20. SCC缩点

热门文章

  1. C mysql (C API Commands out of sync; you can't run this command now)
  2. HttpClient(一)-- HelloWorld
  3. Unity Shader 修改自定义变量的值
  4. 流程控制与数组——Java疯狂讲义
  5. LinQ的初步学习与总结
  6. sqlite3错误码整理
  7. creat-react-app 如何在组件中img的src引入图片路径??
  8. liunx trac 邮件提示功能
  9. UITableView 如何设置背景颜色
  10. ubuntu 重启网络方法--通过杀死进程重启网络