亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

Jump to content

Viola–Jones object detection framework

From Wikipedia, the free encyclopedia

The Viola–Jones object detection framework is a machine learning object detection framework proposed in 2001 by Paul Viola and Michael Jones.[1][2] It was motivated primarily by the problem of face detection, although it can be adapted to the detection of other object classes.

In short, it consists of a sequence of classifiers. Each classifier is a single perceptron with several binary masks (Haar features). To detect faces in an image, a sliding window is computed over the image. For each image, the classifiers are applied. If at any point, a classifier outputs "no face detected", then the window is considered to contain no face. Otherwise, if all classifiers output "face detected", then the window is considered to contain a face.

The algorithm is efficient for its time, able to detect faces in 384 by 288 pixel images at 15 frames per second on a conventional 700 MHz Intel Pentium III. It is also robust, achieving high precision and recall.

While it has lower accuracy than more modern methods such as convolutional neural network, its efficiency and compact size (only around 50k parameters, compared to millions of parameters for typical CNN like DeepFace) means it is still used in cases with limited computational power. For example, in the original paper,[1] they reported that this face detector could run on the Compaq iPAQ at 2 fps (this device has a low power StrongARM without floating point hardware).

Problem description

[edit]

Face detection is a binary classification problem combined with a localization problem: given a picture, decide whether it contains faces, and construct bounding boxes for the faces.

To make the task more manageable, the Viola–Jones algorithm only detects full view (no occlusion), frontal (no head-turning), upright (no rotation), well-lit, full-sized (occupying most of the frame) faces in fixed-resolution images.

The restrictions are not as severe as they appear, as one can normalize the picture to bring it closer to the requirements for Viola-Jones.

  • any image can be scaled to a fixed resolution
  • for a general picture with a face of unknown size and orientation, one can perform blob detection to discover potential faces, then scale and rotate them into the upright, full-sized position.
  • the brightness of the image can be corrected by white balancing.
  • the bounding boxes can be found by sliding a window across the entire picture, and marking down every window that contains a face.
    • This would generally detect the same face multiple times, for which duplication removal methods, such as non-maximal suppression, can be used.

The "frontal" requirement is non-negotiable, as there is no simple transformation on the image that can turn a face from a side view to a frontal view. However, one can train multiple Viola-Jones classifiers, one for each angle: one for frontal view, one for 3/4 view, one for profile view, a few more for the angles in-between them. Then one can at run time execute all these classifiers in parallel to detect faces at different view angles.

The "full-view" requirement is also non-negotiable, and cannot be simply dealt with by training more Viola-Jones classifiers, since there are too many possible ways to occlude a face.

Components of the framework

[edit]

A full presentation of the algorithm is in.[3]

Consider an image of fixed resolution . Our task is to make a binary decision: whether it is a photo of a standardized face (frontal, well-lit, etc) or not.

Viola–Jones is essentially a boosted feature learning algorithm, trained by running a modified AdaBoost algorithm on Haar feature classifiers to find a sequence of classifiers . Haar feature classifiers are crude, but allows very fast computation, and the modified AdaBoost constructs a strong classifier out of many weak ones.

At run time, a given image is tested on sequentially. If at any point, , the algorithm immediately returns "no face detected". If all classifiers return 1, then the algorithm returns "face detected". For this reason, the Viola-Jones classifier is also called "Haar cascade classifier".

Haar feature classifiers

[edit]

Consider a perceptron defined by two variables . It takes in an image of fixed resolution, and returns

Example rectangle features shown relative to the enclosing detection window

A Haar feature classifier is a perceptron with a very special kind of that makes it extremely cheap to calculate. Namely, if we write out the matrix , we find that it takes only three possible values , and if we color the matrix with white on , black on , and transparent on , the matrix is in one of the 5 possible patterns shown on the right.

Each pattern must also be symmetric to x-reflection and y-reflection (ignoring the color change), so for example, for the horizontal white-black feature, the two rectangles must be of the same width. For the vertical white-black-white feature, the white rectangles must be of the same height, but there is no restriction on the black rectangle's height.

Haar Feature that looks similar to the bridge of the nose is applied onto the face
Haar Feature that looks similar to the eye region which is darker than the upper cheeks is applied onto a face

Rationale for Haar features

[edit]

The Haar features used in the Viola-Jones algorithm are a subset of the more general Haar basis functions, which have been used previously in the realm of image-based object detection.[4]

While crude compared to alternatives such as steerable filters, Haar features are sufficiently complex to match features of typical human faces. For example:

  • The eye region is darker than the upper-cheeks.
  • The nose bridge region is brighter than the eyes.

