当前位置: 首页 > wzjs >正文

温州做网站制作个人网站设计内容

温州做网站制作,个人网站设计内容,太原网页设计与制作,广东专业商城网站建设在Ubuntu24.04中配置开源直线特征提取软件DeepLSD 本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。 基础的编译安装环境 python3.8.12CUDA12gcc/g 9.5(系统自带的g-13版本太新…

在Ubuntu24.04中配置开源直线特征提取软件DeepLSD

本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。

基础的编译安装环境

  • python3.8.12
  • CUDA12
  • gcc/g++ 9.5(系统自带的g++-13版本太新,会产生额外编译错误)

切换系统默认的gcc/g++版本

Ubuntu24中可以使用update-alternatives命令指定系统当前的gcc/g++版本,命令如下:

sudo apt-get install gcc-9 g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

上述命令首先安装gcc-9 g+±9,然后利用--install参数将系统中的两个版本的gcc/g++各自标记为"9"/“13”,最后利用--config选择gcc/g++ 9为默认版本。

安装glog、gflags

DeepLSD全功能中用到了glog和gflags两个库,使用如下命令安装:

sudo apt-get install libgoogle-glog-dev libgflags-dev

编译ceres

ceres solver除了依赖glog和gflags之外,还依赖ATLAS(BLAS和LAPACK)、Eigen和SuiteSparse
因此为编译ceres,还需要运行以下命令安装这些依赖:

sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev

后续安装命令:

wget -O ceres-solver-2.2.0.tar.gz http://ceres-solver.org/ceres-solver-2.2.0.tar.gz
tar zxf ceres-solver-2.2.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.2.0
make -j3
make test
sudo make install

编译OpenCV-Contrib

依赖OpenCV的线提取模块,因此需要编译OpenCV和Contrib。

否则将报错:

DeepLSD/third_party/pytlbd/src/LineBandDescriptor.cpp:9:10: fatal error: opencv2/line_descriptor.hpp: No such file or directory
9 | #include <opencv2/line_descriptor.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/tlbd.dir/build.make:79: CMakeFiles/tlbd.dir/src/LineBandDescriptor.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:185: CMakeFiles/tlbd.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2

以opencv4.11.0版本为例,编译命令为:

wget -O https://github.com/opencv/opencv/archive/refs/tags/4.11.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.11.0.zip
unzip opencv_contrib.zip
mkdir opencv_build
cd opencv_build/
conda activate DeepLSD
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.11.0/modules ../opencv-4.11.0
make
sudo make install

源码修改

解决报错:error: ‘unordered_map’ in namespace ‘std’ does not name a template type

修改以下两个文件:

  • flann_neighborhood_graph.h
  • neighborhood_graph.h

在这两个文件的开头包含<unordered_map>

解决报错:error: ‘clamp’ is not a member of ‘std’

在VSCode中搜索包含std::clamp的文件。在所有调用std::clamp的文件开头加上包含语句#include <algorithm>。需要修改的文件包括(可能也不限于):

DeepLSD/third_party/progressive-x/examples/cpp_example.cpp
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/GCRANSAC.h
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/estimators/essential_estimator.h
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/estimators/estimator.h
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/estimators/fundamental_estimator.h
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/estimators/perspective_n_point_estimator.h
DeepLSD/third_party/progressive-x/graph-cut-ransac/src/pygcransac/include/estimators/solver_p3p.h

除此之外,还要修改.cmake文件的配置使用c++17标准编译,详见下节。

更改cmake配置

将以下两个文件:
DeepLSD/third_party/progressive-x/lib/pybind11/tools/pybind11Tools.cmake
DeepLSD/third_party/progressive-x/graph-cut-ransac/lib/pybind11/tools/pybind11Tools.cmake

关于设置PYBIND11的c++语言标准部分改为:

function(select_cxx_standard)if(NOT MSVC AND NOT PYBIND11_CPP_STANDARD)check_cxx_compiler_flag("-std=c++17" HAS_CPP17_FLAG)check_cxx_compiler_flag("-std=c++11" HAS_CPP11_FLAG)if (HAS_CPP17_FLAG)set(PYBIND11_CPP_STANDARD -std=c++17)elseif (HAS_CPP11_FLAG)set(PYBIND11_CPP_STANDARD -std=c++11)else()message(FATAL_ERROR "Unsupported compiler -- pybind11 requires C++11 support!")endif()set(PYBIND11_CPP_STANDARD ${PYBIND11_CPP_STANDARD} CACHE STRING"C++ standard flag, e.g. -std=c++11 or -std=c++14. Defaults to latest available." FORCE)endif()

删除CMakeCache.txt,重新运行bash install.sh,即可。

CMake最低版本更改

在VSCode中打开DeepLSD文件夹,搜索如下的表达式(正则):

将cmake_minimum_required(VERSION 2.*)或cmake_minimum_required(VERSION 2.8.12)
改为
cmake_minimum_required(VERSION 3.11)

将3.x版本都改为3.11:
搜索:cmake_minimum_required(VERSION 3.[0-5])
替换为:cmake_minimum_required(VERSION 3.11)

报错解决集锦

忽略 /opt/anaconda3 目录及其子目录

Anaconda3中存在一些库如glog/gflags甚至gdal等,可能在cmake配置过程中被当作最高优先级的链接目标,而这是不对的。因此,如果出现链接错误“GLIBCXX_3.4.30”类似的错误:

libopencv_core : undefined reference to std::condition_variable::wait(std::unique_lockstd::mutex&)@GLIBCXX_3.4.30’
std::condition_variable::wait(std::unique_lockstd::mutex&)@GLIBCXX_3.4.30’

则考虑在报错的项目的CMakeLists.txt中添加下面的语句以忽略Anaconda的库目录:

list(APPEND CMAKE_IGNORE_PATH "/opt/anaconda3")

fatal error: arlsmat.h: 没有那个文件或目录 #include <arlsmat.h>

sudo apt install libarpack*

OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.

一般由于没有安装CUDA导致。运行以下命令安装CUDA:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda

python38/bin/…/lib/libstdc++.so.6: version `GLIBCXX_3.4.30’ not found

编译完成后在运行时可能会产生此错误。DeepLSD编译链接时所使用的是系统的libstdc++.so.6,而python运行时加载了Anaconda自带的libstdc++.so.6,其版本比系统的libstdc++.so.6旧,所以找不到符号。

首先,运行下面命令确定系统的libstdc++.so.6具有GLIBCXX_3.4.30版本:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

如果命令行的输出有此版本,则删除python38/bin/…/lib/libstdc++.so.6,并创建符号链接:

rm  ~/miniconda3/envs/python38/lib/libstdc++.so.6
ln -sf  /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/miniconda3/envs/python38/lib/libstdc++.so.6
http://www.dtcms.com/wzjs/287938.html

相关文章:

  • 网站制作一般收费互联网销售平台有哪些
  • 网站建设哪家技术好南昌seo技术外包
  • 鹤岗做网站河北网站建设推广
  • 深圳网站建设公司设计百度新闻下载安装
  • 广州最新今天的消息优化网站推广
  • 贵州 跨境电商网站建设爱站网影院
  • 有什么可以做cad赚钱的网站建站推广
  • 长沙网站运营关键词seo排名优化
  • 英语网站排名竞价推广托管
  • 做旅游网站的目的seo优化网站优化
  • 烟台商机互联做网站吗必应收录提交入口
  • 靠谱个性化网站开发百度优化推广
  • 免费做章子的网站seo搜索引擎优化推广专员
  • 在线定制手机壳福建seo关键词优化外包
  • 湛江网站seoseo网站推广报价
  • 艺术网站定制重庆seo排名技术
  • 深圳网站建设方维游戏推广
  • 深圳市网站建设公司天津最新消息今天
  • 长沙岳麓区网站开发商城推广软文范文
  • wordpress子站共享用户名独立站seo外链平台
  • 松原手机网站开发培训机构是干什么的
  • 自己的网站统计输入词企业培训课程名称大全
  • 南京鼓楼做网站公司广州白云区疫情实时动态
  • 湖北省工程建设协会网站百度指数的搜索指数
  • 新闻录入网站模板网络推广宣传
  • 免费网站建设塔山双喜天津seo实战培训
  • 做模板网站的公司博客网站登录
  • 做网站建设一年能赚多少钱百度关键词优化排名技巧
  • 手机网站 焦点图微商怎么找客源人脉
  • 做网页专题 应该关注哪些网站网络营销怎么做推广