From db3a3c54c5078dca64a3076113bec93c11f4be63 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sat, 03 Feb 2018 12:35:13 +0000
Subject: [PATCH] Some fixes

---
 src/network.c         |    6 ++++--
 src/parser.c          |    3 ++-
 src/detector.c        |    2 +-
 src/yolo_v2_class.hpp |    7 ++++---
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/detector.c b/src/detector.c
index f401d20..d79fbcc 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -84,7 +84,7 @@
     args.num_boxes = l.max_boxes;
     args.d = &buffer;
     args.type = DETECTION_DATA;
-    args.threads = 8;
+	args.threads = 4;// 8;
 
     args.angle = net.angle;
     args.exposure = net.exposure;
diff --git a/src/network.c b/src/network.c
index 56a316c..0c1b9af 100644
--- a/src/network.c
+++ b/src/network.c
@@ -50,6 +50,7 @@
     int batch_num = get_current_batch(net);
     int i;
     float rate;
+	if (batch_num < net.burn_in) return net.learning_rate * pow((float)batch_num / net.burn_in, net.power);
     switch (net.policy) {
         case CONSTANT:
             return net.learning_rate;
@@ -66,8 +67,9 @@
         case EXP:
             return net.learning_rate * pow(net.gamma, batch_num);
         case POLY:
-            if (batch_num < net.burn_in) return net.learning_rate * pow((float)batch_num / net.burn_in, net.power);
-            return net.learning_rate * pow(1 - (float)batch_num / net.max_batches, net.power);
+			return net.learning_rate * pow(1 - (float)batch_num / net.max_batches, net.power);
+            //if (batch_num < net.burn_in) return net.learning_rate * pow((float)batch_num / net.burn_in, net.power);
+            //return net.learning_rate * pow(1 - (float)batch_num / net.max_batches, net.power);
         case RANDOM:
             return net.learning_rate * pow(rand_uniform(0,1), net.power);
         case SIG:
diff --git a/src/parser.c b/src/parser.c
index 9fc4966..2a1ea3b 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -532,6 +532,7 @@
     net->saturation = option_find_float_quiet(options, "saturation", 1);
     net->exposure = option_find_float_quiet(options, "exposure", 1);
     net->hue = option_find_float_quiet(options, "hue", 0);
+	net->power = option_find_float_quiet(options, "power", 4);
 
     if(!net->inputs && !(net->h && net->w && net->c)) error("No input parameters supplied");
 
@@ -571,7 +572,7 @@
         net->gamma = option_find_float(options, "gamma", 1);
         net->step = option_find_int(options, "step", 1);
     } else if (net->policy == POLY || net->policy == RANDOM){
-        net->power = option_find_float(options, "power", 1);
+        //net->power = option_find_float(options, "power", 1);
     }
     net->max_batches = option_find_int(options, "max_batches", 0);
 }
diff --git a/src/yolo_v2_class.hpp b/src/yolo_v2_class.hpp
index 57aeaf1..a9bd7b2 100644
--- a/src/yolo_v2_class.hpp
+++ b/src/yolo_v2_class.hpp
@@ -233,8 +233,9 @@
 
 			update_cur_bbox_vec(_cur_bbox_vec);
 
+			//src_grey_gpu.upload(src_mat, stream);	// use BGR
 			src_mat_gpu.upload(src_mat, stream);
-			cv::cuda::cvtColor(src_mat_gpu, src_grey_gpu, CV_BGR2GRAY, 0, stream);
+			cv::cuda::cvtColor(src_mat_gpu, src_grey_gpu, CV_BGR2GRAY, 1, stream);
 		}
 		if (old_gpu_id != gpu_id)
 			cv::cuda::setDevice(old_gpu_id);
@@ -257,9 +258,9 @@
 			dst_grey_gpu = cv::cuda::GpuMat(dst_mat.size(), CV_8UC1);
 		}
 
+		//dst_grey_gpu.upload(dst_mat, stream);	// use BGR
 		dst_mat_gpu.upload(dst_mat, stream);
-
-		cv::cuda::cvtColor(dst_mat_gpu, dst_grey_gpu, CV_BGR2GRAY, 0, stream);
+		cv::cuda::cvtColor(dst_mat_gpu, dst_grey_gpu, CV_BGR2GRAY, 1, stream);
 
 		if (src_grey_gpu.rows != dst_grey_gpu.rows || src_grey_gpu.cols != dst_grey_gpu.cols) {
 			stream.waitForCompletion();

--
Gitblit v1.10.0