From 4403e71b330b42d3cda1e0721fb645cf41bac14f Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Sun, 20 May 2018 15:43:15 +0000
Subject: [PATCH] Supported files for training: jpg, jpeg, bmp, png, ppm - and UPPER CASE extensions

---
 src/yolo.c     |    6 --
 src/coco.c     |    6 --
 src/utils.h    |    1 
 src/data.c     |   27 ++-----------
 src/detector.c |   49 +-----------------------
 src/utils.c    |   15 +++++++
 6 files changed, 25 insertions(+), 79 deletions(-)

diff --git a/src/coco.c b/src/coco.c
index b8fc346..86da5b5 100644
--- a/src/coco.c
+++ b/src/coco.c
@@ -281,11 +281,7 @@
         if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms_thresh);
 
         char labelpath[4096];
-        find_replace(path, "images", "labels", labelpath);
-        find_replace(labelpath, "JPEGImages", "labels", labelpath);
-        find_replace(labelpath, ".jpg", ".txt", labelpath);
-        find_replace(labelpath, ".JPEG", ".txt", labelpath);
-		find_replace(labelpath, ".ppm", ".txt", labelpath);
+		replace_image_to_label(path, labelpath);
 
         int num_labels = 0;
         box_label *truth = read_boxes(labelpath, &num_labels);
