From 552207d6f0af585960c9c43e6a6d7c53fb4ae6bd Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Fri, 17 Aug 2018 16:58:05 +0000
Subject: [PATCH] Minor fix

---
 src/data.c         |   17 +++++++++++------
 src/region_layer.c |   12 ++++++------
 src/yolo_layer.c   |   12 ++++++------
 3 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/src/data.c b/src/data.c
index 2a0a7e9..46f86c1 100644
--- a/src/data.c
+++ b/src/data.c
@@ -320,6 +320,7 @@
     if (count > num_boxes) count = num_boxes;
     float x, y, w, h;
     int id;
+    int sub = 0;
 
     for (i = 0; i < count; ++i) {
         x = boxes[i].x;
@@ -337,23 +338,27 @@
             sprintf(buff, "echo %s \"Wrong annotation: class_id = %d. But class_id should be [from 0 to %d]\" >> bad_label.list", labelpath, id, classes);
             system(buff);
             getchar();
+            ++sub;
             continue;
         }
         if ((w < lowest_w || h < lowest_h)) {
             //sprintf(buff, "echo %s \"Very small object: w < lowest_w OR h < lowest_h\" >> bad_label.list", labelpath);
             //system(buff);
+            ++sub;
             continue;
         }
         if (x == 999999 || y == 999999) {
             printf("\n Wrong annotation: x = 0, y = 0 \n");
             sprintf(buff, "echo %s \"Wrong annotation: x = 0 or y = 0\" >> bad_label.list", labelpath);
             system(buff);
+            ++sub;
             continue;
         }
         if (x <= 0 || x > 1 || y <= 0 || y > 1) {
             printf("\n Wrong annotation: x = %f, y = %f \n", x, y);
             sprintf(buff, "echo %s \"Wrong annotation: x = %f, y = %f\" >> bad_label.list", labelpath, x, y);
             system(buff);
+            ++sub;
             continue;
         }
         if (w > 1) {
@@ -371,11 +376,11 @@
         if (x == 0) x += lowest_w;
         if (y == 0) y += lowest_h;
 
-        truth[i*5+0] = x;
-        truth[i*5+1] = y;
-        truth[i*5+2] = w;
-        truth[i*5+3] = h;
-        truth[i*5+4] = id;
+        truth[(i-sub)*5+0] = x;
+        truth[(i-sub)*5+1] = y;
+        truth[(i-sub)*5+2] = w;
+        truth[(i-sub)*5+3] = h;
+        truth[(i-sub)*5+4] = id;
     }
     free(boxes);
 }
@@ -784,7 +789,7 @@
 
         image ai = image_data_augmentation(src, w, h, pleft, ptop, swidth, sheight, flip, jitter, dhue, dsat, dexp);
         d.X.vals[i] = ai.data;
-        
+
         //show_image(ai, "aug");
         //cvWaitKey(0);
 
diff --git a/src/region_layer.c b/src/region_layer.c
index 5167fb8..ada5f8e 100644
--- a/src/region_layer.c
+++ b/src/region_layer.c
@@ -127,17 +127,17 @@
             class_id = hier->parent[class_id];
         }
         *avg_cat += pred;