Composition of properties forming matchable facial features:

  • Location and size: eyes, mouth, bridge of nose
  • Value: oriented gradients of pixel intensities

Further, the design of Haar features allows for efficient computation of using only constant number of additions and subtractions, regardless of the size of the rectangular features, using the summed-area table.

Learning and using a Viola–Jones classifier

[edit]

Choose a resolution for the images to be classified. In the original paper, they recommended .

Learning

[edit]

Collect a training set, with some containing faces, and others not containing faces. Perform a certain modified AdaBoost training on the set of all Haar feature classifiers of dimension , until a desired level of precision and recall is reached. The modified AdaBoost algorithm would output a sequence of Haar feature classifiers .

The details of the modified AdaBoost algorithm is detailed below.

Using

[edit]

To use a Viola-Jones classifier with on an image , compute sequentially. If at any point, , the algorithm immediately returns "no face detected". If all classifiers return 1, then the algorithm returns "face detected".

Learning algorithm

[edit]

The speed with which features may be evaluated does not adequately compensate for their number, however. For example, in a standard 24x24 pixel sub-window, there are a total of M = 162336[5] possible features, and it would be prohibitively expensive to evaluate them all when testing an image. Thus, the object detection framework employs a variant of the learning algorithm AdaBoost to both select the best features and to train classifiers that use them. This algorithm constructs a "strong" classifier as a linear combination of weighted simple “weak” classifiers.

Each weak classifier is a threshold function based on the feature .

The threshold value and the polarity are determined in the training, as well as the coefficients .

Here a simplified version of the learning algorithm is reported:[6]

Input: Set of N positive and negative training images with their labels . If image i is a face , if not .

  1. Initialization: assign a weight to each image i.
  2. For each feature with
    1. Renormalize the weights such that they sum to one.
    2. Apply the feature to each image in the training set, then find the optimal threshold and polarity that minimizes the weighted classification error. That is where
    3. Assign a weight to that is inversely proportional to the error rate. In this way best classifiers are considered more.
    4. The weights for the next iteration, i.e. , are reduced for the images i that were correctly classified.
  3. Set the final classifier to

Cascade architecture

[edit]
  • On average only 0.01% of all sub-windows are positive (faces)
  • Equal computation time is spent on all sub-windows
  • Must spend most time only on potentially positive sub-windows.
  • A simple 2-feature classifier can achieve almost 100% detection rate with 50% FP rate.
  • That classifier can act as a 1st layer of a series to filter out most negative windows
  • 2nd layer with 10 features can tackle “harder” negative-windows which survived the 1st layer, and so on...
  • A cascade of gradually more complex classifiers achieves even better detection rates. The evaluation of the strong classifiers generated by the learning process can be done quickly, but it isn't fast enough to run in real-time. For this reason, the strong classifiers are arranged in a cascade in order of complexity, where each successive classifier is trained only on those selected samples which pass through the preceding classifiers. If at any stage in the cascade a classifier rejects the sub-window under inspection, no further processing is performed and continue on searching the next sub-window. The cascade therefore has the form of a degenerate tree. In the case of faces, the first classifier in the cascade – called the attentional operator – uses only two features to achieve a false negative rate of approximately 0% and a false positive rate of 40%.[7] The effect of this single classifier is to reduce by roughly half the number of times the entire cascade is evaluated.

In cascading, each stage consists of a strong classifier. So all the features are grouped into several stages where each stage has certain number of features.

The job of each stage is to determine whether a given sub-window is definitely not a face or may be a face. A given sub-window is immediately discarded as not a face if it fails in any of the stages.

A simple framework for cascade training is given below:

  • f = the maximum acceptable false positive rate per layer.
  • d = the minimum acceptable detection rate per layer.
  • Ftarget = target overall false positive rate.
  • P = set of positive examples.
  • N = set of negative examples.
F(0) = 1.0; D(0) = 1.0; i = 0

while F(i) > Ftarget
    increase i
    n(i) = 0; F(i)= F(i-1)

    while F(i) > f × F(i-1)
        increase n(i)
        use P and N to train a classifier with n(i) features using AdaBoost
        Evaluate current cascaded classifier on validation set to determine F(i) and D(i)
        decrease threshold for the ith classifier (i.e. how many weak classifiers need to accept for strong classifier to accept)
            until the current cascaded classifier has a detection rate of at least d × D(i-1) (this also affects F(i))
    N = ?
    if F(i) > Ftarget then 
        evaluate the current cascaded detector on the set of non-face images 
        and put any false detections into the set N.

The cascade architecture has interesting implications for the performance of the individual classifiers. Because the activation of each classifier depends entirely on the behavior of its predecessor, the false positive rate for an entire cascade is:

