eigen線形反復をサポートするceresをインストールします.solver

3712 ワード

Ceresは以下の形式の境界拘束非線形最小二乗問題を解くことができる.
この形式の問題は科学工学の複数の分野に由来し,統計学の曲線フィッティングから計算機視覚における画像から三次元モデルを構築する.
最近sfmの方面の再建の問題をして、得たカメラの姿勢と3次元の点に対してBAの最適化をする必要があって、ceres-solverとg 2 oはすべてbaをすることができます
Ceres-solverには依存性があり、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 14:09:29.387037  9074 solver.cc:487] 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-1319687
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
 
転載先:https://www.cnblogs.com/feifanrensheng/p/9145069.html