| | |
| | | random_paths[i] = paths[index]; |
| | | //if(i == 0) printf("%s\n", paths[index]); |
| | | //printf("grp: %s\n", paths[index]); |
| | | if (strlen(random_paths[i]) <= 4) printf(" Very small path to the image: %s \n", random_paths[i]); |
| | | } while (strlen(random_paths[i]) == 0); |
| | | } |
| | | pthread_mutex_unlock(&mutex); |
| | |
| | | // not detect small objects |
| | | //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; |
| | | char buff[256]; |
| | | if (id >= classes) { |
| | | printf("\n Wrong annotation: class_id = %d. But class_id should be [from 0 to %d] \n", id, classes); |
| | | 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(); |
| | | 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); |
| | | 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); |
| | | continue; |
| | | } |
| | | if (x < 0 || x > 1 || y < 0 || y > 1) { |
| | | 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); |
| | | continue; |
| | | } |
| | | if (w > 1) printf("\n Wrong annotation: w = %f \n", w), w = 1; |
| | | if (h > 1) printf("\n Wrong annotation: h = %f \n", h), h = 1; |
| | | if (w > 1) { |
| | | printf("\n Wrong annotation: w = %f \n", w); |
| | | sprintf(buff, "echo %s \"Wrong annotation: w = %f\" >> bad_label.list", labelpath, w); |
| | | system(buff); |
| | | w = 1; |
| | | } |
| | | if (h > 1) { |
| | | printf("\n Wrong annotation: h = %f \n", h); |
| | | sprintf(buff, "echo %s \"Wrong annotation: h = %f\" >> bad_label.list", labelpath, h); |
| | | system(buff); |
| | | h = 1; |
| | | } |
| | | if (x == 0) x += lowest_w; |
| | | if (y == 0) y += lowest_h; |
| | | |
| | |
| | | return y; |
| | | } |
| | | |
| | | char **get_labels(char *filename) |
| | | char **get_labels_custom(char *filename, int *size) |
| | | { |
| | | list *plist = get_paths(filename); |
| | | if(size) *size = plist->size; |
| | | char **labels = (char **)list_to_array(plist); |
| | | free_list(plist); |
| | | return labels; |
| | | } |
| | | |
| | | char **get_labels(char *filename) |
| | | { |
| | | return get_labels_custom(filename, NULL); |
| | | } |
| | | |
| | | void free_data(data d) |
| | | { |
| | | if(!d.shallow){ |