Similarly, the detection rate is:

Thus, to match the false positive rates typically achieved by other detectors, each classifier can get away with having surprisingly poor performance. For example, for a 32-stage cascade to achieve a false positive rate of 10?6, each classifier need only achieve a false positive rate of about 65%. At the same time, however, each classifier needs to be exceptionally capable if it is to achieve adequate detection rates. For example, to achieve a detection rate of about 90%, each classifier in the aforementioned cascade needs to achieve a detection rate of approximately 99.7%.[8]

Using Viola–Jones for object tracking

[edit]

In videos of moving objects, one need not apply object detection to each frame. Instead, one can use tracking algorithms like the KLT algorithm to detect salient features within the detection bounding boxes and track their movement between frames. Not only does this improve tracking speed by removing the need to re-detect objects in each frame, but it improves the robustness as well, as the salient features are more resilient than the Viola-Jones detection framework to rotation and photometric changes.[9]

References

[edit]
  1. ^ a b Viola, P.; Jones, M. (2001). . Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. CVPR 2001. Vol. 1. IEEE Comput. Soc. doi:10.1109/cvpr.2001.990517. ISBN 0-7695-1272-0. S2CID 2715202.
  2. ^ Viola, Paul; Jones, Michael J. (May 2004). . International Journal of Computer Vision. 57 (2): 137–154. doi:10.1023/b:visi.0000013087.49260.fb. ISSN 0920-5691. S2CID 2796017.
  3. ^ Wang, Yi-Qing (2014-06-26). . Image Processing on Line. 4: 128–148. doi:10.5201/ipol.2014.104. ISSN 2105-1232.
  4. ^ C. Papageorgiou, M. Oren and T. Poggio. A General Framework for Object Detection. International Conference on Computer Vision, 1998
  5. ^ . stackoverflow.com. Retrieved 2017-06-27.
  6. ^ R. Szeliski, Computer Vision, algorithms and applications, Springer
  7. ^ Viola, Jones: Robust Real-time Object Detection, IJCV 2001 See page 11.
  8. ^ Torbert, Shane (2016). Applied Computer Science (2nd ed.). Springer. pp. 122–131.
  9. ^ . Archived from the original on 2020-08-03. Retrieved 2014-12-18.
[edit]

Implementations