-    } else {        
+    } else {
         // Focal loss
         if (focal_loss) {
             // Focal Loss
             float alpha = 0.5;    // 0.25 or 0.5
-            //float gamma = 2;    // hardcoded in many places of the grad-formula    
+            //float gamma = 2;    // hardcoded in many places of the grad-formula
 
             int ti = index + class_id;
             float pt = output[ti] + 0.000000000000001F;
             // http://fooplot.com/#W3sidHlwZSI6MCwiZXEiOiItKDEteCkqKDIqeCpsb2coeCkreC0xKSIsImNvbG9yIjoiIzAwMDAwMCJ9LHsidHlwZSI6MTAwMH1d
-            float grad = -(1 - pt) * (2 * pt*logf(pt) + pt - 1);    // http://blog.csdn.net/linmingan/article/details/77885832    
+            float grad = -(1 - pt) * (2 * pt*logf(pt) + pt - 1);    // http://blog.csdn.net/linmingan/article/details/77885832
             //float grad = (1 - pt) * (2 * pt*logf(pt) + pt - 1);    // https://github.com/unsky/focal-loss
 
             for (n = 0; n < classes; ++n) {
@@ -224,7 +224,7 @@
             int onlyclass_id = 0;
             for(t = 0; t < l.max_boxes; ++t){
                 box truth = float_to_box(state.truth + t*5 + b*l.truths);
-                if(!truth.x) break;
+                if(!truth.x) break; // continue;
                 int class_id = state.truth[t*5 + b*l.truths + 4];
                 float maxp = 0;
                 int maxi = 0;
@@ -258,7 +258,7 @@
                         box truth = float_to_box(state.truth + t*5 + b*l.truths);
                         int class_id = state.truth[t * 5 + b*l.truths + 4];
                         if (class_id >= l.classes) continue; // if label contains class_id more than number of classes in the cfg-file
-                        if(!truth.x) break;
+                        if(!truth.x) break; // continue;
                         float iou = box_iou(pred, truth);
                         if (iou > best_iou) {
                             best_class_id = state.truth[t*5 + b*l.truths + 4];
@@ -302,7 +302,7 @@
                 continue; // if label contains class_id more than number of classes in the cfg-file
             }
 
-            if(!truth.x) break;
+            if(!truth.x) break; // continue;
             float best_iou = 0;
             int best_index = 0;
             int best_n = 0;
diff --git a/src/yolo_layer.c b/src/yolo_layer.c
index f0bc073..de00642 100644
--- a/src/yolo_layer.c
+++ b/src/yolo_layer.c
@@ -121,12 +121,12 @@
     if (focal_loss) {
         // Focal Loss
         float alpha = 0.5;    // 0.25 or 0.5
-        //float gamma = 2;    // hardcoded in many places of the grad-formula    
+        //float gamma = 2;    // hardcoded in many places of the grad-formula
 
         int ti = index + stride*class_id;
         float pt = output[ti] + 0.000000000000001F;
         // http://fooplot.com/#W3sidHlwZSI6MCwiZXEiOiItKDEteCkqKDIqeCpsb2coeCkreC0xKSIsImNvbG9yIjoiIzAwMDAwMCJ9LHsidHlwZSI6MTAwMH1d
-        float grad = -(1 - pt) * (2 * pt*logf(pt) + pt - 1);    // http://blog.csdn.net/linmingan/article/details/77885832    
+        float grad = -(1 - pt) * (2 * pt*logf(pt) + pt - 1);    // http://blog.csdn.net/linmingan/article/details/77885832
         //float grad = (1 - pt) * (2 * pt*logf(pt) + pt - 1);    // https://github.com/unsky/focal-loss
 
         for (n = 0; n < classes; ++n) {
@@ -206,7 +206,7 @@
                             getchar();
                             continue; // if label contains class_id more than number of classes in the cfg-file
                         }
-                        if(!truth.x) break;
+                        if(!truth.x) break;  // continue;
                         float iou = box_iou(pred, truth);
                         if (iou > best_iou) {
                             best_iou = iou;
@@ -237,7 +237,7 @@
             int class_id = state.truth[t*(4 + 1) + b*l.truths + 4];
             if (class_id >= l.classes) continue; // if label contains class_id more than number of classes in the cfg-file
 
-            if(!truth.x) break;
+            if(!truth.x) break;  // continue;
             float best_iou = 0;
             int best_n = 0;
             i = (truth.x * l.w);
@@ -307,8 +307,8 @@
     }
     for (i = 0; i < n; ++i){
         box b = dets[i].bbox;
-        b.x =  (b.x - (netw - new_w)/2./netw) / ((float)new_w/netw); 
-        b.y =  (b.y - (neth - new_h)/2./neth) / ((float)new_h/neth); 
+        b.x =  (b.x - (netw - new_w)/2./netw) / ((float)new_w/netw);
+        b.y =  (b.y - (neth - new_h)/2./neth) / ((float)new_h/neth);
         b.w *= (float)netw/new_w;
         b.h *= (float)neth/new_h;
         if(!relative){

--
Gitblit v1.10.0