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