From ae43c2bc32fbb838bfebeeaf2c2b058ccab5c83c Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@burninator.cs.washington.edu>
Date: Thu, 23 Jun 2016 05:31:14 +0000
Subject: [PATCH] hi
---
src/yolo_kernels.cu | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/yolo_kernels.cu b/src/yolo_kernels.cu
index a0ff5f7..09f3961 100644
--- a/src/yolo_kernels.cu
+++ b/src/yolo_kernels.cu
@@ -18,7 +18,9 @@
#include "opencv2/imgproc/imgproc.hpp"
extern "C" image ipl_to_image(IplImage* src);
extern "C" void convert_yolo_detections(float *predictions, int classes, int num, int square, int side, int w, int h, float thresh, float **probs, box *boxes, int only_objectness);
-extern "C" void draw_yolo(image im, int num, float thresh, box *boxes, float **probs);
+
+extern "C" char *voc_names[];
+extern "C" image voc_labels[];
static float **probs;
static box *boxes;
@@ -30,6 +32,7 @@
static image disp ;
static cv::VideoCapture cap;
static float fps = 0;
+static float demo_thresh = 0;
void *fetch_in_thread(void *ptr)
{
@@ -45,24 +48,24 @@
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_yolo(det, l.side*l.side*l.n, thresh, boxes, probs);
+ 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)
+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){
@@ -72,7 +75,7 @@
srand(2222222);
- cv::VideoCapture cam(0);
+ cv::VideoCapture cam(cam_index);
cap = cam;
if(!cap.isOpened()) error("Couldn't connect to webcam.\n");
@@ -96,6 +99,10 @@
det = in;
det_s = in_s;
+ cvNamedWindow("YOLO", CV_WINDOW_NORMAL);
+ cvMoveWindow("YOLO", 0, 0);
+ cvResizeWindow("YOLO", 1352, 1013);
+
while(1){
struct timeval tval_before, tval_after, tval_result;
gettimeofday(&tval_before, NULL);
@@ -118,7 +125,7 @@
}
}
#else
-extern "C" void demo_yolo(char *cfgfile, char *weightfile, float thresh){
+extern "C" void demo_yolo(char *cfgfile, char *weightfile, float thresh, int cam_index){
fprintf(stderr, "YOLO demo needs OpenCV for webcam images.\n");
}
#endif
--
Gitblit v1.10.0