Skip to content

martin-ez/ALFI

Repository files navigation

Autonomous Learning for Facial Identification

ALFI is a facial identification application that uses the Kinect natural interface and machine learning techniques.

It is develop as a student project, to test the efficiency and practicality of a new pipeline for machine learning applications, called Autonomous Learning. This approach seeks to facilitate the acquisition and preprocessing of data, crowdsourcing it through the use of natural interfaces like the Kinect.


Installation

Prerequisites

Download and Setup

  1. Download the latest ALFI release from this link.
  2. Unzip the file. You should be able to see three folders.
.
+-- ALFI_Data
+-- FaceID
+-- IdentificationApp
  1. Copy the ALFI_Data folder to the root of the drive where you unzip the folder. For example, if you download and unzip the project in C:\Users\Documents, then copy ALFI_Data to the root of the C drive, i.e. C:\.

Python Environment

  1. Open a command prompt inside the FaceID folder.
  2. Download the pipenv package manager by executing the following command:
$ python -m pip install pipenv
  1. Install the project prerequisites through pipenv:
$ pipenv install

pipenv install process

(This process may take several minutes)

  1. Start the FaceID server:
$ pipenv run python App.py

You should see the console display the following:

Running the server

The FaceID server is ready.

(Optional) Setup GPU computation

If a CUDA-compatible graphics processor card is available in the machine, you can setup Tensorflow to use it in the computation of the machine learning algorithms. This will reduce training times significantly.

  1. Stop the server amd remove Tensorflow from the environment.
$ pipenv uninstall tensorflow
  1. Add the GPU ready distribution of Tensorflow to the environment.
$ pipenv install tensorflow-gpu
  1. Run the server again.
$ pipenv run python App.py

Tensorflow will engage the available GPU and do processor heavy operations using it.

Kinect Setup

Due to the way the existing images in the dataset were taken, the Kinect needs to be place in a specific way in order for the app to work optimally.

  • The sensor must be on the bottom of the screen, pointing slightly upwards.
  • If the users will use the app standing up, the sensor must be place at a height around 100-120 cm from the floor. Otherwise, if the app is to be used sitting down, the sensor must be around 50-70 cm from the floor.
  • Preferably, the sensor should be align to the center of the screen horizontally.

Identification App

Run the IdentificationApp.exe executable, found on the IdentificationApp folder on the unzip project.

You should see the Kinect sensor turning on, and standing in front of it should prompt the screen to change from blue to orange.


Compilation

  1. Clone or download the repository.
  2. Open the project solution double-clicking ALFI.sln.
  3. In the top menu bar, change the Solution Configuration to Release, and the Solution Platform to Any CPU.
  4. Go to Build -> Build Solution, or Ctrl+Shift+B.

The resulting executable and the additional files needed will be located in IdentificationApp_Csharp\bin\Release.


About

Facial Identification using Autonomous Learning

Resources

Stars

Watchers

Forks

Packages

No packages published