anwar
anwar

Reputation: 281

how to run dlib face recognition with gpu

I have installed visual studio 2019, and Cuda 10.1 and TensorFlow 2.1.0 and I still can't run face recognition with GPU, can someone give me a complete guide on the steps to use GPU instead of CPU.

note: I'm using windows 10, my GPU is gtx1050 and I am using anaconda spider.

Upvotes: 2

Views: 9056

Answers (3)

PhilKo
PhilKo

Reputation: 91

As Adrian Rosebrock mentioned at https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/, it is better to build Dlib from source, so the library is aware of the presence of the exact GPU in your system. My guess is - during the building process, it probes the capabilities of the GPU through the CUDA driver and builds and installs accordingly.

git clone https://github.com/davisking/dlib.git
cd dlib
mkdir build
cd build
cmake .. -DDLIB_USE_CUDA=1 -DUSE_AVX_INSTRUCTIONS=1
cmake --build .
cd ..
python setup.py install --yes USE_AVX_INSTRUCTIONS --yes DLIB_USE_CUDA

Upvotes: 2

anwar
anwar

Reputation: 281

i solved this by these steps using an anaconda enviroment:

cuda 10.2 installed

python (3.7.7)

conda install pip

conda install tensorflow (latest 2.1.0)

conda install tensorflow-gpu

pip install imutils

pip install opencv-python

pip install opencv-contrib-python

pip install dlib

pip install face_recognition

Upvotes: 1

sefiks
sefiks

Reputation: 1690

Firstly, you should install tensorflow-gpu package instead of tensorflow.

If your tf is installed correctly, you can run face recognition in gpu within deepface. You can test it with allocate memory function.

#!pip install deepface
from deepface import DeepFace
DeepFace.allocateMemory()

If everything is OK, then it returns "DeepFace will run on GPU" message.

All face recogntion models except Dlib will run on tensorflow-gpu. You can run face recognition with verification function.

from deepface import DeepFace
models = ["VGG-Face", "Facenet", "OpenFace", "DeepFace", "DeepID", "Dlib"]
obj = DeepFace.verify("img1.jpg", "img2.jpg", model_name = models[0])
print(obj)

Upvotes: 1

Related Questions