diff --git a/src/data.c b/src/data.c
index 8da1234..a429862 100644
--- a/src/data.c
+++ b/src/data.c
@@ -213,12 +213,7 @@
 void fill_truth_swag(char *path, float *truth, int classes, int flip, float dx, float dy, float sx, float sy)
 {
     char labelpath[4096];
-    find_replace(path, "images", "labels", labelpath);
-    find_replace(labelpath, "JPEGImages", "labels", labelpath);
-    find_replace(labelpath, ".jpg", ".txt", labelpath);
-    find_replace(labelpath, ".JPG", ".txt", labelpath);
-    find_replace(labelpath, ".JPEG", ".txt", labelpath);
-	find_replace(labelpath, ".ppm", ".txt", labelpath);
+	replace_image_to_label(path, labelpath);
 
     int count = 0;
     box_label *boxes = read_boxes(labelpath, &count);
@@ -252,15 +247,9 @@
 void fill_truth_region(char *path, float *truth, int classes, int num_boxes, int flip, float dx, float dy, float sx, float sy)
 {
     char labelpath[4096];
-    find_replace(path, "images", "labels", labelpath);
-    find_replace(labelpath, "JPEGImages", "labels", labelpath);
+	replace_image_to_label(path, labelpath);
 
-    find_replace(labelpath, ".jpg", ".txt", labelpath);
-    find_replace(labelpath, ".png", ".txt", labelpath);
-    find_replace(labelpath, ".JPG", ".txt", labelpath);
-    find_replace(labelpath, ".JPEG", ".txt", labelpath);
-	find_replace(labelpath, ".ppm", ".txt", labelpath);
-    int count = 0;
+	int count = 0;
     box_label *boxes = read_boxes(labelpath, &count);
     randomize_boxes(boxes, count);
     correct_boxes(boxes, count, dx, dy, sx, sy, flip);
@@ -302,16 +291,8 @@
 	int small_object, int net_w, int net_h)
 {
     char labelpath[4096];
-    find_replace(path, "images", "labels", labelpath);
-    find_replace(labelpath, "JPEGImages", "labels", labelpath);
+	replace_image_to_label(path, labelpath);
 
-    find_replace(labelpath, "raw", "labels", labelpath);
-    find_replace(labelpath, ".jpg", ".txt", labelpath);
-    find_replace(labelpath, ".png", ".txt", labelpath);
-	find_replace(labelpath, ".bmp", ".txt", labelpath);
-    find_replace(labelpath, ".JPG", ".txt", labelpath);
-    find_replace(labelpath, ".JPEG", ".txt", labelpath);
-	find_replace(labelpath, ".ppm", ".txt", labelpath);
     int count = 0;
 	int i;
     box_label *boxes = read_boxes(labelpath, &count);
diff --git a/src/detector.c b/src/detector.c
index bbe60cf..f9cfdae 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -36,17 +36,6 @@
 
 static int coco_ids[] = {1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,70,72,73,74,75,76,77,78,79,80,81,82,84,85,86,87,88,89,90};
 
-void replace_image_to_label(char *input_path, char *output_path) {
-	find_replace(input_path, "images", "labels", output_path);
-	find_replace(output_path, "JPEGImages", "labels", output_path);
-	find_replace(output_path, ".jpg", ".txt", output_path);
-	find_replace(output_path, ".png", ".txt", output_path);
-	find_replace(output_path, ".bmp", ".txt", output_path);
-	find_replace(output_path, ".JPG", ".txt", output_path);
-	find_replace(output_path, ".JPEG", ".txt", output_path);
-	find_replace(output_path, ".ppm", ".txt", output_path);
-}
-
 void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int dont_show)
 {
     list *options = read_data_cfg(datacfg);
@@ -486,14 +475,6 @@
 
 		char labelpath[4096];
 		replace_image_to_label(path, labelpath);
-		//find_replace(path, "images", "labels", labelpath);
-		//find_replace(labelpath, "JPEGImages", "labels", labelpath);
-		//find_replace(labelpath, ".jpg", ".txt", labelpath);
-		//find_replace(labelpath, ".png", ".txt", labelpath);
-		//find_replace(labelpath, ".bmp", ".txt", labelpath);
-		//find_replace(labelpath, ".JPG", ".txt", labelpath);
-		//find_replace(labelpath, ".JPEG", ".txt", labelpath);
-		//find_replace(labelpath, ".ppm", ".txt", labelpath);
 
 		int num_labels = 0;
 		box_label *truth = read_boxes(labelpath, &num_labels);
@@ -645,14 +626,6 @@
 
 			char labelpath[4096];
 			replace_image_to_label(path, labelpath);
-			//find_replace(path, "images", "labels", labelpath);
-			//find_replace(labelpath, "JPEGImages", "labels", labelpath);
-			//find_replace(labelpath, ".jpg", ".txt", labelpath);
-			//find_replace(labelpath, ".png", ".txt", labelpath);
-			//find_replace(labelpath, ".bmp", ".txt", labelpath);
-			//find_replace(labelpath, ".JPG", ".txt", labelpath);
-			//find_replace(labelpath, ".JPEG", ".txt", labelpath);
-			//find_replace(labelpath, ".ppm", ".txt", labelpath);
 			int num_labels = 0;
 			box_label *truth = read_boxes(labelpath, &num_labels);
 			int i, j;
@@ -668,11 +641,8 @@
 				char *path_dif = paths_dif[image_index];
 
 				char labelpath_dif[4096];
-				find_replace(path_dif, "images", "labels", labelpath_dif);
-				find_replace(labelpath_dif, "JPEGImages", "labels", labelpath_dif);
-				find_replace(labelpath_dif, ".jpg", ".txt", labelpath_dif);
-				find_replace(labelpath_dif, ".JPEG", ".txt", labelpath_dif);
-				find_replace(labelpath_dif, ".png", ".txt", labelpath_dif);				
+				replace_image_to_label(path_dif, labelpath_dif);
+			
 				truth_dif = read_boxes(labelpath_dif, &num_labels_dif);
 			}
 
@@ -910,14 +880,7 @@
 		char *path = paths[i];
 		char labelpath[4096];
 		replace_image_to_label(path, labelpath);
-		//find_replace(path, "images", "labels", labelpath);
-		//find_replace(labelpath, "JPEGImages", "labels", labelpath);
-		//find_replace(labelpath, ".jpg", ".txt", labelpath);
-		//find_replace(labelpath, ".png", ".txt", labelpath);
-		//find_replace(labelpath, ".bmp", ".txt", labelpath);
-		//find_replace(labelpath, ".JPG", ".txt", labelpath);
-		//find_replace(labelpath, ".JPEG", ".txt", labelpath);
-		//find_replace(labelpath, ".ppm", ".txt", labelpath);
+
 		int num_labels = 0;
 		box_label *truth = read_boxes(labelpath, &num_labels);
 		//printf(" new path: %s \n", labelpath);
@@ -1133,12 +1096,6 @@
 		{
 			char labelpath[4096];
 			replace_image_to_label(input, labelpath);
-			//find_replace(input, ".jpg", ".txt", labelpath);
-			//find_replace(labelpath, ".png", ".txt", labelpath);
-			//find_replace(labelpath, ".bmp", ".txt", labelpath);
-			//find_replace(labelpath, ".JPG", ".txt", labelpath);
-			//find_replace(labelpath, ".JPEG", ".txt", labelpath);
-			//find_replace(labelpath, ".ppm", ".txt", labelpath);
 
 			FILE* fw = fopen(labelpath, "wb");
 			int i;
diff --git a/src/utils.c b/src/utils.c
index 8b1dcf5..d9d796e 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -183,6 +183,21 @@
     sprintf(output, "%s%s%s", buffer, rep, p+strlen(orig));
 }
 
+void replace_image_to_label(char *input_path, char *output_path) {
+	find_replace(input_path, "images", "labels", output_path);
+	find_replace(output_path, "JPEGImages", "labels", output_path);
+	find_replace(output_path, ".jpg", ".txt", output_path);
+	find_replace(output_path, ".JPG", ".txt", output_path);
+	find_replace(output_path, ".jpeg", ".txt", output_path);
+	find_replace(output_path, ".JPEG", ".txt", output_path);
+	find_replace(output_path, ".png", ".txt", output_path);
+	find_replace(output_path, ".PNG", ".txt", output_path);
+	find_replace(output_path, ".bmp", ".txt", output_path);
+	find_replace(output_path, ".BMP", ".txt", output_path);
+	find_replace(output_path, ".ppm", ".txt", output_path);
+	find_replace(output_path, ".PPM", ".txt", output_path);
+}
+
 float sec(clock_t clocks)
 {
     return (float)clocks/CLOCKS_PER_SEC;
diff --git a/src/utils.h b/src/utils.h
index 8e8e1c7..e2afba4 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -40,6 +40,7 @@
 int read_all_fail(int fd, char *buffer, size_t bytes);
 int write_all_fail(int fd, char *buffer, size_t bytes);
 void find_replace(char *str, char *orig, char *rep, char *output);
+void replace_image_to_label(char *input_path, char *output_path);
 void error(const char *s);
 void malloc_error();
 void file_error(char *s);
diff --git a/src/yolo.c b/src/yolo.c
index 4481165..28f905f 100644
--- a/src/yolo.c
+++ b/src/yolo.c
@@ -252,11 +252,7 @@
         if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms);
 
         char labelpath[4096];
-        find_replace(path, "images", "labels", labelpath);
-        find_replace(labelpath, "JPEGImages", "labels", labelpath);
-        find_replace(labelpath, ".jpg", ".txt", labelpath);
-        find_replace(labelpath, ".JPEG", ".txt", labelpath);
-		find_replace(labelpath, ".ppm", ".txt", labelpath);
+		replace_image_to_label(path, labelpath);
 
         int num_labels = 0;
         box_label *truth = read_boxes(labelpath, &num_labels);

--
Gitblit v1.10.0