refactor open_vocab into yolo_onnx and yoloworld_onnx engines

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.
This commit is contained in:
cristhian aguilera
2026-03-30 04:44:25 -03:00
parent 748b0c3665
commit 44eec29b83
14 changed files with 1467 additions and 825 deletions
+28 -8
View File
@@ -24,7 +24,8 @@ add_executable(dora_zed
src/main.cc
src/zed/camera.cc
src/engines/zed_native.cc
src/engines/open_vocab.cc
src/engines/yolo_onnx.cc
src/engines/yoloworld_onnx.cc
${node_bridge}
)
add_dependencies(dora_zed Dora_cxx)
@@ -45,21 +46,40 @@ target_link_libraries(dora_zed dora_node_api_cxx ${ZED_LIBRARIES} ${OpenCV_LIBS}
install(TARGETS dora_zed DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
# Standalone detector test — no dora, no live camera required
add_executable(test_open_vocab
src/test_open_vocab.cc
src/engines/open_vocab.cc
# 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_open_vocab PRIVATE
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_open_vocab PRIVATE
target_link_libraries(test_yolo_onnx PRIVATE
${ZED_LIBRARIES}
${OpenCV_LIBS}
${ONNXRUNTIME_LIBRARIES}
)
install(TARGETS test_open_vocab DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin)
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)