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.
- Python 3.6
- .NET Framework 4.6.1
- Visual Studio 2017 (Optional)
- Download the latest ALFI release from this link.
- Unzip the file. You should be able to see three folders.
.
+-- ALFI_Data
+-- FaceID
+-- IdentificationApp
- 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 inC:\Users\Documents
, then copyALFI_Data
to the root of the C drive, i.e.C:\
.
- Open a command prompt inside the
FaceID
folder. - Download the pipenv package manager by executing the following command:
$ python -m pip install pipenv
- Install the project prerequisites through pipenv:
$ pipenv install
(This process may take several minutes)
- Start the FaceID server:
$ pipenv run python App.py
You should see the console display the following:
The FaceID server is ready.
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.
- Stop the server amd remove Tensorflow from the environment.
$ pipenv uninstall tensorflow
- Add the GPU ready distribution of Tensorflow to the environment.
$ pipenv install tensorflow-gpu
- Run the server again.
$ pipenv run python App.py
Tensorflow will engage the available GPU and do processor heavy operations using it.
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.
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.
- Clone or download the repository.
- Open the project solution double-clicking
ALFI.sln
. - In the top menu bar, change the Solution Configuration to Release, and the Solution Platform to Any CPU.
- 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
.