| | |
| | | static image disp ; |
| | | static cv::VideoCapture cap; |
| | | static float fps = 0; |
| | | static int demo_thresh = 0; |
| | | |
| | | void *fetch_in_thread(void *ptr) |
| | | { |
| | |
| | | void *detect_in_thread(void *ptr) |
| | | { |
| | | float nms = .4; |
| | | float thresh = .2; |
| | | |
| | | detection_layer l = net.layers[net.n-1]; |
| | | float *X = det_s.data; |
| | | float *predictions = network_predict(net, X); |
| | | free_image(det_s); |
| | | convert_yolo_detections(predictions, l.classes, l.n, l.sqrt, l.side, 1, 1, thresh, probs, boxes, 0); |
| | | convert_yolo_detections(predictions, l.classes, l.n, l.sqrt, l.side, 1, 1, demo_thresh, probs, boxes, 0); |
| | | if (nms > 0) do_nms(boxes, probs, l.side*l.side*l.n, l.classes, nms); |
| | | printf("\033[2J"); |
| | | printf("\033[1;1H"); |
| | | printf("\nFPS:%.0f\n",fps); |
| | | printf("Objects:\n\n"); |
| | | draw_detections(det, l.side*l.side*l.n, thresh, boxes, probs, voc_names, voc_labels, 20); |
| | | draw_detections(det, l.side*l.side*l.n, demo_thresh, boxes, probs, voc_names, voc_labels, 20); |
| | | return 0; |
| | | } |
| | | |
| | | extern "C" void demo_yolo(char *cfgfile, char *weightfile, float thresh, int cam_index) |
| | | { |
| | | demo_thresh = thresh; |
| | | printf("YOLO demo\n"); |
| | | net = parse_network_cfg(cfgfile); |
| | | if(weightfile){ |