Split the monolithic open_vocab engine into two focused engines: yolo_onnx (closed-vocabulary, any single-input YOLO ONNX) and yoloworld_onnx (open-vocabulary YOLO-World with CLIP encoder). Shared NMS/letterbox/fuse helpers extracted to yolo_helpers.h. Add export_yolo.py script and separate test binaries for each engine.
86 lines
2.3 KiB
CMake
86 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
project(dora_zed VERSION 0.1.0 LANGUAGES C CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_FLAGS "-fPIC")
|
|
|
|
include(DoraTargets.cmake)
|
|
|
|
set(ZED_DIR "/usr/local/zed" CACHE PATH "Path to the ZED SDK")
|
|
set(ZED_PATH ${ZED_DIR})
|
|
find_package(CUDAToolkit REQUIRED)
|
|
find_package(zed REQUIRED)
|
|
|
|
find_package(OpenCV REQUIRED)
|
|
|
|
find_package(onnxruntime REQUIRED)
|
|
set(ONNXRUNTIME_INCLUDE_DIRS "") # propagated via imported target
|
|
set(ONNXRUNTIME_LIBRARIES onnxruntime::onnxruntime)
|
|
|
|
link_directories(${dora_link_dirs})
|
|
link_directories(${ZED_LIBRARY_DIR})
|
|
|
|
add_executable(dora_zed
|
|
src/main.cc
|
|
src/zed/camera.cc
|
|
src/engines/zed_native.cc
|
|
src/engines/yolo_onnx.cc
|
|
src/engines/yoloworld_onnx.cc
|
|
${node_bridge}
|
|
)
|
|
add_dependencies(dora_zed Dora_cxx)
|
|
|
|
target_include_directories(
|
|
dora_zed
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
${dora_cxx_include_dir}
|
|
${dora_c_include_dir}
|
|
${ZED_INCLUDE_DIRS}
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${CUDAToolkit_INCLUDE_DIRS}
|
|
${ONNXRUNTIME_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(dora_zed dora_node_api_cxx ${ZED_LIBRARIES} ${OpenCV_LIBS} ${ONNXRUNTIME_LIBRARIES})
|
|
|
|
install(TARGETS dora_zed DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
|
|
|
|
# Standalone detector tests — no dora, no live camera required
|
|
|
|
add_executable(test_yolo_onnx
|
|
src/test_yolo_onnx.cc
|
|
src/engines/yolo_onnx.cc
|
|
)
|
|
target_include_directories(test_yolo_onnx PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
${ZED_INCLUDE_DIRS}
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${CUDAToolkit_INCLUDE_DIRS}
|
|
${ONNXRUNTIME_INCLUDE_DIRS}
|
|
)
|
|
target_link_libraries(test_yolo_onnx PRIVATE
|
|
${ZED_LIBRARIES}
|
|
${OpenCV_LIBS}
|
|
${ONNXRUNTIME_LIBRARIES}
|
|
)
|
|
install(TARGETS test_yolo_onnx DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
|
|
|
|
add_executable(test_yoloworld_onnx
|
|
src/test_yoloworld_onnx.cc
|
|
src/engines/yoloworld_onnx.cc
|
|
)
|
|
target_include_directories(test_yoloworld_onnx PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
${ZED_INCLUDE_DIRS}
|
|
${OpenCV_INCLUDE_DIRS}
|
|
${CUDAToolkit_INCLUDE_DIRS}
|
|
${ONNXRUNTIME_INCLUDE_DIRS}
|
|
)
|
|
target_link_libraries(test_yoloworld_onnx PRIVATE
|
|
${ZED_LIBRARIES}
|
|
${OpenCV_LIBS}
|
|
${ONNXRUNTIME_LIBRARIES}
|
|
)
|
|
install(TARGETS test_yoloworld_onnx DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
|