记录:ubuntu20.04 opencv2.4.11 conda环境 dynaslam运行

完整过程

1、安装anocoda

2、换成清华源

3、安装boost库: 

sudo apt-get install libboost-all-dev

4、oprncv2.4.11与opencv4.2双版本切换使用

我的opencv4在这里:

(dynaslam2) tan@LEGION:~/DynaSLAM2$ pkg-config opencv4 --modversion
4.2.0

查找opencv库文件的位置:

(dynaslam2) tan@LEGION:~/DynaSLAM2$ find /usr/ -name "*opencv*.so*"

/usr/lib/jni/libopencv_java420.so
/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so
/usr/lib/x86_64-linux-gnu/libopencv_dnn.so
/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so
/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_quality.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_viz.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_plot.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so
/usr/lib/x86_64-linux-gnu/libopencv_shape.so
/usr/lib/x86_64-linux-gnu/libopencv_superres.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so
/usr/lib/x86_64-linux-gnu/libopencv_superres.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_hdf.so
/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_text.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_text.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so
/usr/lib/x86_64-linux-gnu/libopencv_dpm.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_video.so
/usr/lib/x86_64-linux-gnu/libopencv_face.so
/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so
/usr/lib/x86_64-linux-gnu/libopencv_quality.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_viz.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so
/usr/lib/x86_64-linux-gnu/libopencv_ml.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so
/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so
/usr/lib/x86_64-linux-gnu/libopencv_aruco.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_superres.so
/usr/lib/x86_64-linux-gnu/libopencv_dnn_superres.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_ml.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_quality.so
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_freetype.so
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_dpm.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_core.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_core.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_shape.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_saliency.so
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_saliency.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_videoio.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_reg.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_hdf.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_face.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_stereo.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_saliency.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so
/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_plot.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_core.so
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_hfs.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_datasets.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_video.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_reg.so
/usr/lib/x86_64-linux-gnu/libopencv_video.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_videoio.so
/usr/lib/x86_64-linux-gnu/libopencv_face.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_freetype.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so
/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_photo.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_tracking.so
/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_datasets.so
/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_flann.so
/usr/lib/x86_64-linux-gnu/libopencv_stereo.so
/usr/lib/x86_64-linux-gnu/libopencv_freetype.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_ml.so
/usr/lib/x86_64-linux-gnu/libopencv_photo.so
/usr/lib/x86_64-linux-gnu/libopencv_structured_light.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_dnn_objdetect.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_viz.so
/usr/lib/x86_64-linux-gnu/libopencv_videoio.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so
/usr/lib/x86_64-linux-gnu/libopencv_dpm.so
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so
/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_plot.so
/usr/lib/x86_64-linux-gnu/libopencv_tracking.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_img_hash.so
/usr/lib/x86_64-linux-gnu/libopencv_text.so
/usr/lib/x86_64-linux-gnu/libopencv_optflow.so
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_hfs.so
/usr/lib/x86_64-linux-gnu/libopencv_hdf.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_hfs.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_datasets.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_optflow.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_calib3d.so
/usr/lib/x86_64-linux-gnu/libopencv_aruco.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_fuzzy.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_surface_matching.so
/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so
/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_ccalib.so
/usr/lib/x86_64-linux-gnu/libopencv_xphoto.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_ximgproc.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_tracking.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_phase_unwrapping.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_flann.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_photo.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_bioinspired.so
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_rgbd.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_flann.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_line_descriptor.so
/usr/lib/x86_64-linux-gnu/libopencv_xobjdetect.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_aruco.so
/usr/lib/x86_64-linux-gnu/libopencv_stereo.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_reg.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_shape.so.4.2
/usr/lib/x86_64-linux-gnu/libopencv_optflow.so.4.2.0
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so
/usr/lib/x86_64-linux-gnu/libopencv_bgsegm.so
/usr/local/opencv2.4.11/lib/libopencv_video.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_features2d.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_gpu.so
/usr/local/opencv2.4.11/lib/libopencv_highgui.so
/usr/local/opencv2.4.11/lib/libopencv_calib3d.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_videostab.so
/usr/local/opencv2.4.11/lib/libopencv_contrib.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_video.so
/usr/local/opencv2.4.11/lib/libopencv_nonfree.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_superres.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_imgproc.so
/usr/local/opencv2.4.11/lib/libopencv_core.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_core.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_ocl.so
/usr/local/opencv2.4.11/lib/libopencv_highgui.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_videostab.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_videostab.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_superres.so
/usr/local/opencv2.4.11/lib/libopencv_calib3d.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_ml.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_contrib.so
/usr/local/opencv2.4.11/lib/libopencv_nonfree.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_photo.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_flann.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_flann.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_stitching.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_legacy.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_core.so
/usr/local/opencv2.4.11/lib/libopencv_legacy.so
/usr/local/opencv2.4.11/lib/libopencv_photo.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_ocl.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_superres.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_stitching.so
/usr/local/opencv2.4.11/lib/libopencv_ml.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_gpu.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_flann.so
/usr/local/opencv2.4.11/lib/libopencv_video.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_imgproc.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_ml.so
/usr/local/opencv2.4.11/lib/libopencv_photo.so
/usr/local/opencv2.4.11/lib/libopencv_features2d.so
/usr/local/opencv2.4.11/lib/libopencv_ocl.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_highgui.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_imgproc.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_features2d.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_nonfree.so
/usr/local/opencv2.4.11/lib/libopencv_calib3d.so
/usr/local/opencv2.4.11/lib/libopencv_contrib.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_legacy.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_stitching.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_gpu.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_objdetect.so.2.4.11
/usr/local/opencv2.4.11/lib/libopencv_objdetect.so.2.4
/usr/local/opencv2.4.11/lib/libopencv_objdetect.so

