From 11c72b1132feca7c1252ea01d02da4cb497e723f Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Thu, 11 Jun 2015 22:38:58 +0000
Subject: [PATCH] testing on one image

---
 src/detection.c |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/detection.c b/src/detection.c
index 84a03b4..e21e120 100644
--- a/src/detection.c
+++ b/src/detection.c
@@ -18,7 +18,7 @@
         for(c = 0; c < side; ++c){
             j = (r*side + c) * elems;
             int class = max_index(box+j, classes);
-            if(box[j+class] > 0){
+            if(box[j+class] > 0.2){
                 printf("%f %s\n", box[j+class], class_names[class]);
                 float red = get_color(0,class,classes);
                 float green = get_color(1,class,classes);
@@ -67,6 +67,7 @@
 
     int classes = layer.classes;
     int background = (layer.background || layer.objectness);
+    printf("%d\n", background);
     int side = sqrt(get_detection_layer_locations(layer));
 
     char **paths;
@@ -205,8 +206,9 @@
     fprintf(stderr, "Total Detection Time: %f Seconds\n", (double)(time(0) - start));
 }
 
-void test_detection(char *cfgfile, char *weightfile)
+void test_detection(char *cfgfile, char *weightfile, char *filename)
 {
+
     network net = parse_network_cfg(cfgfile);
     if(weightfile){
         load_weights(&net, weightfile);
@@ -217,24 +219,30 @@
     set_batch_network(&net, 1);
     srand(2222222);
     clock_t time;
-    char filename[256];
+    char input[256];
     while(1){
-        printf("Image Path: ");
-        fflush(stdout);
-        fgets(filename, 256, stdin);
-        strtok(filename, "\n");
-        image im = load_image_color(filename,0,0);
+        if(filename){
+            strncpy(input, filename, 256);
+        } else {
+            printf("Enter Image Path: ");
+            fflush(stdout);
+            fgets(input, 256, stdin);
+            strtok(input, "\n");
+        }
+        image im = load_image_color(input,0,0);
         image sized = resize_image(im, im_size, im_size);
         float *X = sized.data;
         time=clock();
         float *predictions = network_predict(net, X);
-        printf("%s: Predicted in %f seconds.\n", filename, sec(clock()-time));
+        printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
         draw_detection(im, predictions, 7, "predictions");
         free_image(im);
         free_image(sized);
-        #ifdef OPENCV
+#ifdef OPENCV
         cvWaitKey(0);
-        #endif
+        cvDestroyAllWindows();
+#endif
+        if (filename) break;
     }
 }
 
@@ -247,7 +255,8 @@
 
     char *cfg = argv[3];
     char *weights = (argc > 4) ? argv[4] : 0;
-    if(0==strcmp(argv[2], "test")) test_detection(cfg, weights);
+    char *filename = (argc > 5) ? argv[5]: 0;
+    if(0==strcmp(argv[2], "test")) test_detection(cfg, weights, filename);
     else if(0==strcmp(argv[2], "train")) train_detection(cfg, weights);
     else if(0==strcmp(argv[2], "valid")) validate_detection(cfg, weights);
 }

--
Gitblit v1.10.0