AlexeyAB
2018-05-20 4403e71b330b42d3cda1e0721fb645cf41bac14f
Supported files for training: jpg, jpeg, bmp, png, ppm - and UPPER CASE extensions
6 files modified
102 ■■■■ changed files
src/coco.c 6 ●●●● patch | view | raw | blame | history
src/data.c 25 ●●●● patch | view | raw | blame | history
src/detector.c 49 ●●●●● patch | view | raw | blame | history
src/utils.c 15 ●●●●● patch | view | raw | blame | history
src/utils.h 1 ●●●● patch | view | raw | blame | history
src/yolo.c 6 ●●●● patch | view | raw | blame | history
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);
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,14 +247,8 @@
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;
    box_label *boxes = read_boxes(labelpath, &count);
    randomize_boxes(boxes, count);
@@ -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);
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;
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;
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);
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);