From 8b0e31121a9a29b92a41fc575138a2e9b4c12d8e Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期六, 18 一月 2025 22:12:28 +0800
Subject: [PATCH] add person gathering
---
nodes/vp_infer_node.cpp | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/nodes/vp_infer_node.cpp b/nodes/vp_infer_node.cpp
index cc86d8e..099f392 100644
--- a/nodes/vp_infer_node.cpp
+++ b/nodes/vp_infer_node.cpp
@@ -1,6 +1,6 @@
#include <fstream>
-
+#include <opencv2/core/cuda.hpp>
#include "vp_infer_node.h"
namespace vp_nodes {
@@ -35,8 +35,23 @@
try {
net = cv::dnn::readNet(model_path, model_config_path);
#ifdef VP_WITH_CUDA
- net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
- net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
+ // net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
+ // net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
+ // 妫�鏌ュ彲鐢ㄧ殑 GPU 鏁伴噺
+ int gpu_count = cv::cuda::getCudaEnabledDeviceCount();
+ if (gpu_count > 0) {
+ // 鍒濆鍖栭殢鏈烘暟绉嶅瓙骞堕殢鏈洪�夋嫨涓�涓� GPU
+ std::srand(static_cast<unsigned>(std::time(nullptr)));
+ int selected_gpu = std::rand() % gpu_count;
+ // 璁剧疆 CUDA 璁惧骞堕厤缃负浣跨敤鎸囧畾 GPU
+ cv::cuda::setDevice(selected_gpu);
+ net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
+ net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
+
+ VP_INFO(vp_utils::string_format("[%s] Using CUDA on GPU %d", node_name.c_str(), selected_gpu));
+ } else {
+ VP_WARN(vp_utils::string_format("[%s] No CUDA-enabled GPUs detected. Running on CPU.", node_name.c_str()));
+ }
#endif
}
catch(const std::exception& e) {
--
Gitblit v1.9.1