| | |
| | | |
| | | #ifndef CV_VERSION_EPOCH |
| | | #include "opencv2/videoio/videoio_c.h" |
| | | #define OPENCV_VERSION CVAUX_STR(CV_VERSION_MAJOR)""CVAUX_STR(CV_VERSION_MINOR)""CVAUX_STR(CV_VERSION_REVISION) |
| | | #define OPENCV_VERSION CVAUX_STR(CV_VERSION_MAJOR)"" CVAUX_STR(CV_VERSION_MINOR)"" CVAUX_STR(CV_VERSION_REVISION) |
| | | #pragma comment(lib, "opencv_world" OPENCV_VERSION ".lib") |
| | | #else |
| | | #define OPENCV_VERSION CVAUX_STR(CV_VERSION_EPOCH)""CVAUX_STR(CV_VERSION_MAJOR)""CVAUX_STR(CV_VERSION_MINOR) |
| | | #define OPENCV_VERSION CVAUX_STR(CV_VERSION_EPOCH)"" CVAUX_STR(CV_VERSION_MAJOR)"" CVAUX_STR(CV_VERSION_MINOR) |
| | | #pragma comment(lib, "opencv_core" OPENCV_VERSION ".lib") |
| | | #pragma comment(lib, "opencv_imgproc" OPENCV_VERSION ".lib") |
| | | #pragma comment(lib, "opencv_highgui" OPENCV_VERSION ".lib") |
| | |
| | | srand(time(0)); |
| | | network net = nets[0]; |
| | | |
| | | if ((net.batch * net.subdivisions) == 1) { |
| | | printf("\n Error: You set incorrect value batch=1 for Training! You should set batch=64 subdivision=64 \n"); |
| | | getchar(); |
| | | } |
| | | |
| | | int imgs = net.batch * net.subdivisions * ngpus; |
| | | printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay); |
| | | data train, buffer; |
| | |
| | | while(get_current_batch(net) < net.max_batches){ |
| | | if(l.random && count++%10 == 0){ |
| | | printf("Resizing\n"); |
| | | int dim = (rand() % 12 + (init_w/32 - 5)) * 32; // +-160 |
| | | //if (get_current_batch(net)+100 > net.max_batches) dim = 544; |
| | | //int dim = (rand() % 12 + (init_w/32 - 5)) * 32; // +-160 |
| | | //int dim = (rand() % 4 + 16) * 32; |
| | | printf("%d\n", dim); |
| | | args.w = dim; |
| | | args.h = dim; |
| | | //if (get_current_batch(net)+100 > net.max_batches) dim = 544; |
| | | int random_val = rand() % 12; |
| | | int dim_w = (random_val + (init_w / 32 - 5)) * 32; // +-160 |
| | | int dim_h = (random_val + (init_h / 32 - 5)) * 32; // +-160 |
| | | if (dim_w < 32) dim_w = 32; |
| | | if (dim_h < 32) dim_h = 32; |
| | | |
| | | printf("%d x %d \n", dim_w, dim_h); |
| | | args.w = dim_w; |
| | | args.h = dim_h; |
| | | |
| | | pthread_join(load_thread, 0); |
| | | train = buffer; |
| | |
| | | load_thread = load_data(args); |
| | | |
| | | for(i = 0; i < ngpus; ++i){ |
| | | resize_network(nets + i, dim, dim); |
| | | resize_network(nets + i, dim_w, dim_h); |
| | | } |
| | | net = nets[0]; |
| | | } |
| | |
| | | fprintf(fp, "\n]\n"); |
| | | fclose(fp); |
| | | } |
| | | fprintf(stderr, "Total Detection Time: %f Seconds\n", time(0) - start); |
| | | fprintf(stderr, "Total Detection Time: %f Seconds\n", (double)time(0) - start); |
| | | } |
| | | |
| | | void validate_detector_recall(char *datacfg, char *cfgfile, char *weightfile) |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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); |