Supported files for training: jpg, jpeg, bmp, png, ppm - and UPPER CASE extensions

pull/901/head^2
AlexeyAB 7 years ago
parent 175c68b9b3
commit 4403e71b33
  1. 6
      src/coco.c
  2. 31
      src/data.c
  3. 49
      src/detector.c
  4. 15
      src/utils.c
  5. 1
      src/utils.h
  6. 6
      src/yolo.c

@ -281,11 +281,7 @@ void validate_coco_recall(char *cfgfile, char *weightfile)
if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms_thresh); if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms_thresh);
char labelpath[4096]; char labelpath[4096];
find_replace(path, "images", "labels", labelpath); replace_image_to_label(path, 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);
int num_labels = 0; int num_labels = 0;
box_label *truth = read_boxes(labelpath, &num_labels); box_label *truth = read_boxes(labelpath, &num_labels);

@ -213,12 +213,7 @@ void correct_boxes(box_label *boxes, int n, float dx, float dy, float sx, float
void fill_truth_swag(char *path, float *truth, int classes, int flip, float dx, float dy, float sx, float sy) void fill_truth_swag(char *path, float *truth, int classes, int flip, float dx, float dy, float sx, float sy)
{ {
char labelpath[4096]; char labelpath[4096];
find_replace(path, "images", "labels", labelpath); replace_image_to_label(path, 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);
int count = 0; int count = 0;
box_label *boxes = read_boxes(labelpath, &count); box_label *boxes = read_boxes(labelpath, &count);
@ -252,15 +247,9 @@ void fill_truth_swag(char *path, float *truth, int classes, int flip, float dx,
void fill_truth_region(char *path, float *truth, int classes, int num_boxes, int flip, float dx, float dy, float sx, float sy) 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]; char labelpath[4096];
find_replace(path, "images", "labels", labelpath); replace_image_to_label(path, labelpath);
find_replace(labelpath, "JPEGImages", "labels", labelpath);
int count = 0;
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;
box_label *boxes = read_boxes(labelpath, &count); box_label *boxes = read_boxes(labelpath, &count);
randomize_boxes(boxes, count); randomize_boxes(boxes, count);
correct_boxes(boxes, count, dx, dy, sx, sy, flip); correct_boxes(boxes, count, dx, dy, sx, sy, flip);
@ -302,16 +291,8 @@ void fill_truth_detection(char *path, int num_boxes, float *truth, int classes,
int small_object, int net_w, int net_h) int small_object, int net_w, int net_h)
{ {
char labelpath[4096]; char labelpath[4096];
find_replace(path, "images", "labels", labelpath); replace_image_to_label(path, labelpath);
find_replace(labelpath, "JPEGImages", "labels", 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 count = 0;
int i; int i;
box_label *boxes = read_boxes(labelpath, &count); box_label *boxes = read_boxes(labelpath, &count);

@ -36,17 +36,6 @@ void draw_train_loss(IplImage* img, int img_size, float avg_loss, float max_img_
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}; 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) void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int dont_show)
{ {
list *options = read_data_cfg(datacfg); list *options = read_data_cfg(datacfg);
@ -486,14 +475,6 @@ void validate_detector_recall(char *datacfg, char *cfgfile, char *weightfile)
char labelpath[4096]; char labelpath[4096];
replace_image_to_label(path, labelpath); 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; int num_labels = 0;
box_label *truth = read_boxes(labelpath, &num_labels); box_label *truth = read_boxes(labelpath, &num_labels);
@ -645,14 +626,6 @@ void validate_detector_map(char *datacfg, char *cfgfile, char *weightfile, float
char labelpath[4096]; char labelpath[4096];
replace_image_to_label(path, labelpath); 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; int num_labels = 0;
box_label *truth = read_boxes(labelpath, &num_labels); box_label *truth = read_boxes(labelpath, &num_labels);
int i, j; int i, j;
@ -668,11 +641,8 @@ void validate_detector_map(char *datacfg, char *cfgfile, char *weightfile, float
char *path_dif = paths_dif[image_index]; char *path_dif = paths_dif[image_index];
char labelpath_dif[4096]; char labelpath_dif[4096];
find_replace(path_dif, "images", "labels", labelpath_dif); replace_image_to_label(path_dif, 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);
truth_dif = read_boxes(labelpath_dif, &num_labels_dif); truth_dif = read_boxes(labelpath_dif, &num_labels_dif);
} }
@ -910,14 +880,7 @@ void calc_anchors(char *datacfg, int num_of_clusters, int width, int height, int
char *path = paths[i]; char *path = paths[i];
char labelpath[4096]; char labelpath[4096];
replace_image_to_label(path, labelpath); 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; int num_labels = 0;
box_label *truth = read_boxes(labelpath, &num_labels); box_label *truth = read_boxes(labelpath, &num_labels);
//printf(" new path: %s \n", labelpath); //printf(" new path: %s \n", labelpath);
@ -1133,12 +1096,6 @@ void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filenam
{ {
char labelpath[4096]; char labelpath[4096];
replace_image_to_label(input, labelpath); 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"); FILE* fw = fopen(labelpath, "wb");
int i; int i;

@ -183,6 +183,21 @@ void find_replace(char *str, char *orig, char *rep, char *output)
sprintf(output, "%s%s%s", buffer, rep, p+strlen(orig)); 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) float sec(clock_t clocks)
{ {
return (float)clocks/CLOCKS_PER_SEC; return (float)clocks/CLOCKS_PER_SEC;

@ -40,6 +40,7 @@ void write_all(int fd, char *buffer, size_t bytes);
int read_all_fail(int fd, char *buffer, size_t bytes); int read_all_fail(int fd, char *buffer, size_t bytes);
int write_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 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 error(const char *s);
void malloc_error(); void malloc_error();
void file_error(char *s); void file_error(char *s);

@ -252,11 +252,7 @@ void validate_yolo_recall(char *cfgfile, char *weightfile)
if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms); if (nms) do_nms(boxes, probs, side*side*l.n, 1, nms);
char labelpath[4096]; char labelpath[4096];
find_replace(path, "images", "labels", labelpath); replace_image_to_label(path, 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);
int num_labels = 0; int num_labels = 0;
box_label *truth = read_boxes(labelpath, &num_labels); box_label *truth = read_boxes(labelpath, &num_labels);

Loading…
Cancel
Save