在别的路径下安装opencv2.4.11

安装步骤:(双系统GPU版)DynaSLAM超详细安装配置运行ubantu20.0.4+opencv2.4.11+tensorflow-gpu1.14.0-CSDN博客

如何切换:

4、下载DynaSLAM_Master

(1)下载DynaSLAM:

git clone https://github.com/BertaBescos/DynaSLAM.git

(2)下载mask_rcnn_coco.h5

git clone https://github.com/matterport/Mask_RCNN/releases

放到DynaSLAM的src/python中

5、配conda环境

打开conda

conda create -n dynaslam2 python=2.7

conda activate dynaslam2

装包:

pip install tensorflow-gpu==1.14.0

pip install keras==2.0.9

pip install h5py==2.10.0

pip install numpy==1.16.6

pip install pillow==6.2.2

pip install pycocotools==2.0.3(这个会报错)

pip install scikit-image==0.14.5

sudo apt-get install libcanberra-gtk-module

对于pycocotools问题(也不知道是哪个方法起到了效果):

方法一:

pip install git+ https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

直接能安装,然后查看位置:locate pycocotools,确定是否已安装

方法二:

git clone https://github.com/waleedka/coco.git 
cd coco-master/PythonAPI 
sudo make install(会报错,执行下一行)
pythonsetup.py build_ext install

安装以后,把pycocotools文件夹放到DynaSLAM/src/python中  (后续运行时发现会报错,把这个pycocotools删除了,就不报错了)

应该可以解决下边这个问题

6.检查自己的环境

conda list

因为可能会有细微的版本不同,再用pip安装一下正确的版本

(1)激活 conda 环境
conda activate dynaslam2

(2)安装指定版本的包
​
conda install -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge _libgcc_mutex=0.1 _openmp_mutex=4.5=2_gnu ca-certificates=2022.12.7 certifi=2016.9.26 ld_impl_linux-64=2.40 libffi=3.2.1 libgcc-ng=12.2.0 libgomp=12.2.0 libsqlite=3.40.0 libstdcxx-ng=12.2.0 libzlib=1.2.13 ncurses=6.3 openssl=1.1.1t python=2.7.15=h5a48372_1011_cpython python_abi=2.7=1_cp27mu readline=8.2 sqlite=3.40.0 tk=8.6.12 wheel=0.34.2

​

(3)确保安装包的版本
conda install -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
​ zlib=1.2.13

​

