From 408bde78ffd5c9512ee09adcd2faba21c875d676 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Fri, 13 Apr 2018 14:32:10 +0000
Subject: [PATCH] Fixed darknet.py for Linux

---
 src/detector.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/detector.c b/src/detector.c
index a6a5a5d..46ea1da 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -385,7 +385,7 @@
 			int nboxes = 0;
 			int letterbox = (args.type == LETTERBOX_DATA);
 			detection *dets = get_network_boxes(&net, w, h, thresh, .5, map, 0, &nboxes, letterbox);
-			if (nms) do_nms_sort_v3(dets, nboxes, classes, nms);
+			if (nms) do_nms_sort(dets, nboxes, classes, nms);
 			if (coco) {
 				print_cocos(fp, path, dets, nboxes, classes, w, h);
 			}
@@ -419,6 +419,7 @@
 		load_weights(&net, weightfile);
 	}
 	set_batch_network(&net, 1);
+	fuse_conv_batchnorm(net);
 	srand(time(0));
 
 	//list *plist = get_paths("data/coco_val_5k.list");
@@ -452,7 +453,7 @@
 		int nboxes = 0;
 		int letterbox = 0;
 		detection *dets = get_network_boxes(&net, sized.w, sized.h, thresh, .5, 0, 1, &nboxes, letterbox);
-		if (nms) do_nms_obj_v3(dets, nboxes, 1, nms);
+		if (nms) do_nms_obj(dets, nboxes, 1, nms);
 
 		char labelpath[4096];
 		find_replace(path, "images", "labels", labelpath);
@@ -482,7 +483,7 @@
 				++correct;
 			}
 		}
-
+		fprintf(stderr, " %s - %s - ", paths[i], labelpath);
 		fprintf(stderr, "%5d %5d %5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\n", i, correct, total, (float)proposals / (i + 1), avg_iou * 100 / total, 100.*correct / total);
 		free(id);
 		free_image(orig);
@@ -526,6 +527,7 @@
 		load_weights(&net, weightfile);
 	}
 	set_batch_network(&net, 1);
+	fuse_conv_batchnorm(net);
 	srand(time(0));
 
 	list *plist = get_paths(valid_images);
@@ -603,8 +605,9 @@
 			int nboxes = 0;
 			int letterbox = (args.type == LETTERBOX_DATA);
 			float hier_thresh = 0;
-			detection *dets = get_network_boxes(&net, 1, 1, thresh, hier_thresh, 0, 1, &nboxes, letterbox);
-			if (nms) do_nms_sort_v3(dets, nboxes, l.classes, nms);
+			detection *dets = get_network_boxes(&net, 1, 1, thresh, hier_thresh, 0, 0, &nboxes, letterbox);
+			//detection *dets = get_network_boxes(&net, val[t].w, val[t].h, thresh, hier_thresh, 0, 1, &nboxes, letterbox); // for letterbox=1
+			if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
 
 			char labelpath[4096];
 			find_replace(path, "images", "labels", labelpath);
@@ -1022,6 +1025,7 @@
         load_weights(&net, weightfile);
     }
     set_batch_network(&net, 1);
+	fuse_conv_batchnorm(net);
     srand(2222222);
     clock_t time;
     char buff[256];
@@ -1052,13 +1056,14 @@
         float *X = sized.data;
         time=clock();
         network_predict(net, X);
+		//network_predict_image(&net, im);
         printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
         //get_region_boxes(l, 1, 1, thresh, probs, boxes, 0, 0);
-		// if (nms) do_nms_sort(boxes, probs, l.w*l.h*l.n, l.classes, nms);
+		// if (nms) do_nms_sort_v2(boxes, probs, l.w*l.h*l.n, l.classes, nms);
 		//draw_detections(im, l.w*l.h*l.n, thresh, boxes, probs, names, alphabet, l.classes);
 		int nboxes = 0;
 		detection *dets = get_network_boxes(&net, im.w, im.h, thresh, hier_thresh, 0, 1, &nboxes, letterbox);
-		if (nms) do_nms_sort_v3(dets, nboxes, l.classes, nms);
+		if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
 		draw_detections_v3(im, dets, nboxes, thresh, names, alphabet, l.classes);
 		free_detections(dets, nboxes);
         save_image(im, "predictions");
@@ -1146,4 +1151,5 @@
         demo(cfg, weights, thresh, hier_thresh, cam_index, filename, names, classes, frame_skip, prefix, out_filename,
 			http_stream_port, dont_show);
     }
+	else printf(" There isn't such command: %s", argv[2]);
 }

--
Gitblit v1.10.0