| | |
| | | l->x_norm = realloc(l->x_norm, l->batch*l->outputs*sizeof(float)); |
| | | } |
| | | |
| | | if (l->xnor) { |
| | | //l->binary_input = realloc(l->inputs*l->batch, sizeof(float)); |
| | | } |
| | | |
| | | #ifdef GPU |
| | | if (old_w < w || old_h < h) { |
| | | cuda_free(l->delta_gpu); |
| | |
| | | l->x_gpu = cuda_make_array(l->output, l->batch*l->outputs); |
| | | l->x_norm_gpu = cuda_make_array(l->output, l->batch*l->outputs); |
| | | } |
| | | |
| | | if (l->xnor) { |
| | | cuda_free(l->binary_input_gpu); |
| | | l->binary_input_gpu = cuda_make_array(0, l->inputs*l->batch); |
| | | } |
| | | } |
| | | #ifdef CUDNN |
| | | cudnn_convolutional_setup(l, cudnn_fastest); |
| | |
| | | detection *dets = get_network_boxes(&net, im.w, im.h, thresh, hier_thresh, 0, 1, &nboxes, letterbox); |
| | | if (nms) do_nms_sort(dets, nboxes, l.classes, nms); |
| | | draw_detections_v3(im, dets, nboxes, thresh, names, alphabet, l.classes, ext_output); |
| | | free_detections(dets, nboxes); |
| | | save_image(im, "predictions"); |
| | | if (!dont_show) { |
| | | show_image(im, "predictions"); |
| | | } |
| | | /* |
| | | // pseudo labeling concept - fast.ai |
| | | { |
| | | char labelpath[4096]; |
| | | 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; |
| | | for (i = 0; i < nboxes; ++i) { |
| | | char buff[1024]; |
| | | int class_id = -1; |
| | | float prob = 0; |
| | | for (j = 0; j < l.classes; ++j) { |
| | | if (dets[i].prob[j] > thresh && dets[i].prob[j] > prob) { |
| | | prob = dets[i].prob[j]; |
| | | class_id = j; |
| | | } |
| | | } |
| | | if (class_id >= 0) { |
| | | sprintf(buff, "%d %2.4f %2.4f %2.4f %2.4f\n", class_id, dets[i].bbox.x, dets[i].bbox.y, dets[i].bbox.w, dets[i].bbox.h); |
| | | fwrite(buff, sizeof(char), strlen(buff), fw); |
| | | } |
| | | } |
| | | fclose(fw); |
| | | } |
| | | */ |
| | | free_detections(dets, nboxes); |
| | | free_image(im); |
| | | free_image(sized); |
| | | //free(boxes); |