高端网站设计制作方法,微信网站开发登录,深圳福田 外贸网站建设,中华室内设计网怎么样文章目录 1 环境2 创建容器2.1 拉取镜像2.2 启动容器 3 进入容器3.1 进入容器3.2 查看系统信息3.3 换源 4 安装依赖4.1 安装基础依赖4.2 安装eigen3、vtk6、pcl1.84.3 安装Pangolin 0.64.3.1 安装依赖4.3.2 下载4.3.3 编译安装4.3.4 测试 4.4 安装opencv 3.4.154.4.1 安装依赖4… 文章目录 1 环境2 创建容器2.1 拉取镜像2.2 启动容器 3 进入容器3.1 进入容器3.2 查看系统信息3.3 换源 4 安装依赖4.1 安装基础依赖4.2 安装eigen3、vtk6、pcl1.84.3 安装Pangolin 0.64.3.1 安装依赖4.3.2 下载4.3.3 编译安装4.3.4 测试 4.4 安装opencv 3.4.154.4.1 安装依赖4.4.2 下载4.4.3 编译安装4.4.4 测试 5 【可选】测试pcl分割超体5.1 下载PCD文件5.1.1 下载5.1.2 测试 5.2 代码5.3 CMakeLists.txt5.4 编译5.5 测试 6 编译安装Darknet6.1 下载编译6.2 测试6.2.1 下载模型6.2.2 测试 7 编译orb-slam2_semantic_with_labelling7.1 下载7.2 单独编译darknet7.2.1 拷贝7.2.2 添加编译yolo_v3.o7.2.3 编译7.2.4 测试7.2.4.1 查看libYOLOv3SE.so7.2.4.2 测试加载7.2.4.3 测试运行 7.2.5 拷贝libYOLOv3SE.so 7.3 修改CMakeLists.txt7.4 编译 8 运行8.1 运行8.2 结果展示 1 环境
WIN11Nvidia GPUDocker DesktopWSL
说明以下操作都是在WSL的ubuntu和Docker容器中操作其中某些操作没有重复写有问题可参考我另一篇博客https://blog.csdn.net/superbadguy/article/details/148025249
2 创建容器
2.1 拉取镜像
docker pull pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel2.2 启动容器
xhost local:rootdocker run -d \-v /tmp/.X11-unix:/tmp/.X11-unix \-v /mnt/e/docker-ws/shared/:/shared \--gpus all \-e DISPLAY$DISPLAY \-e QT_X11_NO_MITSHM1 \--ipchost \--name ub18-slam2-labelling \pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel \tail -f /dev/null3 进入容器
3.1 进入容器 docker exec -it ub18-slam2-labelling /bin/bash3.2 查看系统信息
cat /etc/os-releasenvidia-smi -Lnvcc -Vfind / -name libcudnn.so
3.3 换源
# 备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak# 换源
sed -i s|http://.*archive.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list
sed -i s|http://.*security.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list# 更新软件列表
apt update4 安装依赖
4.1 安装基础依赖
apt install -y vim wget git cmake pkg-config build-essential unzip sudo4.2 安装eigen3、vtk6、pcl1.8
apt-get install -y software-properties-commonadd-apt-repository deb http://security.ubuntu.com/ubuntu xenial-security mainapt-get updateapt-get install libvtk6-dev \
libvtk6-qt-dev \
libboost-all-dev \
libeigen3-dev \
libpcl-dev \
pcl-tools \
-y4.3 安装Pangolin 0.6
4.3.1 安装依赖
apt install libxkbcommon-dev -y
apt install wayland-protocols -y
apt install libglew-dev libgl1-mesa-dev libwayland-dev -y 4.3.2 下载
mkdir /app
cd /appgit clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin/# 切换到v0.6版本
git checkout v0.6
git branch4.3.3 编译安装
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPERelease ..
make -j$(($(nproc) - 2))
sudo make install4.3.4 测试
cd ../examples/HelloPangolin/
mkdir build
cd build/
cmake ..
make
# 运行弹出图形化界面
./HelloPangolin4.4 安装opencv 3.4.15
4.4.1 安装依赖
# 1. 添加必要的旧版库源用于libjasper
add-apt-repository deb http://security.ubuntu.com/ubuntu xenial-security main
apt-get update# 2. 安装基础编译工具
apt-get install -y \build-essential \cmake \git \pkg-config# 3. 安装图像I/O依赖库
apt-get install -y \libjpeg-dev \libpng-dev \libtiff-dev \libjasper1 \libjasper-dev# 4. 安装视频I/O和编解码库
apt-get install -y \libavcodec-dev \libavformat-dev \libswscale-dev \libv4l-dev \libx264-dev \libxvidcore-dev# 5. 安装GUI依赖OpenCV 3.x默认使用GTK2
apt-get install -y \libgtk2.0-dev \gtk2-engines-pixbuf# 6. 安装Python3支持
apt-get install -y \python3-dev \python3-numpy# 7. 安装并行计算和优化库
apt-get install -y \libtbb-dev \libeigen3-dev# 8. 安装其他功能模块依赖
apt-get install -y \libdc1394-22-dev \libglew-dev \libopenexr-dev4.4.2 下载
cd /app
wget -O opencv-3.4.15.zip https://github.com/opencv/opencv/archive/refs/tags/3.4.15.zip4.4.3 编译安装
unzip opencv-3.4.15.zip
cd opencv-3.4.15
mkdir build cd buildcmake -D CMAKE_BUILD_TYPERELEASE ..make -j$(($(nproc) - 2)) # 使用多线程加速
sudo make install
sudo ldconfig4.4.4 测试
pkg-config --modversion opencvcd ../samples/cpp/example_cmake
cmake .
make
./opencv_example5 【可选】测试pcl分割超体
orb-slam2_with_semantic_labelling代码中有用到pcl分割超体但因为系统或安装等原因会导致程序运行过程中卡住然后退出我尝试了好多好多天终于发现是这个原因真是巨坑啊maybe也是我太菜的缘故
5.1 下载PCD文件
5.1.1 下载
mkdir /app/test_supervoxel
cd /app/test_supervoxel
wget -O office.zip https://sourceforge.net/projects/pointclouds/files/PCD%20datasets
/office.zip/download5.1.2 测试
cd /app/test_supervoxel
unzip office.zip
cd office
pcl_viewer office1.pcd5.2 代码
/app/test_supervoxel/test_supervoxel.cpp
#include pcl/console/parse.h
#include pcl/point_cloud.h
#include pcl/point_types.h
#include pcl/io/pcd_io.h
#include pcl/segmentation/supervoxel_clustering.h
#include pcl/visualization/pcl_visualizer.htypedef pcl::PointXYZRGBA PointT;int main(int argc, char** argv)
{if (argc 2) {std::cerr Usage: argv[0] input.pcd [--display] std::endl;return 1;}// 加载点云pcl::PointCloudPointT::Ptr cloud(new pcl::PointCloudPointT);if (pcl::io::loadPCDFilePointT(argv[1], *cloud) -1) {std::cerr Failed to load PCD file! std::endl;return 2;}std::cout Loaded cloud-size() points std::endl;// 参数设置const float voxel_resolution 0.015f;const float seed_resolution 0.15f;const float color_importance 0.1f;const float spatial_importance 0.4f;const float normal_importance 1.0f;// 创建分割器pcl::SupervoxelClusteringPointT super(voxel_resolution, seed_resolution);super.setInputCloud(cloud);super.setColorImportance(color_importance);super.setSpatialImportance(spatial_importance);super.setNormalImportance(normal_importance);super.setUseSingleCameraTransform(false);// 执行分割std::mapstd::uint32_t, pcl::SupervoxelPointT::Ptr supervoxel_clusters;std::cout Starting supervoxel extraction... std::endl;super.extract(supervoxel_clusters); // 这里会触发segmentation fault吗std::cout Extracted supervoxel_clusters.size() supervoxels std::endl;// 可视化修正后的代码bool display pcl::console::find_argument(argc, argv, --display) 0;if (display) {pcl::visualization::PCLVisualizer viewer(Supervoxel Viewer);viewer.addPointCloudPointT(cloud, original);// 正确获取质心类型pcl::PointCloudPointT::Ptr voxel_centers(new pcl::PointCloudPointT);for (auto it supervoxel_clusters.begin(); it ! supervoxel_clusters.end(); it) {voxel_centers-push_back(it-second-centroid_);}viewer.addPointCloud(voxel_centers, centroids);viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5.0, centroids);viewer.spin();}return 0;
}5.3 CMakeLists.txt
/app/test_supervoxel/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test_supervoxel)find_package(PCL 1.8 REQUIRED COMPONENTS common io segmentation visualization)
find_package(VTK 6 REQUIRED)# 添加C11支持
set(CMAKE_CXX_STANDARD 11)include_directories(${PCL_INCLUDE_DIRS} ${VTK_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS} ${VTK_LIBRARY_DIRS})add_executable(test_supervoxel test_supervoxel.cpp)
target_link_libraries(test_supervoxel${PCL_LIBRARIES}${VTK_LIBRARIES}pthread
)if(CMAKE_BUILD_TYPE STREQUAL Debug)set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g3 -O0)
endif()5.4 编译
cd /app/test_supervoxel
mkdir build
cd buildcmake ..
make 5.5 测试
cd /app/test_supervoxel/build
./test_supervoxel /app/test_supervoxel/office/office1.pcd --displayLoaded 307200 points Starting supervoxel extraction… Extracted 1998 supervoxels 6 编译安装Darknet
orb-slam2_with_semantic_labelling中带了darknet但好像是改过的版本跟官网的还有些不一样折腾了好多天改了好些地方才编译成功但运行仍然时有问题遂放弃治疗直接使用官方的darknet替代
6.1 下载编译
cd /app
git clone https://github.com/pjreddie/darknet.git
cd darknet
make加入GPU和OpenCV vim Makefile 重新编译
make clean make 报错 解决 vim src/image_opencv.cpp 61 image mat_to_image(Mat m)62 {63 // IplImage ipl m;64 IplImage ipl cvIplImage(m); // 新增65 image im ipl_to_image(ipl);66 rgbgr_image(im);67 return im;68 }重新编译
6.2 测试
6.2.1 下载模型
wget https://data.pjreddie.com/files/yolov3.weights6.2.2 测试
# cost 0.42 seconds
# 第一次运行可能要1分钟再次运行就很快
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg# cost 11.7 seconds
./darknet -nogpu detect cfg/yolov3.cfg yolov3.weights data/dog.jpgLoading weights from yolov3.weights…Done! data/dog.jpg: Predicted in 7.869886 seconds. dog: 6366% truck: 1626% truck: 227% bicycle: 3938% 7 编译orb-slam2_semantic_with_labelling
7.1 下载
cd /app
git clone https://github.com/qixuxiang/orb-slam2_with_semantic_labellingcd orb-slam2_with_semantic_labelling/
cd Vocabulary/# 此命令可能下载不全手动下载后放到Vocabulary文件夹下
wget https://github.com/raulmur/ORB_SLAM2/blob/master/Vocabulary/ORBvoc.txt.tar.gz7.2 单独编译darknet
7.2.1 拷贝
cp /app/orb-slam2_with_semantic_labelling/Thirdparty/darknet/src/yolo_v3.* /app/darknet/src/7.2.2 添加编译yolo_v3.o
vim /app/darkent/Makefile
7.2.3 编译
cd /app/darknet
make clean make mv libdarknet.so libYOLOv3SE.so
cp cfg/yolov3.cfg .7.2.4 测试
7.2.4.1 查看libYOLOv3SE.so
nm -D libYOLOv3SE.so | grep Yolo00000000000973b0 T YoloDetect 0000000000097730 T YoloDetectFromFile 00000000000977d0 T YoloDetectFromImage 00000000000976f0 T YoloLoad 7.2.4.2 测试加载
代码 test_loading.c
#include stdio.h
#include dlfcn.htypedef int*(*YoloLoadType)(char*, char*);int main() {void* handle dlopen(./libYOLOv3SE.so, RTLD_LAZY | RTLD_NOW);if (!handle) {fprintf(stderr, dlopen error: %s\n, dlerror());return 1;}YoloLoadType YoloLoad (YoloLoadType)dlsym(handle, YoloLoad);if (!YoloLoad) {fprintf(stderr, dlsym error: %s\n, dlerror());return 1;}printf(Calling YoloLoad...\n);char* cfg ./yolov3.cfg; // 替换为绝对路径测试
char* weights ./yolov3.weights;
printf(Config path: %s\n, cfg); // 打印路径确认int* net YoloLoad(cfg, weights); // 替换为实际路径printf(YoloLoad returned: %p\n, net);dlclose(handle);return 0;
}编译
gcc -g test_loading.c -o test_loading -ldl运行
./test_loadingLoading weights from ./yolov3.weights…Done! YoloLoad returned: 0x559936b85f20 7.2.4.3 测试运行
代码 test_predict.cpp
#include iostream
#include opencv2/opencv.hpp
#include YOLOv3SE.h // 确保路径正确int main() {// 1. 初始化 YOLOv3 模型YOLOv3 detector;// 2. 加载模型文件需替换为你的实际路径std::string weights yolov3.weights;std::string cfg yolov3.cfg;std::string names ./data/coco.names; // 可选类别名称文件detector.Create(weights, cfg, names);// 3. 加载测试图像cv::Mat img cv::imread(./data/dog.jpg);if (img.empty()) {std::cerr Error: Could not load image! std::endl;return -1;}// 4. 执行检测阈值设为 0.5float threshold 0.5;std::vectorBoxSE boxes detector.Detect(img, threshold);// 5. 绘制检测结果for (const BoxSE box : boxes) {cv::rectangle(img, box, cv::Scalar(0, 255, 0), 2);std::string label box.m_class_name ( std::to_string(box.m_score) );cv::putText(img, label, cv::Point(box.x, box.y - 5), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 255, 0), 1);}// 6. 显示结果cv::imshow(YOLOv3 Detection, img);cv::waitKey(0);// 7. 释放资源析构函数会自动调用此处可省略detector.Release();return 0;
}修改并拷贝YOLOv3SE.h
修改vim /app/orb-slam2_with_semantic_labelling/include/YOLOv3SE.h116 std::vectorBoxSE Detect(cv::Mat img, float threshold) {
117 // IplImage* iplimg new IplImage(img);
118 IplImage* iplimg new IplImage(cvIplImage(img));
119 std::vectorBoxSE boxes this-Detect(iplimg, threshold);
120 delete iplimg;
121 return boxes;
122 }拷贝cp /app/orb-slam2_with_semantic_labelling/include/YOLOv3SE.h /app/darknet/编译
g test_predict.cpp \
-o test_predict \
-I./include -I. \
-L. -lYOLOv3SE \
pkg-config --cflags --libs opencv \
-Wl,-rpath$ORIGIN \
-ldl \
-w 运行
./test_predict7.2.5 拷贝libYOLOv3SE.so
mkdir /app/orb-slam2_with_semantic_labelling/Thirdparty/darknet/build
cp libYOLOv3SE.so /app/orb-slam2_with_semantic_labelling/Thirdparty/darknet/build/7.3 修改CMakeLists.txt
修改后的完整CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
add_definitions(-w) # note 去掉警告
project(ORB_SLAM2)SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)IF(NOT CMAKE_BUILD_TYPE)SET(CMAKE_BUILD_TYPE Release)
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(CXX_COMPILER_FLAGS -03 -ffast-math -fomit-frame-pointer -funroll-loops -fopenmplibomp -msse2)# Check C11 or C0x support
#include(CheckCXXCompilerFlag)
#CHECK_CXX_COMPILER_FLAG(-stdc11 COMPILER_SUPPORTS_CXX11)
#CHECK_CXX_COMPILER_FLAG(-stdc0x COMPILER_SUPPORTS_CXX0X)
#if(COMPILER_SUPPORTS_CXX11)
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -stdc11)
# add_definitions(-DCOMPILEDWITHC11)
# message(STATUS Using flag -stdc11.)
#elseif(COMPILER_SUPPORTS_CXX0X)
# set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -stdc0x)
# add_definitions(-DCOMPILEDWITHC0X)
# message(STATUS Using flag -stdc0x.)
#else()
# message(FATAL_ERROR The compiler ${CMAKE_CXX_COMPILER} has no C11 support. Please use a different C compiler.)
#endif()#SET(CMAKE_C_COMPILER /usr/bin/gcc-5) # note 使用gcc-7#SET(CMAKE_CXX_COMPILER /usr/bin/g-5) # note 使用g-7
set(CMAKE_C_STANDARD 11)
add_definitions(-stdc11)
#list(APPEND CMAKE_C_FLAGS -stdc11 -O3 -ffast-math -Wno-unused-result)
include(FindCUDA)
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
LIST(APPEND CUDA_NVCC_FLAGS --compiler-options -fno-strict-aliasing -lineinfo -use_fast_math -Xptxas -dlcmcg)
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_35,codesm_35) #for gtx9XX
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_50,codesm_50) #for maxwell
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_52,codesm_52) #for maxwell
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_60,codesm_60) #for pascal
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_61,codesm_61) #for pascal
LIST(APPEND CUDA_NVCC_FLAGS -gencode archcompute_62,codesm_62) #for jetson tx2#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()############################################################
############################################################
########### IMPORTANT ######################################
#### openni lib, make sure to set it with your own path#####
set(OPENNI_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/Thirdparty/OpenNI-Linux-x64-2.3/Include)
set(OPENNI_LIB_DIR ${PROJECT_SOURCE_DIR}/Thirdparty/OpenNI-Linux-x64-2.3/Redist)
############################################################
############################################################
############################################################
############################################################
############################################################# note 去掉版本
find_package(Eigen3 REQUIRED)
find_package(Pangolin REQUIRED)
# adding for point cloud viewer and mapper
find_package(PCL REQUIRED)
find_package(OpenCV REQUIRED)
find_package(CUDA REQUIRED)
find_package(OpenMP)# note 修改pcl的include
# set(PCL_INCLUDE_DIRS /usr/local/include/pcl-1.8)
set(PCL_INCLUDE_DIRS /usr/include/pcl-1.8)add_definitions(-DGPU)
add_definitions(-DOPENCV)
add_definitions(-DCUDNN)
add_definitions(-D_TIMESPEC_DEFINED)
add_definitions(-D_TIMESPEC_DEFINED)
set(DARKNET_PATH ${PROJECT_SOURCE_DIR}/Thirdparty/darknet)
add_definitions(-DDARKNET_FILE_PATH${DARKNET_PATH})include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/include
${OpenCV_INCLUDE_DIRS}
# openni
${OPENNI_INCLUDE_DIR}
${EIGEN3_INCLUDE_DIR}
${Pangolin_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
${CUDA_INCLUDE_DIRS}
${DARKNET_PATH}/src
${CMAKE_CURRENT_SOURCE_DIR}/gco-v3.0
/usr/local/cuda/include
)add_definitions(${PCL_DEFINITIONS} )set(CUDA_INCLUDE_DIR /usr/local/cuda/include)
# note 修改cudnn lib目录
# set(CUDNN_LIBRARY_DIR /usr/local/cuda-8.0/targets/x86_64-linux/lib)
set(CUDNN_LIBRARY_DIR /usr/lib/x86_64-linux-gnu)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)set(HEADERSinclude/gco-v3.0/graph.hinclude/gco-v3.0/block.hinclude/gco-v3.0/energy.hinclude/gco-v3.0/GCoptimization.hinclude/gco-v3.0/LinkedBlockList.hinclude/config.hinclude/lsa_tr.hinclude/segmentation.hinclude/segmentation_helpers.h)# note 去掉darknet编译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/pointcloudmapping.cc
src/segmentation.cc
gco-v3.0/maxflow.cpp gco-v3.0/maxflow.cpp gco-v3.0/LinkedBlockList.cpp gco-v3.0/GCoptimization.cpp gco-v3.0/graph.cpp ${HEADERS})add_library(cuda INTERFACE)
list(REMOVE_ITEM CUDA_CUBLAS_LIBRARIES CUDA_cublas_device_LIBRARY-NOTFOUND) # note 增加
message(STATUS Cleaned CUDA_CUBLAS_LIBRARIES ${CUDA_CUBLAS_LIBRARIES}) # note 增加
set_target_properties(cuda PROPERTIESINTERFACE_INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS}INTERFACE_LINK_LIBRARIES ${CUDA_LIBRARIES};${CUDA_curand_LIBRARY};${CUDA_CUFFT_LIBRARIES};${CUDA_CUBLAS_LIBRARIES})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
${PROJECT_SOURCE_DIR}/Thirdparty/darknet/build/libYOLOv3SE.so
# note 修改libcudnn.so
# /usr/local/cuda/lib64/libcudnn.so
/usr/lib/x86_64-linux-gnu/libcudnn.so
${PCL_LIBRARIES}
m
dl
pthread
stdc
cuda
)#CONFIGURE_FILE(./src/segmentation.pc.in segmentation.pc ONLY)
# Build examplesset(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#add_executable(rgbd_astra
#Examples/RGB-D/rgbd_astra.cpp)
#target_link_libraries(rgbd_astra ${PROJECT_NAME})#add_executable(rgbd_xtion_cc
#Examples/RGB-D/rgbd_xtion_cc.cpp)
#target_link_libraries(rgbd_xtion_cc ${PROJECT_NAME})add_executable(rgbd_tumExamples/RGB-D/rgbd_tum.cc)
target_link_libraries(rgbd_tum ${PROJECT_NAME} )#add_executable(rgbd_my
# Examples/RGB-D/rgbd_my.cc)
#target_link_libraries(rgbd_my ${PROJECT_NAME})#add_executable(stereo_kitti
#Examples/Stereo/stereo_kitti.cc)
#target_link_libraries(stereo_kitti ${PROJECT_NAME})#add_executable(stereo_euroc
#Examples/Stereo/stereo_euroc.cc)
#target_link_libraries(stereo_euroc ${PROJECT_NAME})#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_euroc
#Examples/Monocular/mono_euroc.cc)
#target_link_libraries(mono_euroc ${PROJECT_NAME})# Build tools
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/tools)
add_executable(bin_vocabulary
tools/bin_vocabulary.cc)
target_link_libraries(bin_vocabulary ${PROJECT_NAME})7.4 编译
修改build.sh去掉darknet编译 编译
bash build.sh8 运行
8.1 运行
cd /app
wget https://cvg.cit.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgztar -zxvf rgbd_dataset_freiburg1_desk.tgzcd /app/orb-slam2_with_semantic_labelling/bin/
mkdir img
cp /app/darknet/yolov3.weights .
cp /app/darknet/yolov3.cfg ../rgbd_tum \../Vocabulary/ORBvoc.txt \../Examples/RGB-D/TUM1.yaml \/app/rgbd_dataset_freiburg1_desk \../Examples/RGB-D/associations/fr1_desk.txt8.2 结果展示 经过很多天很多夜终于可以成功的跑出来global_color.pcd和segmentation.pcd但global_color.pcd的效果也差强人意segmentation.pcd更是糊了不知道作者是如何跑出那么完美的效果的深深深深深的疑惑maybe还是我太菜了…