From ea09a6e0b38e1ddf43ffcd81d27f0506411eb8e4 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Tue, 09 Jan 2018 19:26:54 +0000
Subject: [PATCH] Command line for example of usage DLL/SO
---
src/yolo_v2_class.cpp | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/yolo_v2_class.cpp b/src/yolo_v2_class.cpp
index 4418ce9..f509d21 100644
--- a/src/yolo_v2_class.cpp
+++ b/src/yolo_v2_class.cpp
@@ -34,8 +34,9 @@
};
-YOLODLL_API Detector::Detector(std::string cfg_filename, std::string weight_filename, int gpu_id)
+YOLODLL_API Detector::Detector(std::string cfg_filename, std::string weight_filename, int gpu_id) : cur_gpu_id(gpu_id)
{
+ wait_stream = 0;
int old_gpu_index;
#ifdef GPU
cudaGetDevice(&old_gpu_index);
@@ -54,7 +55,7 @@
char *cfgfile = const_cast<char *>(cfg_filename.data());
char *weightfile = const_cast<char *>(weight_filename.data());
- net = parse_network_cfg(cfgfile);
+ net = parse_network_cfg_custom(cfgfile, 1);
if (weightfile) {
load_weights(&net, weightfile);
}
@@ -109,11 +110,11 @@
#endif
}
-YOLODLL_API int Detector::get_net_width() {
+YOLODLL_API int Detector::get_net_width() const {
detector_gpu_t &detector_gpu = *reinterpret_cast<detector_gpu_t *>(detector_gpu_ptr.get());
return detector_gpu.net.w;
}
-YOLODLL_API int Detector::get_net_height() {
+YOLODLL_API int Detector::get_net_height() const {
detector_gpu_t &detector_gpu = *reinterpret_cast<detector_gpu_t *>(detector_gpu_ptr.get());
return detector_gpu.net.h;
}
@@ -172,17 +173,18 @@
YOLODLL_API std::vector<bbox_t> Detector::detect(image_t img, float thresh, bool use_mean)
{
-
detector_gpu_t &detector_gpu = *reinterpret_cast<detector_gpu_t *>(detector_gpu_ptr.get());
network &net = detector_gpu.net;
int old_gpu_index;
#ifdef GPU
cudaGetDevice(&old_gpu_index);
- cudaSetDevice(net.gpu_index);
+ if(cur_gpu_id != old_gpu_index)
+ cudaSetDevice(net.gpu_index);
#endif
//std::cout << "net.gpu_index = " << net.gpu_index << std::endl;
//float nms = .4;
+ net.wait_stream = wait_stream; // 1 - wait CUDA-stream, 0 - not to wait
image im;
im.c = img.c;
@@ -242,7 +244,8 @@
free(sized.data);
#ifdef GPU
- cudaSetDevice(old_gpu_index);
+ if (cur_gpu_id != old_gpu_index)
+ cudaSetDevice(old_gpu_index);
#endif
return bbox_vec;
--
Gitblit v1.10.0