OpenCV face detection using adaboost example source code and cpu vs gpu detection speed compare (CascadeClassifier, CascadeClassifier_GPU, detectMultiScale)

OpenCV has AdaBoost algorithm function.
And gpu version also is provided.

For using detection, we prepare the trained xml file.
Although we can train some target using adaboost algorithm in opencv functions, there are several trained xml files in the opencv folder. (mostly in opencv/sources/data/haarcascades )

I will use "haarcascade_frontalface_alt.xml" file for face detection example.

gpu and cpu both versions use xml file.

more detail refer to this source code.
The source code is included 2 version of cpu and gpu.

result is ..
gpu is faster than cpu version (but exactly they may not be same condition..)
blue boxes are result of cpu.
red boxes are results of gpu.
The results are not important because it can be different by parameters values.

<code start>

<code end>


cvtColor, CascadeClassifier, CascadeClassifier_GPU, detectMultiScale,


  1. gpu::CascadeClassifier_GPU ada_gpu; having error in this line and

    1. Do you use same opencv version 249?

    2. This comment has been removed by the author.

  2. opencv 2.4.11 visual studio 2013 and cuda 7.5 toolkit

    1. I think there are about 3 cause.

      1. the parameter changed of the function in 2.4.11
      2. lib, dll, header file including missing.
      3. code error(user fault)

      Check try gain?
      Thank you.

    2. getting an error related to no gpu support even after successful cmake

    3. Check your dll is 32bit or 64bit?
      and I uploaded source code on github

      The code is run well. I have tested just now.

      Thank you.

    4. thank you so much but i would like to know you opencv settings with visual studio and gpu

    5. Download opencv and set path in Visual Studio.
      refer to here ->

      But you want to use GPU, then build library self.
      Set build option using cmake, and build in VS then dll is made.
      refer to here

      but simple method is to use vs plug in. gpu use also possible
      who made opecv plug to use simple in vs
      refer to here

  3. I have problem to compile, I copy the "haarcascade_frontalface_alt.xml" file in a specific location?

    1. xml file located in project folder or bin folder.
      Thank you.

  4. how do we optimize gpu functions? In my case gpu took more time in detection of faces than cpu.

    1. see the opencv reference here ->

      I think that gpu will be faster, lager image and searching face more closely..
      And should gpu performance good? we need expensive graphic card!!
      Thank you.


Post a Comment

Popular posts from this blog

(OpenCV Study) Background subtractor MOG, MOG2, GMG example source code (BackgroundSubtractorMOG, BackgroundSubtractorMOG2, BackgroundSubtractorGMG)

OpenCV Stitching example (Stitcher class, Panorama)

Example source code of extract HOG feature from images, save descriptor values to xml file, using opencv (using HOGDescriptor )

Real-time N camera stitching Class.

Optical Flow sample source code using OpenCV

OpenCV Drawing Example, (line, circle, rectangle, ellipse, polyline, fillConvexPoly, putText, drawContours)

Video Stabilization example source code, (using cvFindHomography, cvWarpPerspective functions in openCV)

SICK LMS511 sensor data acquisition interface (source code, C++/MFC)

8 point algorithm (Matlab source code) / The method to get the Fundamental Matrix and the Essential matrix

Image warping (using opencv findHomography, warpPerspective)