Update hog.cpp
Update according to vbystricky's comments
This commit is contained in:
@@ -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)
|
|||||||
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()
|
|||||||
|
|
||||||
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()
|
|||||||
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()
|
|||||||
// 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()
|
|||||||
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)
|
|||||||
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':
|
||||||
|
Reference in New Issue
Block a user