From 701f4fab63b3f6826ae6095ce32b9b99b3ece203 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Mon, 16 Apr 2018 14:58:08 +0000
Subject: [PATCH] Compile fix

---
 src/data.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/data.c b/src/data.c
index d9cedf5..abdb043 100644
--- a/src/data.c
+++ b/src/data.c
@@ -292,7 +292,8 @@
     free(boxes);
 }
 
-void fill_truth_detection(char *path, int num_boxes, float *truth, int classes, int flip, float dx, float dy, float sx, float sy, int small_object)
+void fill_truth_detection(char *path, int num_boxes, float *truth, int classes, int flip, float dx, float dy, float sx, float sy, 
+	int small_object, int net_w, int net_h)
 {
     char labelpath[4096];
     find_replace(path, "images", "labels", labelpath);
@@ -306,10 +307,12 @@
     int count = 0;
 	int i;
     box_label *boxes = read_boxes(labelpath, &count);
+	float lowest_w = 1.F / net_w;
+	float lowest_h = 1.F / net_h;
 	if (small_object == 1) {
 		for (i = 0; i < count; ++i) {
-			if (boxes[i].w < 0.01) boxes[i].w = 0.01;
-			if (boxes[i].h < 0.01) boxes[i].h = 0.01;
+			if (boxes[i].w < lowest_w) boxes[i].w = lowest_w;
+			if (boxes[i].h < lowest_h) boxes[i].h = lowest_h;
 		}
 	}
     randomize_boxes(boxes, count);
@@ -326,7 +329,9 @@
         id = boxes[i].id;
 
 		// not detect small objects
-		if ((w < 0.001 || h < 0.001)) continue;
+		//if ((w < 0.001F || h < 0.001F)) continue;
+		// if truth (box for object) is smaller than 1x1 pix
+		if ((w < lowest_w || h < lowest_h)) continue;
 
         truth[i*5+0] = x;
         truth[i*5+1] = y;
@@ -738,7 +743,7 @@
 		//show_image(ai, "aug");
 		//cvWaitKey(0);
 
-        fill_truth_detection(filename, boxes, d.y.vals[i], classes, flip, dx, dy, 1./sx, 1./sy, small_object);
+        fill_truth_detection(filename, boxes, d.y.vals[i], classes, flip, dx, dy, 1./sx, 1./sy, small_object, w, h);
 
 		cvReleaseImage(&src);
     }
@@ -789,7 +794,7 @@
 		random_distort_image(sized, hue, saturation, exposure);
 		d.X.vals[i] = sized.data;
 
-		fill_truth_detection(random_paths[i], boxes, d.y.vals[i], classes, flip, dx, dy, 1. / sx, 1. / sy, small_object);
+		fill_truth_detection(random_paths[i], boxes, d.y.vals[i], classes, flip, dx, dy, 1. / sx, 1. / sy, small_object, w, h);
 
 		free_image(orig);
 		free_image(cropped);
@@ -827,6 +832,9 @@
     } else if (a.type == IMAGE_DATA){
         *(a.im) = load_image_color(a.path, 0, 0);
         *(a.resized) = resize_image(*(a.im), a.w, a.h);
+	}else if (a.type == LETTERBOX_DATA) {
+		*(a.im) = load_image_color(a.path, 0, 0);
+		*(a.resized) = letterbox_image(*(a.im), a.w, a.h);
     } else if (a.type == TAG_DATA){
         *a.d = load_data_tag(a.paths, a.n, a.m, a.classes, a.min, a.max, a.size, a.angle, a.aspect, a.hue, a.saturation, a.exposure);
     }

--
Gitblit v1.10.0