Ceres与colmap安装

  • 已在ubuntu18.04上成功安装ceres1.14.0和colmap
    • ceres1.14.0基本没错。找tag里的1.14.0压缩包,因为复制的git链接都指定了下载最新版本
    • colmap 安装cmakelist 添加set(CMAKE_CUDA_ARCHITECTURES "70"),若报anaconda的错,解决是把anaconda3文件名重命名,编译安装完再改回来
    • 报错PyramidCU::GenerateFeatureList: no kernel image is available for execution on the device 可能是GPU和CUDA版本不匹配,也就是硬件的问题,其中,PyTorch 1.3版本,提高了对CUDA设备的Compute Capability等级的最低要求**(计算力3.5及3.5以下的都不支持了)**,导致在较为老旧的GPU型号上,部分计算操作无法执行。20.04cuda11.1没有这个问题
  • 已在ubuntu20.04上成功安装ceres1.14.0和colmap
    • ceres1.14.0没报错
    • colmap 安装cmakelist 添加set(CMAKE_CUDA_ARCHITECTURES "86"),报了FPIC的错,改成75后成功
    • 若报anaconda的错,解决是把anaconda3文件名重命名,编译安装完再改回来
  • ubuntu16.04上没能成功
  • CMake Error at CMakeLists.txt:196 (find_package): Could not find a configuration file for package "Eigen3" that is compatible with requested version "3.3". The following configuration files were considered but not accepted: /usr/lib/cmake/eigen3/Eigen3Config.cmake, version: unknown
    • 升级eigen3版本ubuntu系统简单的eigen版本切换_npcdna的博客-CSDN博客
    • 将eigen3.3.7的Eigen的软连接也创建到/usr/include 目录下和 /usr/include/eigen3.3.7目录下
      • sudo ln -s /usr/include/eigen3/include/eigen3/Eigen /usr/include/Eigen
      • sudo ln -s /usr/include/eigen3/include/eigen3/Eigen /usr/include/eigen3
    • 升级eigen3版本报错
      • CMake Error at CMakeLists.txt:8 (message): In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt.
        • 删除CMakeCache.txt,重新cd build
      • CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.
        • CMake似乎认为构建目录就是源目录。您需要在build目录中运行CMake,并将源目录作为命令行参数。
        • 例如,如果源目录是eigen3.3.7,而构建目录是build
        • cd ~/eigen3.3.7/build
        • cmake ~/eigen3.3.7
  • 1.4.0 eigen报错
    • - No preference for use of exported Eigen CMake configuration set, and no hints for include directory provided. Defaulting to preferring an installed/exported Eigen CMake configuration if available.
      • -- Found installed version of Eigen: /home/wwf/eigen-3.3.7/build
      • CMake Error at cmake/FindEigen.cmake:89 (message):
      • Failed to find Eigen - Could not find file:
      • /home/include/eigen3/Eigen/src/Core/util/Macros.h containing version
      • information in Eigen install located at: /home/include/eigen3.
      • Call Stack (most recent call first):
      • cmake/FindEigen.cmake:219 (eigen_report_not_found)
      • CMakeLists.txt:213 (find_package)
    • cmakelist 78行添加set(Eigen3_DIR "/usr/include/eigen3") #make显示蓝色字体即没什么问题
      • -- Found installed version of Eigen: /usr/lib/cmake/eigen3
      • -- Found required Ceres dependency: Eigen version 3.3.7 in /usr/include/eigen3
  • Cmake报错
    • In file included from /usr/include/c++/5/chrono:35:0, from /home/wwf/glog/build/glog/logging.h:40, from /home/wwf/glog/src/utilities.h:59, from /home/wwf/glog/src/utilities_unittest.cc:31:/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 sta ndard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. #error This file requires compiler and library support
      • 解决
        • 将编译器默认版本改为7即可,在终端输入下面代码:
        • sudo add-apt-repository ppa:ubuntu-toolchain-r/test #可以配不上,能下载gcc ,g++就行
        • sudo apt-get update
        • sudo apt-get install gcc-7
        • sudo apt-get install g++-7
        • 配置:将gcc7,g++7作为默认选项:
        • sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
        • sudo update-alternatives --config gcc
        • sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
        • sudo update-alternatives --config g++
    • 算力问题
      • nvcc fatal : Unsupported gpu architecture 'compute_80'
      • internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/build.make:75: recipe for target 'internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/cuda_kernels.cu.cc.o' failed
      • make[2]: *** [internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/cuda_kernels.cu.cc.o] Error 1
      • CMakeFiles/Makefile2:3240: recipe for target 'internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/all' failed
      • make[1]: *** [internal/ceres/CMakeFiles/ceres_cuda_kernels.dir/all] Error 2
      • Makefile:145: recipe for target 'all' failed
      • 解决:cmakelist.txt文件的 set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80")删去80
      • set(CMAKE_CUDA_ARCHITECTURES "50;60;70")
    • colmap安装
    • CMake Error at CMakeLists.txt:255 (message):You must set CMAKE_CUDA_ARCHITECTURES to e.g. 'native', 'all-major', '70',
      • cmakelist.txt文件中,添加 set(CMAKE_CUDA_ARCHITECTURES "70")#或者是 'native'
    • can not found LZ4
      • GitHub - lz4/lz4: Extremely Fast Compression algorithm
      • cd lz4
      • make
      • sudo make install
      • 不建build文件夹、不需要cmake
    • 找不到eigen3
      • cmakelist.txt添加include_directories("/usr/include/eigen3")#
      • 注释掉find_package(Eigen3 REQUIRED)

你可能感兴趣的:(ubuntu,linux)