| | |
| | | } |
| | | printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay); |
| | | int imgs = 128; |
| | | int i = net.seen/imgs; |
| | | int i = *net.seen/imgs; |
| | | data train, buffer; |
| | | |
| | | |
| | |
| | | |
| | | time=clock(); |
| | | float loss = train_network(net, train); |
| | | net.seen += imgs; |
| | | if (avg_loss < 0) avg_loss = loss; |
| | | avg_loss = avg_loss*.9 + loss*.1; |
| | | |
| | |
| | | int total = 0; |
| | | int correct = 0; |
| | | float avg_iou = 0; |
| | | int nms = 0; |
| | | int nms = 1; |
| | | int proposals = 0; |
| | | int save = 1; |
| | | |
| | | for (i = 0; i < N; ++i) { |
| | | char *path = paths[i]; |
| | |
| | | for(k = 0; k < num_boxes*num_boxes*num; ++k){ |
| | | if(probs[k][0] > thresh){ |
| | | ++proposals; |
| | | if(save){ |
| | | char buff[256]; |
| | | sprintf(buff, "/data/extracted/nms_preds/%d", proposals); |
| | | int dx = (boxes[k].x - boxes[k].w/2) * orig.w; |
| | | int dy = (boxes[k].y - boxes[k].h/2) * orig.h; |
| | | int w = boxes[k].w * orig.w; |
| | | int h = boxes[k].h * orig.h; |
| | | image cropped = crop_image(orig, dx, dy, w, h); |
| | | image sized = resize_image(cropped, 224, 224); |
| | | #ifdef OPENCV |
| | | save_image_jpg(sized, buff); |
| | | #endif |
| | | free_image(sized); |
| | | free_image(cropped); |
| | | sprintf(buff, "/data/extracted/nms_pred_boxes/%d.txt", proposals); |
| | | char *im_id = basecfg(path); |
| | | FILE *fp = fopen(buff, "w"); |
| | | fprintf(fp, "%s %d %d %d %d\n", im_id, dx, dy, dx+w, dy+h); |
| | | fclose(fp); |
| | | free(im_id); |
| | | } |
| | | } |
| | | } |
| | | for (j = 0; j < num_labels; ++j) { |
| | |
| | | int k; |
| | | |
| | | int count = 0; |
| | | float iou_thresh = .1; |
| | | float iou_thresh = .3; |
| | | |
| | | for (i = 0; i < N; ++i) { |
| | | fprintf(stderr, "%5d %5d\n", i, count); |
| | |
| | | if (iou > iou_thresh){ |
| | | if (!overlaps) { |
| | | char buff[256]; |
| | | sprintf(buff, "/home/pjreddie/extracted/labels/%d.txt", count); |
| | | sprintf(buff, "/data/extracted/labels/%d.txt", count); |
| | | label = fopen(buff, "w"); |
| | | overlaps = 1; |
| | | } |
| | |
| | | } |
| | | if (overlaps) { |
| | | char buff[256]; |
| | | sprintf(buff, "/home/pjreddie/extracted/imgs/%d", count++); |
| | | sprintf(buff, "/data/extracted/imgs/%d", count++); |
| | | int dx = (boxes[k].x - boxes[k].w/2) * orig.w; |
| | | int dy = (boxes[k].y - boxes[k].h/2) * orig.h; |
| | | int w = boxes[k].w * orig.w; |
| | | int h = boxes[k].h * orig.h; |
| | | image cropped = crop_image(orig, dx, dy, w, h); |
| | | image sized = resize_image(cropped, 224, 224); |
| | | #ifdef OPENCV |
| | | #ifdef OPENCV |
| | | save_image_jpg(sized, buff); |
| | | #endif |
| | | #endif |
| | | free_image(sized); |
| | | free_image(cropped); |
| | | fclose(label); |