(4)用pip安装包
pip install absl-py0.15.0 astor0.8.1 backports-functools-lru-cache1.6.4 backports-weakref1.0.post1 cloudpickle1.3.0 cycler0.10.0 cython0.29.33 decorator4.4.2 enum341.1.10 funcsigs1.0.2 futures3.4.0 gast0.5.3 google-pasta0.2.0 grpcio1.41.1 h5py2.10.0 keras2.0.9 keras-applications1.0.8 keras-preprocessing1.1.2 kiwisolver1.1.0 markdown3.1.1 matplotlib2.2.5 mock3.0.5 networkx2.2 numpy1.16.6 pillow6.2.2 protobuf3.17.3 pycocotools2.0.3 pyparsing2.4.7 python-dateutil2.8.2 pytz2022.7.1 pywavelets1.0.3 pyyaml5.4.1 scikit-image0.14.5 scipy1.2.3 setuptools44.1.1 six1.16.0 subprocess323.5.4 tensorboard1.14.0 tensorflow-estimator1.14.0 tensorflow-gpu1.14.0 termcolor1.1.0 werkzeug1.0.1 wrapt==1.15.0
​

7、更改cmakelists.tst

cmake_minimum_required(VERSION 2.8)
project(DynaSLAM)
IF(NOT CMAKE_BUILD_TYPE)
  SET(CMAKE_BUILD_TYPE Release)
SET(CMAKE_BUILD_TYPE Debug)
ENDIF()
MESSAGE("Build type: " ${CMAKE_BUILD_TYPE})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3  ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3 ")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O0 -march=native ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O0 -march=native")
Check C++11 or C++0x support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
   add_definitions(-DCOMPILEDWITHC11)
   message(STATUS "Using flag -std=c++11.")
elseif(COMPILER_SUPPORTS_CXX0X)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
   add_definitions(-DCOMPILEDWITHC0X)
   message(STATUS "Using flag -std=c++0x.")
else()
   message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
message("PROJECT_SOURCE_DIR: " ${OpenCV_DIR})
find_package(OpenCV 2.4.11 QUIET)##改为2.4.11
if(NOT OpenCV_FOUND)
    message("OpenCV > 2.4.11 not found.")
    find_package(OpenCV 3.0 QUIET)
    if(NOT OpenCV_FOUND)
        message(FATAL_ERROR "OpenCV > 3.0 not found.")
    endif()
endif()
#find_package(OpenCV 3.0 QUIET)
#if(NOT OpenCV_FOUND)
find_package(OpenCV 2.4.3 QUIET)
if(NOT OpenCV_FOUND)
message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
endif()
#endif()

find_package(Qt5Widgets REQUIRED)
find_package(Qt5Concurrent REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5Test REQUIRED)
find_package(PythonLibs REQUIRED)

if (NOT PythonLibs_FOUND)
    message(FATAL_ERROR "PYTHON LIBS not found.")
else()
    message("PYTHON LIBS were found!")
    message("PYTHON LIBS DIRECTORY: " ${PYTHON_LIBRARY})
endif()
find_package(Boost REQUIRED COMPONENTS thread)
if(Boost_FOUND)
    message("Boost was found!")
    message("Boost Headers DIRECTORY: " ${Boost_INCLUDE_DIRS})
    message("Boost LIBS DIRECTORY: "${Boost_LIBRARY_DIRS})
    message("Found Libraries: " ${Boost_LIBRARIES})
endif()


