Metadata-Version: 2.1
Name: G6-face-recognition
Version: 0.0.1
Summary: A Python package to face recognition.
Home-page: UNKNOWN
Author: Gate6
Author-email: rajendra.khabiya@gate6.com
License: MIT
Project-URL: Source, https://github.com/gate6/iris-recognition-sample-code/tree/face-recognition
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: opencv-contrib-python
Requires-Dist: scikit-image
Requires-Dist: scipy
Requires-Dist: numpy
Requires-Dist: matplotlib
Requires-Dist: imutils

# Gate6 Face Recognition Package
   G6_face_recognition is a module for face recognition. Using the image processing libraries and high-level mathematical functions, we’ll be providing fast and secure face recognition solution. 

## Installation 

#### Installations required before installing the package module
  ```
     python 
     numpy
     opencv-python
     matplotlib
     opencv-contrib-python
     requests
     cmake
     dlib
     scikit-image
     scipy
     imutils==0.5.2
  ```  

#### - Install Python

[Windows](http://timmyreilly.azurewebsites.net/python-flask-windows-development-environment-setup/), [Mac](http://docs.python-guide.org/en/latest/starting/install/osx/), [Linux](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux-python.html)


#### - Install package module using ``pip``:
  ```
    $ pip install G6-face-recognition
  ```  

## Project Structure

  - On your project folder, create an encodingModel directory & in that directory create a file named faceEncodings.pickle(encodingModel/faceEncodings.pickle).
  - Create a directory named Input_database & under that directory put an individual's face images, in the directories made on their individual names.


```shell

    Project/
    ├── encodingModel/
    │   ├── faceEncodings.pickle/                               # train model
    |   ├── Face_model/                                         # Face model
    |       ├── face_recognition_model.dat/
    |       ├── shape_predictor.dat/
    ├── Input_database/ 
    │   ├── person1 name/                                       # person1 directory
    |   │   ├── face images of person1 /                    # images of person face
    │   ├── person2 name/                                       # person2 directory
    |   │   ├── face images of person2 /                    # images of person face
    │   ├── person3 name/                                       # person3 directory
    |   │   ├── face images of person3 /                    # images of person face                  

```



## How to use

Once all the settings of project are configured, you are ready to run the project. Import G6_face_recognition module in your project to start.


```shell
   import G6_face_recognition
```

Once the import is completed, user need to copy face models from below link and paste in directory Face_model.

```shell
   https://github.com/gate6/iris-recognition-sample-code/tree/face-recognition/encodingModel/Face_model
```

After that, user need to train existing images which are saved in the Input_database Folder.

```shell
   Input_database/
```

After that, create and train encoding module using Input_database Folder images, as per the instructions given below:


```shell
   G6_face_recognition.face_model_train(train_database_path,train_encoding_model_path)
   train_database_path        ===>  Input_database/
   train_encoding_model_path  ===>  encodingModel/faceEncodings.pickle
```

Once the model is trained, it’s ready to test with real-time images. Follow the process that is mentioned to test real time face image:

```shell
   face_name = G6_face_recognition.face_model_test(test_encoding_model_path,real_time_image_path) 
   test_encoding_model_path   ===>  encodingModel/faceEncodings.pickle
   real_time_image_path       ===>  real-time_image_path
   face_name                  ===>  In response you’ll get the registered person’s name if image matches with the person’s image in the trained image model & if the image doesn’t match then the name returns as unmatched.
```


## Requirements :

  * Need clearer images from the input device.
  * Images should be captured in light.
  * Person shouldn't wear big glasses or anything that affect on image match.
  * Minimum 5 clear images are required to train the model.




## Support

If you face any difficulty in configuration or usage of Gate6 Face Recognition Package as per the instructions documented above, please feel free to contact our development team.

## License

[MIT](LICENSE)

