Explaining the AdaBoost Algorithms to non-technical people

前端 未结 3 872
后悔当初
后悔当初 2021-02-05 17:20

I\'ve been trying to understand the AdaBoost algorithm without much success. I\'m struggling with understanding the Viola Jones paper on Face Detection as an example.

Ca

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-05 17:41

    This is understandable. Most of the papers you can find on Internet retell Viola-Jones and Freund-Shapire papers which are foundation of AdaBoost applied for face recognition in OpenCV. And they mostly consist of difficult formulas and algorithms from several mathematical areas combined. Here is what can help you (short enough) -

    1 - It is used in object and, mostly, in face detection-recognition.The most popular and quite good C++ library is OpenCV from Intel originally. I take the part of Face detection in OpenCV, as an example.

    2 - First, a cascade of boosted classifiers working with sample rectangles ("features") is trained on sample of images with faces (called positive) and without faces (negative).

    From some Googled paper:

    "· Boosting refers to a general and provably effective method of producing a very accurate classifier by combining rough and moderately inaccurate rules of thumb.

    · It is based on the observation that finding many rough rules of thumb can be a lot easier than finding a single, highly accurate classifier.

    · To begin, we define an algorithm for finding the rules of thumb, which we call a weak learner.

    · The boosting algorithm repeatedly calls this weak learner, each time feeding it a different distribution over the training data (in AdaBoost).

    · Each call generates a weak classifier and we must combine all of these into a single classifier that, hopefully, is much more accurate than any one of the rules."

    During this process the images are scanned to determine the distinctive areas corresponding to certain part of every face. The complex calculation-hypothesis based algorithms are applied (which are not so difficult to understand once you get the main idea).

    This can take a week and the output is an XML file which contains the learned information on how to quickly detect the human face, say, in frontal position on any picture (it can be any object in other case).

    3 - After that you supply this file to OpenCV face detection program which runs quite fast with up to 99% positive rate (depending on conditions). As was mentioned here, the scanning speed can be increased greatly with technique known as "integral image".

    And finally, these are helpful sources - Object Detection in OpenCV and Generic Object Detection using AdaBoost from University of California, 2008.

提交回复
热议问题