Table of Contents
This installation was tested on the following configuration:
- OS: Ubuntu 16.04
- CUDA 9.0
- CUDNN 7.1
- OpenCV 3.4
- Caffe 1.0
- OpenFace 2.0
- Boost 1.5
If you have Ubuntu 18.04, please refer to the configuration information.
Dependency installation
OpenGaze requires cmake, OpenCV 3.1.0 (or newer), Caffe, OpenFace, and boost. OpenFace relies on tbb, OpenBlas and dlib. Caffe relies on protobuf, glog, gflags, hdf5 and cuDNN.
Since we use convolutional neural networks as our model, the speed performance can be optimized with a powerful Nvidia GPU. Here we will show you how to install the driver and GPU library.
Install GPU driver and library
-
Install GPU driver:
Check if you already have the Nvidia driver withnvidia-smi
, which should give you the GPU information. Note that we tested on driver version 384.130.
If you do not have the driver, then you can install the driver withsudo ubuntu-drivers autoinstall
Then reboot your computer
You now should test the Nvidia driver withnvidia-smi
-
Install CUDA
CUDA is a parallel computing platform and programming model invented by NVIDIA. You can check withnvcc --version
to see if you already have the GPU or not. We tested on version 9.0.176. You can install CUDA with the following steps:
wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
sudo bash cuda_9.0.176_384.81_linux-run --override
Answer these questions as follows while installation begins:
- Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? n
- Install the CUDA 9.0 Toolkit? y
- Do you want to install a symbolic link at /usr/local/cuda? y
- Install the CUDA 10.0 Samples? n
Set up your paths:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CPATH=/usr/local/cuda/include:$CPATH' >> ~/.bashrc
source ~/.bashrc
You can now test your CUDA installation with nvcc --version
, which should show your nvcc version.
- Install cuDNN
cuDNN is a GPU-accelerated library from Nvidia.
Go to cuDNN archive to download "cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0", and then install it with:
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
Install OpenGaze with pre-compiled binary
You can easily install OpenGaze with our pre-compiled binary file.
- Install other dependencies with
bash install.sh
. This will install all the dependencies (tbb, boost, OpenBlas, dlib, protobuf, glog, gflags and hdf5) except OpenFace and Caffe. - Install OpenGaze with
sudo dpkg -i opengaze.deb
. This will install the OpenGaze library itself and also the OpenFace and Caffe library. - Compile the test example:
cd exe/
mkdir build
cd build
cmake ..
make
- Run the test Run the test
Compile OpenGaze from source
If the pre-compiled file does not work for you, or you want to make changes to the OpenGaze source code, then you can compile it from source.
Install OpenFace v2.0
- Install
git clone https://github.com/TadasBaltrusaitis/OpenFace.git
cd OpenFace
Open the file 'install.sh', and change the "BUILD_SHARED_LIBS=OFF" to "BUILD_SHARED_LIBS=ON" for OpenCV. Then run
yes | bash install.sh
- Download the necessary models:
Open the file "download_models.sh", set your OpenGaze root directory, which defualt value is "~/OpenGaze".
bash download_models.sh
- Test it:
cd build/
cp ../lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.25_of.dat ./bin/model/patch_experts/
cp ../lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.35_of.dat ./bin/model/patch_experts/
cp ../lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.50_of.dat ./bin/model/patch_experts/
cp ../lib/local/LandmarkDetector/model/patch_experts/cen_patches_1.00_of.dat ./bin/model/patch_experts/
./bin/FaceLandmarkVid -f "../samples/changeLighting.wmv" -f "../samples/2015-10-15-15-14.avi"
For more details, please visit the OpenFace installation guidelines.
Install Caffe:
Install general dependencies:
sudo apt-get install cmake libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev
Download Caffe:
git clone https://github.com/BVLC/caffe.git
Download OpenGaze:
git clone https://git.hcics.simtech.uni-stuttgart.de/public-projects/opengaze.git
Copy the customized layers from OpenGaze to caffe:
cp -r opengaze/caffe-layers/include caffe/
cp -r opengaze/caffe-layers/src caffe/
Compile:
cd caffe/
mkdir build
cd build
cmake .. -DUSE_CUDNN=1 -DOPENCV_VERSION=3 -DBLAS=Open
make all
make install
For details please visit the Caffe website.
Now you should have successfully installed all the dependencies.
Compile OpenGaze
Copy CMakeLists.txt.example and rename it to CMakeLists.txt. Configure the build by modifying the CMakeLists.txt for your setup.
-
Caffe
Set the Caffe install path with "CAFFE_INSTALL_DIR" -
OpenFace
Set the OpenFace root directory with "OPENFACE_ROOT_DIR" -
OpenGaze root path
Set the OpenGaze root path with "OPENGAZE_DIR", it will be the directory include Caffe models and camera calibration files etc. The defualt path is/home/USER_NAME/OpenGaze
-
Create an out-of-source build directory to store the compiled artifacts:
cd OpenGaze
mkdir build
cd build
cmake ..
make
sudo make install
Test OpenGaze
Download the pre-trained gaze estimation models by running:
./download_models.sh
Note that all the configuration and model files will be located in the "~/OpenGaze" directory.
Go to "exe" folder, open "CMakeLists.txt" file, modify "OPENGAZE_DIR" if necessary. Then compile the test examples:
cd exe/
mkdir build
cd build/
cmake ..
make
Make sure your camera is connected to your computer, and then test it with:
./bin/GazeVisualization -d -t camera -i 0
Or test it with an existing video file:
./bin/GazeVisualization -d -t video -i ../exe/test.mp4
Make the .deb package file
I use Checkinstall to make the .deb file. When you reach the make
step before "sudo make install" for OpenGaze, you can just type
sudo checkinstall --install=no
to make a .deb file.
Follow the instructions to edit the software description, version, and organization. At last, you will find the compressed .deb file.
Ubuntu 18.04
The default GCC version is 7.X with Ubuntu 18.04, which is not compatible with CUDA 9.0 (only works with GCC <= 6). This complicated situation results: GCC 7.x requires CUDA 9.2 and CUDA 9.2 requires a Nvidia driver version >= 396.
Install Nvidia driver
Add the Nvidia ppa:
sudo apt update
sudo apt upgrade
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade
If you try to install driver version 396 here, it will tell you there are some packages missing. However, you can install the driver from elsewhere.
After that, go to the "Software & Update" in Ubuntu 18 system, go to "Additional Drivers", select nvidia-driver-396
, and "Apply Changes".
Reboot the computer, then test the driver installation with nvidia-smi
.
Install CUDA
wget https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda_9.2.148_396.37_linux
chmod +x cuda_9.2.148_396.37_linux
sudo ./cuda_9.2.148_396.37_linux --override
Answer the following questions while installation begins:
- You are attempting to install on an unsupported configuration. Do you wish to continue? y
- Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? n
- Install the CUDA 9.0 Toolkit? y
- Do you want to install a symbolic link at /usr/local/cuda? y
- Install the CUDA 10.0 Samples? n
and set up your paths:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CPATH=/usr/local/cuda/include:$CPATH' >> ~/.bashrc
source ~/.bashrc
You can now test your CUDA installation with nvcc --version
, which should show your nvcc version.
Install cuDNN
Go to the cuDNN archive to download the "cuDNN v7.1.4 (May 16, 2018), for CUDA 9.2", and then install it with:
tar -xzvf cudnn-9.2-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
You now can go compile it from the source and note that the pre-compiled file is only for Ubuntu 16.04.