[edit]
Retrieved from "
亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

    
    

    9000px;">

      
      

      99久久精品国产网站| 国产精品久久久久久久浪潮网站| 丰满少妇在线播放bd日韩电影| 狠狠狠色丁香婷婷综合久久五月| 暴力调教一区二区三区| 久久综合久久鬼色| 久久综合狠狠综合| 欧美一区午夜精品| 国产精品青草久久| 亚洲永久精品大片| 成人免费视频免费观看| 欧美性猛片aaaaaaa做受| 欧美精品粉嫩高潮一区二区| 日韩一区二区影院| 国产精品久久午夜夜伦鲁鲁| 麻豆专区一区二区三区四区五区| 亚洲欧美在线视频| 蜜臀av国产精品久久久久| 99久久99久久综合| 久久久久久久久久久久久女国产乱| 一区二区三区成人在线视频| 一级特黄大欧美久久久| 欧美久久久久中文字幕| 88在线观看91蜜桃国自产| 加勒比av一区二区| 老司机精品视频在线| 欧美视频一二三区| 中文字幕在线观看不卡| 国产精品亚洲第一区在线暖暖韩国| 成人sese在线| 国产99一区视频免费| 国产成人免费视频| 日本在线不卡视频| 欧美主播一区二区三区美女| 精品国产百合女同互慰| 亚洲成av人片一区二区| 色综合久久久久综合体桃花网| 国产亚洲精品aa午夜观看| 国内偷窥港台综合视频在线播放| 欧美一区二区黄色| 日韩激情一二三区| 日韩欧美的一区| 久久99精品久久久久| 久久综合久久综合九色| 国产一区二区三区精品欧美日韩一区二区三区 | 在线精品亚洲一区二区不卡| 亚洲欧美怡红院| 成人少妇影院yyyy| 成人免费一区二区三区视频| 99久久久国产精品免费蜜臀| 亚洲裸体xxx| 欧美色综合影院| 日韩中文字幕区一区有砖一区 | 成人综合婷婷国产精品久久免费| 久久人人97超碰com| 国产一区二区不卡在线| 久久精品亚洲精品国产欧美kt∨| 国产成人免费视频| 一区二区在线观看免费视频播放| 欧美性色黄大片| 国产资源在线一区| 亚洲美女少妇撒尿| 欧美精品九九99久久| 国产一区二区福利视频| 日韩理论在线观看| 日韩欧美另类在线| k8久久久一区二区三区| 三级不卡在线观看| 国产精品欧美久久久久一区二区| 欧美调教femdomvk| 国产老妇另类xxxxx| 一区二区三区在线观看动漫| 日韩视频一区二区| 99热精品国产| 日本三级韩国三级欧美三级| 精品粉嫩aⅴ一区二区三区四区 | 成人精品视频一区二区三区| 亚洲专区一二三| 国产视频不卡一区| 在线精品观看国产| 国产在线精品一区二区不卡了 | 日本不卡视频在线观看| 欧美激情在线一区二区三区| 欧日韩精品视频| 国产一区二区三区久久久| 亚洲人成亚洲人成在线观看图片| 日韩精品资源二区在线| 一本色道**综合亚洲精品蜜桃冫| 美美哒免费高清在线观看视频一区二区 | 9久草视频在线视频精品| 三级欧美韩日大片在线看| 国产精品美女久久久久久| 日韩三级电影网址| 欧美视频在线一区| 99精品国产视频| 国产成人综合在线观看| 精品一区二区三区av| 偷偷要91色婷婷| 亚洲国产欧美在线人成| ...av二区三区久久精品| 久久久精品免费网站| 精品人在线二区三区| 4438x亚洲最大成人网| 欧美一a一片一级一片| 色综合激情久久| 91免费国产在线| 91麻豆福利精品推荐| 懂色av中文一区二区三区| 国产精品456露脸| 精品一区二区三区不卡| 国精品**一区二区三区在线蜜桃| 美女性感视频久久| 蜜臀av性久久久久蜜臀aⅴ| 美女免费视频一区| 日本美女一区二区三区视频| 亚洲成精国产精品女| 一级精品视频在线观看宜春院 | 欧美性猛片xxxx免费看久爱| 欧美性受xxxx| 欧美一区二区三区四区在线观看| 欧美日韩精品一区二区三区四区| 精品视频999| 日韩一区二区三区av| 欧美不卡一区二区三区四区| 欧美mv和日韩mv国产网站| 亚洲精品在线电影| 日韩精品在线一区二区| 精品国产乱码久久久久久闺蜜| 久久午夜国产精品| 国产精品第一页第二页第三页| 亚洲欧美日韩中文字幕一区二区三区 | 久久精子c满五个校花| 久久精品视频免费| 中文字幕一区日韩精品欧美| 亚洲欧美电影院| 亚洲成人自拍偷拍| 国产一区久久久| 色综合天天综合网天天看片| 在线成人av网站| 久久久精品天堂| 亚洲日本在线视频观看| 午夜电影一区二区| 国产又黄又大久久| 成人国产亚洲欧美成人综合网 | 日韩一区二区三免费高清| 欧美激情资源网| 午夜亚洲国产au精品一区二区| 国产麻豆精品久久一二三| 91精品福利视频| 26uuu欧美| 亚洲一二三区在线观看| 国产精品乡下勾搭老头1| 日本韩国欧美在线| 精品国产一区二区在线观看| 综合电影一区二区三区| 秋霞影院一区二区| eeuss鲁一区二区三区| 91精品综合久久久久久| 椎名由奈av一区二区三区| 久久国产精品色| 欧美午夜在线一二页| 久久久久久电影| 天天综合网 天天综合色| www.一区二区| 国产亚洲精品久| 蜜桃av噜噜一区二区三区小说| 99久久精品国产麻豆演员表| 久久综合色天天久久综合图片| 亚洲va天堂va国产va久| 色哟哟国产精品免费观看| 日本一区二区三区dvd视频在线 | 亚洲超碰精品一区二区| 极品美女销魂一区二区三区| 4438x亚洲最大成人网| 亚洲一卡二卡三卡四卡无卡久久| av网站一区二区三区| 久久精品在这里| 久久av中文字幕片| 日韩欧美一二三四区| 日韩二区三区四区| 欧美年轻男男videosbes| 亚洲小说欧美激情另类| 色国产精品一区在线观看| |精品福利一区二区三区| 波多野结衣一区二区三区 | 欧美韩国一区二区| 成人黄色软件下载| 日本一二三不卡| 高清av一区二区| 国产欧美日韩在线| 成人蜜臀av电影| 最新国产の精品合集bt伙计| av电影一区二区| 亚洲少妇30p| 欧美性感一类影片在线播放| 综合网在线视频| 欧美日韩亚洲高清一区二区| 亚洲成人7777| 久久综合九色综合久久久精品综合| 极品销魂美女一区二区三区|