All Projects → jasonleaster → Facedetection

jasonleaster / Facedetection

Licence: mit
🌟 Human Face Detection based on AdaBoost

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Facedetection

Human Detection And Tracking
Human-detection-and-Tracking
Stars: ✭ 753 (+449.64%)
Mutual labels:  face-detection, numpy
2015 face detection
CVPR2015 Cascade CNNs for Face Detection
Stars: ✭ 135 (-1.46%)
Mutual labels:  face-detection
Robovision
AI and machine leaning-based computer vision for a robot
Stars: ✭ 126 (-8.03%)
Mutual labels:  face-detection
Facelandmarksdetection
Finds facial features such as face contour, eyes, mouth and nose in an image.
Stars: ✭ 130 (-5.11%)
Mutual labels:  face-detection
Insightface Just Works
Insightface face detection and recognition model that just works out of the box.
Stars: ✭ 127 (-7.3%)
Mutual labels:  face-detection
Ds Ai Tech Notes
📖 [译] 数据科学和人工智能技术笔记
Stars: ✭ 131 (-4.38%)
Mutual labels:  numpy
One Python Benchmark Per Day
An ongoing fun challenge where I'll try to post one Python benchmark per day.
Stars: ✭ 124 (-9.49%)
Mutual labels:  numpy
Veros
The versatile ocean simulator, in pure Python, powered by Bohrium.
Stars: ✭ 136 (-0.73%)
Mutual labels:  numpy
Jyni
Enables Jython to load native CPython extensions.
Stars: ✭ 131 (-4.38%)
Mutual labels:  numpy
Flutter android
Android bindings plugin for Flutter.
Stars: ✭ 131 (-4.38%)
Mutual labels:  face-detection
Forpy
Forpy - use Python from Fortran
Stars: ✭ 129 (-5.84%)
Mutual labels:  numpy
Color Tracker
Color tracking with OpenCV
Stars: ✭ 128 (-6.57%)
Mutual labels:  numpy
Faceboxes
使用pytorch实现了FaceBoxes: A CPU Real-time Face Detector with High Accuracy
Stars: ✭ 131 (-4.38%)
Mutual labels:  face-detection
Data Science For Marketing Analytics
Achieve your marketing goals with the data analytics power of Python
Stars: ✭ 127 (-7.3%)
Mutual labels:  numpy
Machine Learning Projects
This repository consists of all my Machine Learning Projects.
Stars: ✭ 135 (-1.46%)
Mutual labels:  numpy
Teaching Monolith
Data science teaching materials
Stars: ✭ 126 (-8.03%)
Mutual labels:  numpy
Tiny ml
numpy 实现的 周志华《机器学习》书中的算法及其他一些传统机器学习算法
Stars: ✭ 129 (-5.84%)
Mutual labels:  numpy
Root numpy
The interface between ROOT and NumPy
Stars: ✭ 130 (-5.11%)
Mutual labels:  numpy
Facerecognition
This is an implematation project of face detection and recognition. The face detection using MTCNN algorithm, and recognition using LightenenCNN algorithm.
Stars: ✭ 137 (+0%)
Mutual labels:  face-detection
Ml Cheatsheet
A constantly updated python machine learning cheatsheet
Stars: ✭ 136 (-0.73%)
Mutual labels:  numpy

EFace -- A project of face detection in Python

This project name as E-Face which is a implementation of face detection algorithm.

My nick name is EOF. For convenient, I name it as E-Face.

It's stimulating to do this project. Enjoy with it.

The architecture of this project.

The following list show the files in this awesome project.

  • adaboost.py Implementation of Adaptive Boosting algorithm

  • cascade.py Cascade Decision Tree

  • config.py All parameters of configuration in this project are stored in this file.

  • image.py The initialization of images. class Image and class ImageSet are in this file.

  • haarFeature.py Stuff with Haar-Features.

  • weakClassifier.py The detail about Weak classifier.

  • training.py Script for training the model.

directories:

  • model/ cache files for adaboost model.

  • featuers/ values for different feaures with different samples.

  • doc/ documents with this project.

Usage:

For training a adaboost model:

     python ./trainingAdaBoost.py

To detect faces in a image, you have to define the TEST_IMG which is the path where store your image:

    python ./EFace.py

Presentation of current result:

I'm still working on making this project more powerful. So, here is the presentation of current result.

images

images

images

Programming Style:

I used basic OOP(Object Oriented Programming) tricks to build my program. Something like... I put all about AdaBoost into a class(AdaBoost) which you can find in file adaboost.py. Everytime you want to do something with adaboost, just create a object instance of that class.

Adavantages of this style: Higher level of abstraction and easy to be used. With this style, green hand will easy to build good archtecture with our project.

Disadvantages of this style: Without optimalization, it will cost a lot of memory. This will be obvious when the scale of project goes more and more large.

During this period when I working on the project, I meet a lots of problem. But I also want to say "thanks" to these problem. It help me a lot to enhance my ability in programming.

  • Exception Handle The training process cost too much time. Sometimes, we have a better idea to change the code into a better version. But the trainning process is going on. If we press ctrl + c to interrupt, the data that we have get from the AdaBoost process will lost.

    I use a handler for KeyboardInterrupt and then save the data of model so that the valuable data won't be lose.

  • High Performance Programming in Python

    There have lots of tricks to make native Python code run more faster. The computation of image processing is very huge. This means that it's a typical problem about CPU-bound.

  • Concurrent Control To improve the performance of this system in the training process, I try to use parallel mechanism with the two CPU in my workstation.

... ...


Optimization diary

2016-04-09 Restart to built this project and finished optimize the image.py

2016-04-13 refactor the training.py and make it more light. create a new module mapReduce.py. In haarFeature.py, @idxVector is initialized by numpy.zeros, it's faster than numpy.array([0 for i in range(length)])

2016-04-15 going to optimal weakClassifier.py and adaboost.py. Try to vectorize weakclassifier.py

2016-04-16 change scanImage.py and use different size of final classifier image but not resize the inputed image.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].