Commit 2b52bb09 authored by Chuanbo Weng's avatar Chuanbo Weng

Update hog.cpp

Update according to vbystricky's comments
parent 7452eef6
...@@ -44,8 +44,6 @@ private: ...@@ -44,8 +44,6 @@ private:
//Args args; //Args args;
bool running; bool running;
bool make_gray; bool make_gray;
bool use_ocl;
bool ocl_switch;
double scale; double scale;
double resize_scale; double resize_scale;
int win_width; int win_width;
...@@ -136,9 +134,6 @@ App::App(CommandLineParser& cmd) ...@@ -136,9 +134,6 @@ App::App(CommandLineParser& cmd)
gamma_corr = true; gamma_corr = true;
write_once = false; write_once = false;
use_ocl = ocl::useOpenCL();
ocl_switch = true;
cout << "Group threshold: " << gr_threshold << endl; cout << "Group threshold: " << gr_threshold << endl;
cout << "Levels number: " << nlevels << endl; cout << "Levels number: " << nlevels << endl;
cout << "Win width: " << win_width << endl; cout << "Win width: " << win_width << endl;
...@@ -160,6 +155,7 @@ void App::run() ...@@ -160,6 +155,7 @@ void App::run()
HOGDescriptor hog(win_size, Size(16, 16), Size(8, 8), Size(8, 8), 9, 1, -1, HOGDescriptor hog(win_size, Size(16, 16), Size(8, 8), Size(8, 8), 9, 1, -1,
HOGDescriptor::L2Hys, 0.2, gamma_corr, cv::HOGDescriptor::DEFAULT_NLEVELS); HOGDescriptor::L2Hys, 0.2, gamma_corr, cv::HOGDescriptor::DEFAULT_NLEVELS);
hog.setSVMDetector( HOGDescriptor::getDaimlerPeopleDetector() );
while (running) while (running)
{ {
...@@ -191,17 +187,13 @@ void App::run() ...@@ -191,17 +187,13 @@ void App::run()
throw runtime_error(string("can't open image file: " + img_source)); throw runtime_error(string("can't open image file: " + img_source));
} }
UMat img_aux, img;
Mat img_to_show; Mat img_to_show;
// Iterate over all frames // Iterate over all frames
while (running && !frame.empty()) while (running && !frame.empty())
{ {
workBegin(); workBegin();
if(ocl_switch){
hog.setSVMDetector( HOGDescriptor::getDaimlerPeopleDetector() );
ocl_switch = false;
}
UMat img_aux, img;
// Change format of the image // Change format of the image
if (make_gray) cvtColor(frame, img_aux, COLOR_BGR2GRAY ); if (make_gray) cvtColor(frame, img_aux, COLOR_BGR2GRAY );
...@@ -221,12 +213,8 @@ void App::run() ...@@ -221,12 +213,8 @@ void App::run()
// Perform HOG classification // Perform HOG classification
hogWorkBegin(); hogWorkBegin();
if(use_ocl) hog.detectMultiScale(img, found, hit_threshold, win_stride,
hog.detectMultiScale(img, found, hit_threshold, win_stride, Size(0, 0), scale, gr_threshold);
Size(0, 0), scale, gr_threshold);
else
hog.detectMultiScale(img.getMat(ACCESS_READ), found, hit_threshold, win_stride,
Size(0, 0), scale, gr_threshold);
hogWorkEnd(); hogWorkEnd();
...@@ -237,7 +225,7 @@ void App::run() ...@@ -237,7 +225,7 @@ void App::run()
rectangle(img_to_show, r.tl(), r.br(), Scalar(0, 255, 0), 3); rectangle(img_to_show, r.tl(), r.br(), Scalar(0, 255, 0), 3);
} }
putText(img_to_show, use_ocl ? "Mode: OpenCL" : "Mode: CPU", Point(5, 25), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2); putText(img_to_show, ocl::useOpenCL() ? "Mode: OpenCL" : "Mode: CPU", Point(5, 25), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2);
putText(img_to_show, "FPS (HOG only): " + hogWorkFps(), Point(5, 65), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2); putText(img_to_show, "FPS (HOG only): " + hogWorkFps(), Point(5, 65), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2);
putText(img_to_show, "FPS (total): " + workFps(), Point(5, 105), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2); putText(img_to_show, "FPS (total): " + workFps(), Point(5, 105), FONT_HERSHEY_SIMPLEX, 1., Scalar(255, 100, 0), 2);
imshow("opencv_hog", img_to_show); imshow("opencv_hog", img_to_show);
...@@ -284,9 +272,7 @@ void App::handleKey(char key) ...@@ -284,9 +272,7 @@ void App::handleKey(char key)
case 'm': case 'm':
case 'M': case 'M':
ocl::setUseOpenCL(!cv::ocl::useOpenCL()); ocl::setUseOpenCL(!cv::ocl::useOpenCL());
ocl_switch = true; cout << "Switched to " << (ocl::useOpenCL() ? "OpenCL enabled" : "CPU") << " mode\n";
use_ocl = ocl::useOpenCL();
cout << "Switched to " << (use_ocl ? "OpenCL enabled" : "CPU") << " mode\n";
break; break;
case 'g': case 'g':
case 'G': case 'G':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment