注意下载Linux版本的(不是windows版本),且与自己的torch相对应的版本,与自己cuda版本相对应。我torch是1.10.0版本,cuda-10.2
- # cuda10.2版本 且 C++11以后
- https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.10.0%2Bcu102.zip
-
- # 下载后直接解压
- unzip libtorch-cxx11-abi-shared-with-deps-1.10.0+cu102.zip
-
把港科大Omni-swarm的示例CmakeLists.txt代码贴出来,这里已经改成我的电脑路径。
- cmake_minimum_required(VERSION 2.8.3)
- project(swarm_loop)
-
- set(CMAKE_CXX_STANDARD 14)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
- set(CMAKE_BUILD_TYPE "Release")
- set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -Wall -Wno-deprecated-declarations -Wno-format")
- set(USE_TENSORRT on)
-
- find_package(catkin REQUIRED COMPONENTS
- roscpp
- rosmsg
- rospy
- std_msgs
- cv_bridge
- swarm_msgs
- message_generation
- camera_models
- message_filters
- vins
- )
-
-
- SET("OpenCV_DIR" "/usr/local/share/OpenCV/")
- find_package(OpenCV 3.4 REQUIRED)
- find_package(Eigen3 REQUIRED)
- find_package(lcm REQUIRED)
- # find_package(Backward)
- set(TENSORRT_ROOT $ENV{HOME}/3rdParty/TensorRT-7.1.3.4)
-
- if (USE_TENSORRT)
- set(Torch_DIR "$ENV{HOME}/3rdParty/libtorch/share/cmake/Torch")
- find_package(Torch REQUIRED)
-
- include_directories("$ENV{HOME}/3rdParty/yolo-tensorrt/modules/")
- include_directories("$ENV{HOME}/3rdParty/TensorRT-7.1.3.4/include")
-
- link_directories(${TENSORRT_ROOT}/lib)
- link_directories("$ENV{HOME}/3rdParty/yolo-tensorrt/build/")
- find_package(CUDA)
- include_directories(${CUDA_INCLUDE_DIRS} ${TORCH_INCLUDE_DIRS})
- add_definitions("-D USE_TENSORRT")
- endif()
-
- catkin_package(
- INCLUDE_DIRS include
- LIBRARIES loop_cnn
- CATKIN_DEPENDS std_msgs cv_bridge roscpp rosmsg rospy swarm_msgs
- #DEPENDS system_lib
- )
-
- ## Specify additional locations of header files
- ## Your package locations should be listed before other locations
- include_directories(
- /usr/local/include/
- include
- ${catkin_INCLUDE_DIRS}
- ${EIGEN3_INCLUDE_DIR}
- )
-
- add_library(libswarm_loop
- src/loop_cam.cpp
- src/loop_detector.cpp
- src/loop_net.cpp
- src/loop_params.cpp
- src/swarm_loop.cpp
- src/loop_utils.cpp
- )
-
- add_library(${PROJECT_NAME}_nodelet
- src/swarm_loop_nodelet.cpp
- )
-
- add_executable(${PROJECT_NAME}_node
- src/swarm_loop_node.cpp
- )
-
- add_executable(${PROJECT_NAME}_spy
- src/swarm_loop_spy.cpp
- )
-
- add_executable(${PROJECT_NAME}_net_tester
- src/loop_network_tester.cpp
- )
-
- set_property(TARGET ${PROJECT_NAME}_nodelet PROPERTY CXX_STANDARD 14)
- set_property(TARGET ${PROJECT_NAME}_node PROPERTY CXX_STANDARD 14)
- set_property(TARGET libswarm_loop PROPERTY CXX_STANDARD 14)
-
- if (USE_TENSORRT)
- cuda_add_library(loop_cnn
- src/superpoint_tensorrt.cpp
- src/tensorrt_generic.cpp
- src/mobilenetvlad_tensorrt.cpp
- )
- target_link_libraries(loop_cnn nvinfer nvinfer_plugin detector opencv_dnn)
-
- add_executable(loop_tensorrt_test
- src/loop_tensorrt_test.cpp
- )
- target_link_libraries(loop_tensorrt_test
- loop_cnn
- dw
- ${TORCH_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${catkin_LIBRARIES}
- )
- set_property(TARGET loop_cnn PROPERTY CXX_STANDARD 14)
- endif()
-
- add_dependencies(${PROJECT_NAME}_nodelet
- ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
-
- add_dependencies(${PROJECT_NAME}_spy
- ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
-
- if (USE_TENSORRT)
- target_link_libraries(libswarm_loop
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${TORCH_LIBRARIES}
- lcm
- faiss
- dw
- loop_cnn
- )
- else()
- target_link_libraries(libswarm_loop
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${TORCH_LIBRARIES}
- lcm
- faiss
- dw
- loop_cnn
- )
- endif()
-
-
- target_link_libraries(${PROJECT_NAME}_nodelet
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${TORCH_LIBRARIES}
- lcm
- faiss
- dw
- libswarm_loop
- )
-
- target_link_libraries(${PROJECT_NAME}_node
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${TORCH_LIBRARIES}
- lcm
- dw
- libswarm_loop
- )
-
- target_link_libraries(${PROJECT_NAME}_net_tester
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- ${TORCH_LIBRARIES}
- lcm
- dw
- libswarm_loop
- )
-
- target_link_libraries(${PROJECT_NAME}_spy
- ${catkin_LIBRARIES}
- ${OpenCV_LIBRARIES}
- lcm
- dw
- libswarm_loop
- )
-