| | |
| | | args.hue = net.hue; |
| | | |
| | | #ifdef OPENCV |
| | | args.threads = 7; |
| | | args.threads = 3; |
| | | IplImage* img = NULL; |
| | | float max_img_loss = 5; |
| | | int number_of_lines = 100; |
| | |
| | | #else |
| | | loss = train_network(net, train); |
| | | #endif |
| | | if (avg_loss < 0) avg_loss = loss; |
| | | if (avg_loss < 0 || avg_loss != avg_loss) avg_loss = loss; // if(-inf or nan) |
| | | avg_loss = avg_loss*.9 + loss*.1; |
| | | |
| | | i = get_current_batch(net); |
| | |
| | | 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); |
| | | |
| | | int num_labels = 0; |
| | |
| | | ++correct; |
| | | } |
| | | } |
| | | fprintf(stderr, " %s - %s - ", paths[i], labelpath); |
| | | //fprintf(stderr, " %s - %s - ", paths[i], labelpath); |
| | | fprintf(stderr, "%5d %5d %5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\n", i, correct, total, (float)proposals / (i + 1), avg_iou * 100 / total, 100.*correct / total); |
| | | free(id); |
| | | free_image(orig); |
| | |
| | | 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, ".png", ".txt", labelpath); |
| | | find_replace(labelpath, ".bmp", ".txt", labelpath); |
| | | find_replace(labelpath, ".JPG", ".txt", labelpath); |
| | | find_replace(labelpath, ".JPEG", ".txt", labelpath); |
| | | int num_labels = 0; |
| | | box_label *truth = read_boxes(labelpath, &num_labels); |
| | | int i, j; |
| | |
| | | void calc_anchors(char *datacfg, int num_of_clusters, int width, int height, int show) |
| | | { |
| | | printf("\n num_of_clusters = %d, width = %d, height = %d \n", num_of_clusters, width, height); |
| | | if (width < 0 || height < 0) { |
| | | printf("Usage: darknet detector calc_anchors data/voc.data -num_of_clusters 9 -width 416 -height 416 \n"); |
| | | printf("Error: set width and height \n"); |
| | | return; |
| | | } |
| | | |
| | | //float pointsdata[] = { 1,1, 2,2, 6,6, 5,5, 10,10 }; |
| | | float *rel_width_height_array = calloc(1000, sizeof(float)); |
| | |
| | | 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, ".png", ".txt", labelpath); |
| | | find_replace(labelpath, ".bmp", ".txt", labelpath); |
| | | find_replace(labelpath, ".JPG", ".txt", labelpath); |
| | | find_replace(labelpath, ".JPEG", ".txt", labelpath); |
| | | int num_labels = 0; |
| | | box_label *truth = read_boxes(labelpath, &num_labels); |
| | | //printf(" new path: %s \n", labelpath); |
| | |
| | | |
| | | float *X = sized.data; |
| | | time= what_time_is_it_now(); |
| | | network_predict(net, X); |
| | | //network_predict_image(&net, im); |
| | | //network_predict(net, X); |
| | | network_predict_image(&net, im); letterbox = 1; |
| | | printf("%s: Predicted in %f seconds.\n", input, (what_time_is_it_now()-time)); |
| | | //get_region_boxes(l, 1, 1, thresh, probs, boxes, 0, 0); |
| | | // if (nms) do_nms_sort_v2(boxes, probs, l.w*l.h*l.n, l.classes, nms); |
| | |
| | | int cam_index = find_int_arg(argc, argv, "-c", 0); |
| | | int frame_skip = find_int_arg(argc, argv, "-s", 0); |
| | | int num_of_clusters = find_int_arg(argc, argv, "-num_of_clusters", 5); |
| | | int width = find_int_arg(argc, argv, "-width", 13); |
| | | int heigh = find_int_arg(argc, argv, "-heigh", 13); |
| | | int width = find_int_arg(argc, argv, "-width", -1); |
| | | int height = find_int_arg(argc, argv, "-height", -1); |
| | | if(argc < 4){ |
| | | fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]); |
| | | return; |
| | |
| | | else if(0==strcmp(argv[2], "valid")) validate_detector(datacfg, cfg, weights, outfile); |
| | | else if(0==strcmp(argv[2], "recall")) validate_detector_recall(datacfg, cfg, weights); |
| | | else if(0==strcmp(argv[2], "map")) validate_detector_map(datacfg, cfg, weights, thresh); |
| | | else if(0==strcmp(argv[2], "calc_anchors")) calc_anchors(datacfg, num_of_clusters, width, heigh, show); |
| | | else if(0==strcmp(argv[2], "calc_anchors")) calc_anchors(datacfg, num_of_clusters, width, height, show); |
| | | else if(0==strcmp(argv[2], "demo")) { |
| | | list *options = read_data_cfg(datacfg); |
| | | int classes = option_find_int(options, "classes", 20); |