auto-face-recognition 0.0.3
auto_face_recognition is Tensorflow based python library for fast face recognition
Requires Python: >=3.6

# [auto_face_recognition](https://github.com/Dipeshpal/auto_face_recognition)

***Last Upadted: 19 November, 2020***

1. What is auto_face_recognition?
 2. Prerequisite
 3. Getting Started- How to use it?
 4. Future?

## 1. What is auto_face_recognition?
It is a python library for the Face Recognition. This library make face recognition easy and simple. This library uses Tensorflow 2.0+ for the face recognition and model training.

## 2. Prerequisite-

* To use it only Python (> 3.6) is required.
* Recommended Python < 3.9

## 3. Getting Started (How to use it)-
 
 ### Install the latest version-
 `pip install auto_face_recognition`

It will install all the required package automatically, including Tensorflow Latest.


### Usage and Features-

After installing the library you can import the module-

1. **Object Creation-**
	```
	import auto_face_recognition
	obj = auto_face_recognition.AutoFaceRecognition()
	```
2. **Dataset Creation-**
 

	    obj.datasetcreate(haarcascade_path='haarcascade/haarcascade_frontalface_default.xml',  
	    	    	                  eyecascade_path='haarcascade/haarcascade_eye.xml') 
                  
	***Note:*** You need to pass the '[haarcascade_frontalface_default.xml](https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml)' and '[haarcascade_eye.xml](https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_eye.xml)' path.

3. **Model Training-**

		obj.face_recognition_train()		

4. **Predict Faces-**

	    # Real Time
	    obj.predict_faces()
	    # Single Face Recofnition
	    obj.predict_face()

**Parameters You Can Choose-**

datasetcreate

    datasetcreate(dataset_path='datasets', class_name='Demo',  
                      haarcascade_path='haarcascade/haarcascade_frontalface_default.xml',  
                      eyecascade_path='haarcascade/haarcascade_eye.xml', eye_detect=False,  
                      save_face_only=True, no_of_samples=100,  
                      width=128, height=128, color_mode=False)
    """"                  
	Dataset Create by face detection  
	:param dataset_path: str (example: 'folder_of_dataset')
	:param class_name: str (example: 'folder_of_dataset')
	:param haarcascade_path: str (example: 'haarcascade_frontalface_default.xml)
	:param eyecascade_path: str (example: 'haarcascade_eye.xml):param eye_detect: bool (example:True)
	:param save_face_only: bool (example:True)
	:param no_of_samples: int (example: 100)
	:param width: int (example: 128)
	:param height: int (example: 128)
	:param color_mode: bool (example:False):return: None
	"""  
face_recognition_train

    face_recognition_train(data_dir='datasets', batch_size=32, img_height=128, img_width=128, epochs=10, model_path='model', pretrained=None, base_model_trainable=False):  
     """  
     Train TF Keras model according to dataset path  
     :param data_dir: str (example: 'folder_of_dataset')  
     :param batch_size: int (example:32)  
     :param img_height: int (example:128)  
     :param img_width: int (example:128)  
     :param epochs: int (example:10)  
     :param model_path: str (example: 'model')  
     :param pretrained: str (example: None, 'VGG16', 'ResNet50' or 'InceptionV3')
     :param base_model_trainable: bool (example: False (Enable if you want to train the pretrained model's layer))
     :return: None  
     """
                   
   predict_faces
       
    predict_faces(self, class_name=None, img_height=128, img_width=128,  
                  haarcascade_path='haarcascade/haarcascade_frontalface_default.xml',  
                  eyecascade_path='haarcascade/haarcascade_eye.xml', model_path='model',  
                  color_mode=False):  
	 """  
	 Predict Face  
	 :param class_name: Type-List (example: ['class1', 'class2'] )  
	 :param img_height: int (example:128)  
	 :param img_width: int (example:128)  
	 :param haarcascade_path: str (example: 'haarcascade_frontalface_default.xml)  
	 :param eyecascade_path: str (example: 'haarcascade_eye.xml)  
	 :param model_path: str (example: 'model')  
	 :param color_mode: bool (example: False)  
	 :return: None  
	 """

predict_face
	

    predict_face(self, class_name=None, img_height=128, img_width=128,  
                     haarcascade_path='haarcascade/haarcascade_frontalface_default.xml',  
                     eyecascade_path='haarcascade/haarcascade_eye.xml', model_path='model',  
                     color_mode=False, image_path='tmp.png'):  
      """  
      Predict Face  
     :param class_name: Type-List (example: ['class1', 'class2'] )  
     :param img_height: int (example:128)  
     :param img_width: int (example:128)  
     :param haarcascade_path: str (example: 'haarcascade_frontalface_default.xml)  
     :param eyecascade_path: str (example: 'haarcascade_eye.xml)  
     :param model_path: str (example: 'model')  
     :param color_mode: bool (example: False)  
     :param image_path: str (example: 'src/image_predict.png'  
     :return: None  
     """

## 4. Future?

	Finetuning with Resnet and others.
	You Suggest.
	
### Like my work?

Start the project and subscribe me on [YouTube](https://www.youtube.com/dipeshpal17).
https://www.youtube.com/dipeshpal17