find_package(Eigen3 3.1.0 REQUIRED)
find_package(Pangolin REQUIRED)
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy)
include_directories(
${PROJECT_SOURCE_DIR}${PROJECT_SOURCE_DIR}/include
${EIGEN3_INCLUDE_DIR}${Pangolin_INCLUDE_DIRS}
/home/tan/anaconda3/envs/dynaslam2/include/python2.7##自己改的
/usr/include/python2.7/
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/
${Boost_INCLUDE_DIRS}
)
message("PROJECT_SOURCE_DIR: "${PROJECT_SOURCE_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
add_library(${PROJECT_NAME} SHARED
src/System.cc
src/Tracking.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/ORBextractor.cc
src/ORBmatcher.cc
src/FrameDrawer.cc
src/Converter.cc
src/MapPoint.cc
src/KeyFrame.cc
src/Map.cc
src/MapDrawer.cc
src/Optimizer.cc
src/PnPsolver.cc
src/Frame.cc
src/KeyFrameDatabase.cc
src/Sim3Solver.cc
src/Initializer.cc
src/Viewer.cc
src/Conversion.cc
src/MaskNet.cc
src/Geometry.cc
)
target_link_libraries(${PROJECT_NAME}${OpenCV_LIBS}
${EIGEN3_LIBS}${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so
/usr/lib/x86_64-linux-gnu/libpython2.7.so
${Boost_LIBRARIES}
)

Build examples
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/RGB-D)
add_executable(rgbd_tum
Examples/RGB-D/rgbd_tum.cc)
target_link_libraries(rgbd_tum ${PROJECT_NAME})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Stereo)
add_executable(stereo_kitti
Examples/Stereo/stereo_kitti.cc)
target_link_libraries(stereo_kitti ${PROJECT_NAME})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular)
add_executable(mono_tum
Examples/Monocular/mono_tum.cc)
target_link_libraries(mono_tum ${PROJECT_NAME})
add_executable(mono_kitti
Examples/Monocular/mono_kitti.cc)
target_link_libraries(mono_kitti ${PROJECT_NAME})

#把这个注释了
#add_executable(mono_carla
#Examples/Monocular/mono_carla.cc)
#target_link_libraries(mono_carla ${PROJECT_NAME})

8、改代码:

Conversion.h

(1)<python2.7/Python.h>改成<Python.h>

(2)因为ndarraryobject.h是在conda环境的python2.7里边,所以直接改为实际路径,也可以在cmakelists添加"/home/tan/anaconda3/envs/dynaslam2/lib/python2.7/site-packages/numpy/core/include/numpy,这里就不改了。

这里把#include "ndarrayobject.h"改为:

#include "/home/tan/anaconda3/envs/dynaslam2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h"

LoopClosing.h

把const移到后边

MaskNet.h

<python2.7/Python.h>改成<Python.h>,因为cmakelists中加上了/home/tan/anaconda3/envs/dynaslam2/include/python2.7

viewer.cc

加上if语句

9、编译

在dynaslam2环境下

cd ~DynaSLAM2

sudo chmod +x build.sh

./build.sh

问题:找不到 make[2]: *** 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libpython2.7.so

参考:

Ubuntu报错:make[2]: *** 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libopencv_dnn.so.4.2.0”_ubuntu没有规则可制作目标-CSDN博客

解决:是因为这个libpython2.7.so在conda的环境中,所以在/usr/lib/x86_64-linux-gnu/ 下找不到

先找到他的位置:

$ find $(conda info --base)/envs/dynaslam2 -name "libpython2.7.so"

在把他复制过去

$ sudo cp /home/tan/anaconda3/envs/dynaslam2/lib/libpython2.7.so /usr/lib/x86_64-linux-gnu/

10、运行

问题:

./Examples/Monocular/mono_kitti: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

解决:

(dynaslam2) tan@LEGION:~/DynaSLAM2$ find $(conda info --base)/envs/dynaslam2 -name "libpython2.7.so*"

/home/tan/anaconda3/envs/dynaslam2/lib/libpython2.7.so

/home/tan/anaconda3/envs/dynaslam2/lib/libpython2.7.so.1.0

(dynaslam2) tan@LEGION:~/DynaSLAM2$ export LD_LIBRARY_PATH=/home/tan/anaconda3/envs/dynaslam2/lib:$LD_LIBRARY_PATH

(dynaslam2) tan@LEGION:~/DynaSLAM2$ start_conda

(base) tan@LEGION:~/DynaSLAM2$ conda activate dynaslam2

(dynaslam2) tan@LEGION:~/DynaSLAM2$ export LD_LIBRARY_PATH=/home/tan/anaconda3/envs/dynaslam2/lib:$LD_LIBRARY_PATH

(dynaslam2) tan@LEGION:~/DynaSLAM2$ ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml /home/tan/dataset/data_odometry_gray/dataset/sequences/00

每次运行之前可以先手动导入一下,也可以直接加入到/.bashrc中,这里自己手动导入:

$ export LD_LIBRARY_PATH=/home/tan/anaconda3/envs/dynaslam2/lib:$LD_LIBRARY_PATH

再运行:

$ ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml /home/tan/dataset/data_odometry_gray/dataset/sequences/00

数据集:

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值