1 Munther Abualkibash University of Bridgeport, CT.

Slides:



Advertisements
Similar presentations
EE462 MLCV Lecture 5-6 Object Detection – Boosting Tae-Kyun Kim.
Advertisements

Rapid Object Detection using a Boosted Cascade of Simple Features Paul Viola, Michael Jones Conference on Computer Vision and Pattern Recognition 2001.
Rapid Object Detection using a Boosted Cascade of Simple Features Paul Viola, Michael Jones Conference on Computer Vision and Pattern Recognition 2001.
Face detection Behold a state-of-the-art face detector! (Courtesy Boris Babenko)Boris Babenko.
Face Detection & Synthesis using 3D Models & OpenCV Learning Bit by Bit Don Miller ITP, Spring 2010.
AdaBoost & Its Applications
Face detection Many slides adapted from P. Viola.
Cos 429: Face Detection (Part 2) Viola-Jones and AdaBoost Guest Instructor: Andras Ferencz (Your Regular Instructor: Fei-Fei Li) Thanks to Fei-Fei Li,
EE462 MLCV Lecture 5-6 Object Detection – Boosting Tae-Kyun Kim.
1 Fast Asymmetric Learning for Cascade Face Detection Jiaxin Wu, and Charles Brubaker IEEE PAMI, 2008 Chun-Hao Chang 張峻豪 2009/12/01.
The Viola/Jones Face Detector Prepared with figures taken from “Robust real-time object detection” CRL 2001/01, February 2001.
The Viola/Jones Face Detector (2001)
HCI Final Project Robust Real Time Face Detection Paul Viola, Michael Jones, Robust Real-Time Face Detetion, International Journal of Computer Vision,
Rapid Object Detection using a Boosted Cascade of Simple Features
UPM, Faculty of Computer Science & IT, A robust automated attendance system using face recognition techniques PhD proposal; May 2009 Gawed Nagi.
Robust Real-time Object Detection by Paul Viola and Michael Jones ICCV 2001 Workshop on Statistical and Computation Theories of Vision Presentation by.
Face detection and recognition Many slides adapted from K. Grauman and D. Lowe.
A Robust Real Time Face Detection. Outline  AdaBoost – Learning Algorithm  Face Detection in real life  Using AdaBoost for Face Detection  Improvements.
Adaboost and its application
A Robust Real Time Face Detection. Outline  AdaBoost – Learning Algorithm  Face Detection in real life  Using AdaBoost for Face Detection  Improvements.
Robust Real-Time Object Detection Paul Viola & Michael Jones.
Viola and Jones Object Detector Ruxandra Paun EE/CS/CNS Presentation
Dynamic Cascades for Face Detection 第三組 馮堃齊、莊以暘. 2009/01/072 Outline Introduction Dynamic Cascade Boosting with a Bayesian Stump Experiments Conclusion.
Foundations of Computer Vision Rapid object / face detection using a Boosted Cascade of Simple features Presented by Christos Stoilas Rapid object / face.
F ACE D ETECTION FOR A CCESS C ONTROL By Dmitri De Klerk Supervisor: James Connan.
Face Detection CSE 576. Face detection State-of-the-art face detection demo (Courtesy Boris Babenko)Boris Babenko.
FACE DETECTION AND RECOGNITION By: Paranjith Singh Lohiya Ravi Babu Lavu.
Vision-Based Biometric Authentication System by Padraic o hIarnain Final Year Project Presentation.
Face Detection using the Viola-Jones Method
Human tracking and counting using the KINECT range sensor based on Adaboost and Kalman Filter ISVC 2013.
Using Statistic-based Boosting Cascade Weilong Yang, Wei Song, Zhigang Qiao, Michael Fang 1.
EADS DS / SDC LTIS Page 1 7 th CNES/DLR Workshop on Information Extraction and Scene Understanding for Meter Resolution Image – 29/03/07 - Oberpfaffenhofen.
Object Detection Using the Statistics of Parts Presented by Nicholas Chan – Advanced Perception Robust Real-time Object Detection Henry Schneiderman.
Detecting Pedestrians Using Patterns of Motion and Appearance Paul Viola Microsoft Research Irfan Ullah Dept. of Info. and Comm. Engr. Myongji University.
Window-based models for generic object detection Mei-Chen Yeh 04/24/2012.
Sign Classification Boosted Cascade of Classifiers using University of Southern California Thang Dinh Eunyoung Kim
Lecture 29: Face Detection Revisited CS4670 / 5670: Computer Vision Noah Snavely.
Automatic Image Anonymizer Alex Brettingen James Esposito.
DIEGO AGUIRRE COMPUTER VISION INTRODUCTION 1. QUESTION What is Computer Vision? 2.
Robust Real-time Face Detection by Paul Viola and Michael Jones, 2002 Presentation by Kostantina Palla & Alfredo Kalaitzis School of Informatics University.
REAL TIME FACE DETECTION
Stable Multi-Target Tracking in Real-Time Surveillance Video
Tony Jebara, Columbia University Advanced Machine Learning & Perception Instructor: Tony Jebara.
Face Detection Ying Wu Electrical and Computer Engineering Northwestern University, Evanston, IL
Automated Solar Cavity Detection
Robust Real Time Face Detection
Adaboost and Object Detection Xu and Arun. Principle of Adaboost Three cobblers with their wits combined equal Zhuge Liang the master mind. Failure is.
Lecture 09 03/01/2012 Shai Avidan הבהרה: החומר המחייב הוא החומר הנלמד בכיתה ולא זה המופיע / לא מופיע במצגת.
The Viola/Jones Face Detector A “paradigmatic” method for real-time object detection Training is slow, but detection is very fast Key ideas Integral images.
Bibek Jang Karki. Outline Integral Image Representation of image in summation format AdaBoost Ranking of features Combining best features to form strong.
Learning to Detect Faces A Large-Scale Application of Machine Learning (This material is not in the text: for further information see the paper by P.
Hand Gesture Recognition Using Haar-Like Features and a Stochastic Context-Free Grammar IEEE 高裕凱 陳思安.
FACE DETECTION : AMIT BHAMARE. WHAT IS FACE DETECTION ? Face detection is computer based technology which detect the face in digital image. Trivial task.
Classification and Prediction: Ensemble Methods Bamshad Mobasher DePaul University Bamshad Mobasher DePaul University.
Notes on HW 1 grading I gave full credit as long as you gave a description, confusion matrix, and working code Many people’s descriptions were quite short.
A Brief Introduction on Face Detection Mei-Chen Yeh 04/06/2010 P. Viola and M. J. Jones, Robust Real-Time Face Detection, IJCV 2004.
Project Overview CSE 6367 – Computer Vision Vassilis Athitsos University of Texas at Arlington.
Face detection Many slides adapted from P. Viola.
Hand Detection with a Cascade of Boosted Classifiers Using Haar-like Features Qing Chen Discover Lab, SITE, University of Ottawa May 2, 2006.
AdaBoost Algorithm and its Application on Object Detection Fayin Li.
By Subhasis Dasgupta Asst Professor Praxis Business School, Kolkata Classification Modeling Decision Tree (Part 2)
Reading: R. Schapire, A brief introduction to boosting
2. Skin - color filtering.
License Plate Detection
Session 7: Face Detection (cont.)
Cos 429: Face Detection (Part 2) Viola-Jones and AdaBoost Guest Instructor: Andras Ferencz (Your Regular Instructor: Fei-Fei Li) Thanks to Fei-Fei.
ADABOOST(Adaptative Boosting)
Lecture 29: Face Detection Revisited
Outline System architecture Current work Experiments Next Steps
ECE738 Final Project Face Detection Baseline
Presentation transcript:

1 Munther Abualkibash University of Bridgeport, CT

Outline 2 1.Introduction 2.Contributions of the Research 3.AdaBoost Algorithm 4.Parallel and Distributed AdaBoost Algorithm 5.Extracting Optimized Subset 6.Implementing a Cascade Structure based on an Optimized Small Training Set 7.Retraining 8.Results 9.Conclusion

Introduction 3 Object detection is an important area of research in computer vision. One of the most popular approaches for object detection is called Boosting. Boosting has been applied to many different object detection implementations such as face, car, and airplane detection.

4 One of the most significant contributions to object detection work is from Viola and Jones [1]. Introduction [1] P. Viola and M. Jones, "Robust real-time face detection," in Computer Vision, ICCV Proceedings. Eighth IEEE

5 Viola and Jones’ algorithm 1.Based on a variation of boosting technique called AdaBoost. 2.Employs a concept called integral image that greatly reduces the computations in the detection algorithm. Introduction First image Ref: Second image Ref:

6 3.Viola and Jones algorithm uses a cascade of classifiers in an effective manner to obtain high real- time face detection accuracy. Introduction Image Ref:

7 Viola and Jones’ algorithm uses a large dataset for training AdaBoost to detect objects. This improves detection accuracy; however, the training execution time can be high. Research Problem and Scope Cont…

If the system fails to detect a valid object, there should be a methodology by which the system can be updated by retraining instantly. There is a need for a system that can be retrained in near real-time so that the detection rate can be enhanced. Building an entire framework to allow for an easy update in case of misclassified data is highly needed. 8 Introduction

Contributions of the Research 9 We build a generalized object detection framework such that the system can efficiently adapt to misclassified data and be retrained within a few minutes or less.

10 We reduce the training execution time through two major contributions: 1.A highly parallel and distributed AdaBoost algorithm that exploits the multiple cores in a CPU via light weight threads is developed. It further uses multiple machines to achieve high scalability, resulting in training execution time of a few minutes, rather than days. 2.Development of a methodology to create a much smaller optimized training subset than is normally used, in order to reduce the training execution time further. Contributions of the Research Cont… Image Ref:

11 Finally, we incorporate our parallel and distributed AdaBoost algorithm along with the optimized training subset into a generalized object detection framework. This efficiently adapts and can be retrained when it encounters misclassified data. We demonstrate the usefulness of our adaptive framework by providing detailed testing on face and car detection. Contributions of the Research Cont…

An important algorithm in machine learning and is being widely used in object detection. Works by iteratively selecting the best among weak classifiers, and then combines several weak classifiers to obtain a strong classifier. AdaBoost Algorithm 12 Image Ref:

It has proven to be very effective, but: Its learning execution time can be quite long depending upon the application. e.g., in face detection, the learning time can be several days. AdaBoost Algorithm Cont… 13

14 AdaBoost Algorithm Cont… Pseudocode Ref : P. Viola and M. Jones, "Robust real-time face detection," in Computer Vision, ICCV Proceedings. Eighth IEEE

15 AdaBoost Algorithm Cont… Pseudocode Ref : P. Viola and M. Jones, "Robust real-time face detection," in Computer Vision, ICCV Proceedings. Eighth IEEE

Five types of Haar features have been used in AdaBoost. (a) Two Rectangle Horizontal and Vertical (b) Three Rectangle Horizontal and Vertical (c) Four Rectangle Haar Features 16 Figure 2 Five rectangular features. Figure (a) shows two rectangle horizontal and vertical features, figure (b) shows three rectangle horizontal and vertical features, and figure (c) shows a four rectangle feature

For faces, we have used images of size 24x24 pixels. Based on this size: 2Rec H = 43,200 features 2Rec V = 43,200 features 3Rec H = 27,600 features 3Rec V = 27,600 features 4 Rec = 20,736 features Total = 162,336 features 17 Haar Features Cont…

For example: in 2Rec V, the smallest feature size is 1 x 2. Then the size is increased until reaching the maximum size 24 x Haar Features Cont… Total of 43,200 features

We have used 4,916 faces and 7,960 non-faces. Total of all images = 12,876 For each image there is 162,336 features. There are 2,090,238,336 data points from the features in this training set. As a result, a very large amount of data has to be used in AdaBoost. 19 Haar Features Cont…

Parallel and Distributed AdaBoost Algorithm 20 Our parallel approach speeds up the execution time by efficiently parallelizing the AdaBoost algorithm. We run the main computational part of AdaBoost in parallel, using Task Parallel Library (TPL), which is a built- in library in the Microsoft.NET framework. The advantage of using TPL is apparent in multi-core CPUs where the declared parallel workload is automatically distributed between the different CPU cores. This is done by creating light weight threads called tasks.

To further improve the execution time of AdaBoost, we use web services to run parallel AdaBoost on multiple workstations in a distributed manner. 21 Parallel and Distributed AdaBoost Algorithm Cont…

Our implementation of the Parallel and Distributed AdaBoost Algorithm 22 We implement a four-way approach to get results in the shortest possible time compared to the sequential approach: 1.Sequential algorithm 2.Parallel on one machine 3.Web services and parallel execution on one hierarchal level 4.Web services and parallel execution on two hierarchal levels 5.Web services and parallel execution on one hierarchal level and N slave nodes

Parallel execution on a single machine 23 All features are grouped on the same machine based on type, Three rectangle horizontal. Three rectangle vertical. Two rectangle horizontal. Two rectangle vertical. Four rectangle. Each group is uploaded to the system memory in parallel. Once all of these have been loaded, AdaBoost rounds are started.

Web Services and Parallel execution on one hierarchal level 24 Each group of features is distributed to a separate PC. Since five feature types are exist, five PCs are used for feature calculations. The master workstation coordinates the five PCs. Figure 3 One hierarchal level for Web Services and Parallel AdaBoost, based on master and five slaves (Total of six PCs)

Web Services and Parallel execution on two hierarchal Levels 25 The previous technique divided the work based on feature type. Now, we further distribute the calculations in a feature type to another set of machines in the next hierarchical level. Figure 4 Two hierarchal level for Web Services and Parallel AdaBoost, based on master and five sub-master and 3 slaves for each sub-master (Total of twenty one PCs)

Web Services and parallel execution on one hierarchal level with N number of slave nodes 26 The previous techniques divided the work based on feature type. Now, we further distribute the work to all slave nodes in balance, where each node will receive approximately the same number of features. Figure 5 One hierarchal level for Web Services and Parallel AdaBoost, based on master and N slaves

Extracting Optimized Subset 27 In order to be able to retrain in a near real-time fashion, we find a small optimized subset for both faces and non-faces that is capable of achieving 100% detection rates Once the optimized subset is created, it is tested on the entire set.

For faces, the full training set has 4,916 faces and 7,960 non-faces. Extracting Optimized Subset Cont… 28 Figure 10 Replacing faces and non-faces to get an optimized subset

We start with a small set of faces and non-faces, and replace some of the images that have lowest weights based on the Parallel and Distributed AdaBoost algorithm. Extracting Optimized Subset Cont… 29 Figure 10 Replacing faces and non-faces to get an optimized subset

After extensive testing on the faces training set: We have found that extracting 200 features from a subset of 800 faces and 800 non-faces is able to correctly classify all the images of the full set. Extracting Optimized Subset Cont… 30 Figure 10 Replacing faces and non-faces to get an optimized subset

Which means: A classifier trained on 800 faces and 800 non-faces is able to perform 100% detection on the entire set of 12,876 faces and non-faces. A classifier trained on 60 cars and 60 non-cars is able to perform 100% detection on the entire set of 1,050 cars and non-cars. Thus we utilize around 12% of the training set as the optimized subset that is capable of achieving high detection rates. This further reduces the retraining execution time. Extracting Optimized Subset Cont… 31

Implementing a Cascade Structure based on an Optimized Small Training Set 32 We are building a framework that is able to retrain in near real time by using a parallel and distributed structure. Classifiers in each stage are based on the optimized subset of the training set. The optimized subset of the full training set is able to get a 100% positive detection rate on objects for each stage after testing the classifier of each stage on the whole training set.

The Cascade was built to have 21 stages, where: 1.The first stage is based on 5 weak classifiers. 2.The second stage has 10 weak classifiers. 3.The third stage has 20 weak classifiers. 4.Each subsequent stage has 10 more weak classifiers. 5.Stage number twenty-one has 200 weak classifiers. Implementing a Cascade Structure based on an Optimized Small Training Set Cont… 33

In the AdaBoost algorithm that has been used to build classifiers on each stage of the cascade, any sub window will be considered a positive object when the sum of alphas of all weak classifiers in the sub window are greater than or equal to 0.5 multiplied by the sum of alphas that were obtained during training classifiers; this result is the threshold that will determine positive objects from non-objects. Implementing a Cascade Structure based on an Optimized Small Training Set Cont… 34

Using the few weak classifiers that were extracted based on the optimized training subset Will not achieve 100% detection rate for positive objects (e.g. faces) when the threshold is based on multiplying the sum of alphas by 0.5. To solve this problem, the threshold needs to be based on multiplying sum of alphas by a number less than 0.5. Implementing a Cascade Structure based on an Optimized Small Training Set Cont… 35

Our implementation of cascade structure started with multiplying the sum of alphas by 0.5, then: 1.If the detection rate on the entire set is less than 99.9%, 0.01 was subtracted 2.If it is greater than or equal to 99.9%, 0.01 was added Implementing a Cascade Structure based on an Optimized Small Training Set Cont… 36

Our results found that, in the first stage, which has 5 weak classifiers, the new threshold obtained is based on multiplying the sum of alphas by And for the second stage, which has 10 weak classifiers, the new threshold obtained is based on multiplying sum of alphas by 0.29, etc. Implementing a Cascade Structure based on an Optimized Small Training Set Cont… 37

Retraining 38 After building a cascade of 21 stages where each one has a specific threshold to be used for detection purposes, it is time to make the framework able to be retrained using parallel and distributed AdaBoost. To do that, another stage is added, which will be copied from the last stage. Now the total number of stages is 22. The reason for creating the new stage is for fast retraining. The new stage will retrain based on missed objects and false positives to help the classifier to detect difficult cases in a simple and easy way. Figure 11 Twenty one stages

The strategy used for retraining in the new stage to detect the missed objects and erase false positives is by: Adding specific missed objects as well as all false positives to the training set of the new stage. To make the missed objects stronger and the false positives weaker, We added rectangles that overlap with the missed objects and false positives, to increase the chance of detecting the missed objects and to erase the false positives after finishing the retraining process. Now, false negatives and positives and their overlapping rectangles will be added together in the new stage and will be given a high weight so more focus is given to them during retraining. Retraining Cont… 39

Retraining Cont… 40 Figure 12 Architecture for Retrainable System

Web Services and parallel execution time for the first three approaches 41 Table 1 Comparison of the first four approaches used By using 31 machines, an execution time of 4.8 seconds per feature is achieved.

Web Services and parallel execution time for the last approach 42 Table 2 Comparison of the fifth approach with different number of nodes

To be able to predict the speedup for any number of machines available, the following predictive equation was developed for calculating parallel execution time based on the number of nodes attached to master node. where n is the number of nodes attached to a master node, and m is the total number of features. 43 Web Services and parallel execution time for the last approach Cont…

44 Figure 9 Real and predictive parallel execution time based on total number of slave nodes using master – N slave nodes approach Web Services and parallel execution time for the last approach Cont…

The following are cases where cars and faces were not detected based on the existing trained classifier. For cars, the optimized training set size was around 60 cars and 60 non-cars. For faces, the optimized training set size was around 800 faces and 800 non-faces. A short retraining will make the false positives weaker and the missed cars or faces stronger; then the previously missed car or face should be detected. Results after retraining 45

Results after retraining Cont… 46 OutputAfter re-training Re-training time (seconds)

Results after retraining Cont… 47 OutputAfter re-training Re-training time (seconds) 384.2

The following are cases where cars and faces were detected based on the existing trained classifier. However, there were also some false positives. A short retraining will make these false positives weaker; then it should not be detected again as a car or a face. Results after retraining Cont… 48

Results after retraining Cont… 49 OutputAfter re-trainingRe-training time (seconds)

Results after retraining Cont… 50 OutputAfter re-training Re-training time (seconds)

Conclusion 51 This paper presents a generalized object detection framework such that: the system can efficiently adapt to misclassified data and be retrained within a few minutes or less. We reduce this execution time through two major contributions: 1.A highly parallel and distributed AdaBoost algorithm that exploits the multiple cores in a CPU and uses multiple machines.

2.Development of a methodology to create a much smaller optimized training subset than is normally used, to reduce the training execution time further. Finally, we incorporate our parallel and distributed AdaBoost algorithm along with the optimized training subset into a generalized object detection framework that efficiently adapts to misclassified data and can be retrained within a few minutes or less. Conclusion Cont… 52

Thank you 53