9/24/2014

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>

Github
https://github.com/MareArts/AdaBoost-Face-Detection-test-using-OpenCV


#Tags
cvtColor, CascadeClassifier, CascadeClassifier_GPU, detectMultiScale,

13 comments:

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

    ReplyDelete
    Replies
    1. Do you use same opencv version 249?

      Delete
    2. This comment has been removed by the author.

      Delete
  2. opencv 2.4.11 visual studio 2013 and cuda 7.5 toolkit

    ReplyDelete
    Replies
    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.

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

      Delete
    3. Check your dll is 32bit or 64bit?
      and I uploaded source code on github
      https://github.com/MareArts/AdaBoost-Face-Detection-test-using-OpenCV

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

      Thank you.

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

      Delete
    5. Download opencv and set path in Visual Studio.
      refer to here -> http://study.marearts.com/2013/08/visual-studio-2012-opencv-246-setting.html

      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
      http://study.marearts.com/search/label/Opencv%20Build

      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
      http://study.marearts.com/search/label/ceemple


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

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

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

    ReplyDelete
    Replies
    1. see the opencv reference here -> http://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html#cascadeclassifier-detectmultiscale

      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.

      Delete