cmake_minimum_required(VERSION 2.6)# 指定最低的 CMake 版本。
project(yolosort)# 指定项目名称。
list(APPEND CUDA_NVCC_FLAGS "-std=c++11")# 添加编译 CUDA 代码时的标志,指定使用 C++11 标准。
set(CMAKE_CXX_FLAGS "-std=c++0x")# 设置 C++ 编译器标志,指定使用 C++0x(这个标志已经过时,推荐使用 -std=c++11)
set(ONNXRUNTIME_INCLUDE_DIRS /home/zg/lib_zg/onnxruntime-linux-x64-gpu-1.11.0/include())
set(ONNXRUNTIME_LIBS /home/zg/lib_zg/onnxruntime-linux-x64-gpu-1.11.0/lib/libonnxruntime.so
/home/zg/lib_zg/onnxruntime-linux-x64-gpu-1.11.0/lib/libonnxruntime_providers_cuda.so
/home/zg/lib_zg/onnxruntime-linux-x64-gpu-1.11.0/lib/libonnxruntime_providers_shared.so
/home/zg/lib_zg/onnxruntime-linux-x64-gpu-1.11.0/lib/libonnxruntime_providers_tensorrt.so
)
find_package(PkgConfig REQUIRED)
pkg_check_modules(OPENCV REQUIRED opencv4>=4.6.0)
include_directories(${OPENCV_INCLUDE_DIRS})
link_directories(${OPENCV_LIBRARY_DIRS})
add_definitions(-std=c++11)# 添加预定义宏,指定使用 C++11 标准
add_definitions(-DAPI_EXPORTS)# 添加预定义宏 API_EXPORTS。
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)# 设置 CUDA 使用动态链接的运行时库。
set(CMAKE_CXX_STANDARD 11)# 设置 C++ 标准为 C++11。
set(CMAKE_BUILD_TYPE Release)# 设置构建类型为 Release。
find_package(CUDA REQUIRED)# 查找 CUDA 包。
set(CUDA_NVCC_PLAGS ${CUDA_NVCC_PLAGS};-std=c++11;-g;-G;-gencode;arch=compute_53;code=sm_53)# 设置 CUDA 编译标志
if(WIN32)
enable_language(CUDA)
endif(WIN32)# 设置 Windows 下使用 CUDA:
include_directories("/usr/include/eigen3")# 包含 Eigen3 头文件目录。
include_directories(/usr/local/cuda/include)
link_directories(/usr/local/cuda/lib64)
include_directories(/usr/local/TensorRT-8.4.3.1/include)
link_directories(/usr/local/TensorRT-8.4.3.1/lib/)# 包含 CUDA 头文件和 TensorRT 头文件目录,以及链接到 CUDA 和 TensorRT 库的目录。
include_directories(
${CUDA_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/deepsort/include)
aux_source_directory(${PROJECT_SOURCE_DIR}/deepsort/src SRC_DIR) # 将 deepsort 库源文件添加到 SRC_DIR 变量中。
# ===== deepsort ===== 创建 deepsort 库动态库
add_library(deepsort SHARED ${SRC_DIR})
target_link_libraries(deepsort
${CUDA_LIBS} ${OPENCV_LIBRARIES}
cudart nvinfer nvonnxparser pthread)# 链接 deepsort 库所需的库。
# ===== ===========yolo ==========================
include_directories(${PROJECT_SOURCE_DIR}/yolo/include)#包含 yolo 库的头文件目录。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Ofast -Wfatal-errors -D_MWAITXINTRIN_H_INCLUDED")
cuda_add_library(yolo_infer SHARED
${PROJECT_SOURCE_DIR}/yolo/src/preprocess.cu
${PROJECT_SOURCE_DIR}/yolo/src/yololayer.cu
${PROJECT_SOURCE_DIR}/yolo/src/yolo_lib.cpp)# 创建 yolo_infer 库,其中包含 CUDA 文件和普通 C++ 文件。
target_link_libraries(yolo_infer nvinfer cudart ${OPENCV_LIBRARIES} pthread) # 链接 yolo_infer 库所需的库。
#====== img_caption,加入图像描述 ===========
include_directories(${PROJECT_SOURCE_DIR}/img_caption/include ${ONNXRUNTIME_INCLUDE_DIRS})
aux_source_directory(${PROJECT_SOURCE_DIR}/img_caption/src ICSRC_DIR)
add_library(img_caption SHARED ${ICSRC_DIR})
target_link_libraries(img_caption ${ONNXRUNTIME_LIBS} ${OPENCV_LIBRARIES})
# ===== main ==============================
aux_source_directory(${PROJECT_SOURCE_DIR}/src M_SRC_DIR)#将主程序源文件添加到 M_SRC_DIR 变量中。
include_directories(${PROJECT_SOURCE_DIR}/include)#包含主程序的头文件目录。
add_executable(yolosort ${M_SRC_DIR})#创建主程序可执行文件。
target_link_libraries(yolosort ${OPENCV_LIBRARIES} nvinfer cudart yolo_infer deepsort img_caption pthread)#链接主程序所需的库。
#*********************yolosort_video****************************
aux_source_directory(${PROJECT_SOURCE_DIR}/src_video VIDEO_SRC_DIR)
include_directories(${PROJECT_SOURCE_DIR}/include)
add_executable(yolosort_video ${VIDEO_SRC_DIR})
target_link_libraries(yolosort_video ${OPENCV_LIBRARIES} nvinfer cudart yolo_infer deepsort img_caption pthread)#链接主程序所需的库。
if(UNIX)
add_definitions(-O2 -pthread)
endif(UNIX)
set(CMAKE_CXX_FLAGS "-std=c++0x")
# CMake 文件用于构建一个包含主程序 yolosort 和两个共享库 deepsort 和 yolo_infer 的项目,该项目依赖于 OpenCV、CUDA 和 TensorRT。
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7525
最新资源
- 三相共直流母线式光储VSG 同步机 构网型 组网型逆变器 仿真包含前级光伏PV与Boost的扰动观察法最大功率追踪,共直流母线式储能Buck-boost变器,采用电压电流双闭环控制 三相VSG 同步
- 光伏MPPT同步发电机(VSG)并网仿真模型 结构:前级光伏板采用扰动观察法最大功率跟踪给定值,然后将该功率通过直流母线电容电压进行功率解耦并经过逆变器输送给右侧的负载和电网 控制:光伏Boost采用
- 电动车之王特斯拉二手车选购指南
- 光伏储能同步发电机VSG并网仿真模型C 光伏阵列搭建的光伏电池模型 光伏:采用扰动观察法最大功率点MPPT跟踪控制 储能:蓄电池充放电控制,双向Buck Boost变器,采用直流母线电压外环控制稳定直
- 改进滑膜控制与传统控制的永磁同步电机PMSM仿真模型 学习资料: ①与仿真完全对应的29页Word文档详细说明和4页设计说明 ②(PI、最优滑膜、改进滑膜)三种控制仿真模型 ③录制好的导出波形
- 在MATLAB中发现集群并使用集群配置文件.pdf
- 精品二手车检测方法实战
- 风储惯量调频仿真模型,风电调频,一次调频,四机两区系统,采用频域模型法使得风电渗透率25%,附加惯性控制,储能附加下垂控制,参与系统一次调频,系统频率特性优 有SOC特性 特点,风储联合仿真速度很快
- python+Django+MySQL实现学生管理系统
- 基于PI+重复控制的有源电力滤波器谐波抑制策略 ①APF有源电力滤波器 ②无功补偿 ③PI+重复控制(电流环重复控制) ④THD小于1%,谐波抑制 附带搭建仿真过程参考的文献(最后一张图) 2018b
- https://test-mp-v4.csdn.net/mp-blog/creation/editor
- PowerBI-svg 目标达成率
- 三相四桥臂逆变器MATLAB Simulink仿真模型,接不平衡负载时的调制算法 接非线性负载时的多PR控制器并联算法 提供仿真模型、设计报告及参考文献
- 高斯变迹光栅滤波器模型建立,fdtd模型+参考文献
- Golang之敏感词过滤器的设计与实现
- 基于微信原生开发的微信商城项目
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