Trouble installing face_recognizer package

Hello,

I am trying to install the face_recognition package used in the ROS Perception in 5 Days course in ROSDS (ROS Noetic).

As per the installation instructions, I have installed dlib from source (I can import it to Python successfully), and I have installed cmake via pip.

However, when I try to install face_recognition (pip3 install face_recognition), I receive an error when “Building wheel for dlib (setup.py)”. I’ve pasted the full error below.

Any suggestions for how to fix this?

Thank you!

user:~/catkin_ws/src/dlib$ pip3 install face_recognition
Collecting face_recognition
  Using cached face_recognition-1.3.0-py2.py3-none-any.whl (15 kB)
Requirement already satisfied: Pillow in /usr/local/lib/python3.8/dist-packages (from face_recognition) (7.2.0)
Requirement already satisfied: Click>=6.0 in /usr/local/lib/python3.8/dist-packages (from face_recognition) (7.1.2)
Collecting dlib>=19.7
  Using cached dlib-19.23.0.tar.gz (3.2 MB)
Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from face_recognition) (1.19.5)
Requirement already satisfied: face-recognition-models>=0.3.0 in /home/user/.local/lib/python3.8/site-packages (from face_recognition) (0.3.0)
Building wheels for collected packages: dlib
  Building wheel for dlib (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6ytbdexp/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6ytbdexp/dlib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-5fex0xbz
       cwd: /tmp/pip-install-6ytbdexp/dlib/
  Complete output (181 lines):
  running bdist_wheel
  running build
  running build_py
  package init file 'tools/python/dlib/__init__.py' not found (or not a regular file)
  running build_ext
  Building extension for Python 3.8.10 (default, Jun  2 2021, 10:49:15)
  Invoking CMake setup: 'cmake /tmp/pip-install-6ytbdexp/dlib/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-6ytbdexp/dlib/build/lib.linux-x86_64-3.8 -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Release'
  -- The C compiler identification is GNU 9.3.0
  -- The CXX compiler identification is GNU 9.3.0
  -- Check for working C compiler: /usr/bin/cc
  -- Check for working C compiler: /usr/bin/cc -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Check for working CXX compiler: /usr/bin/c++
  -- Check for working CXX compiler: /usr/bin/c++ -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Found PythonInterp: /usr/bin/python3 (found version "3.8.10")
  -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.8.so
  -- Performing Test HAS_CPP14_FLAG
  -- Performing Test HAS_CPP14_FLAG - Success
  -- pybind11 v2.2.4
  -- Using CMake version: 3.16.3
  -- Compiling dlib version: 19.23.0
  -- SSE4 instructions can be executed by the host processor.
  -- AVX instructions can be executed by the host processor.
  -- Enabling AVX instructions
  -- Looking for pthread.h
  -- Looking for pthread.h - found
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - found
  -- Found Threads: TRUE
  -- Found X11: /usr/include
  -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
  -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
  -- Looking for gethostbyname
  -- Looking for gethostbyname - found
  -- Looking for connect
  -- Looking for connect - found
  -- Looking for remove
  -- Looking for remove - found
  -- Looking for shmat
  -- Looking for shmat - found
  -- Looking for IceConnectionNumber in ICE
  -- Looking for IceConnectionNumber in ICE - found
  -- Found system copy of libpng: /usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libz.so
  -- Found system copy of libjpeg: /usr/lib/x86_64-linux-gnu/libjpeg.so
  -- Searching for BLAS and LAPACK
  -- Searching for BLAS and LAPACK
  -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
  -- Checking for module 'cblas'
  --   No package 'cblas' found
  -- Checking for module 'lapack'
  --   Found lapack, version 3.9.0
  -- Looking for cblas_ddot
  -- Looking for cblas_ddot - not found
  -- Looking for sys/types.h
  -- Looking for sys/types.h - found
  -- Looking for stdint.h
  -- Looking for stdint.h - found
  -- Looking for stddef.h
  -- Looking for stddef.h - found
  -- Check size of void*
  -- Check size of void* - done
  -- Found LAPACK library
  -- Found BLAS library
  -- Looking for cblas_ddot
  -- Looking for cblas_ddot - found
  -- Looking for sgesv
  -- Looking for sgesv - not found
  -- Looking for sgesv_
  -- Looking for sgesv_ - found
  -- Found CUDA: /usr/local/cuda (found suitable version "11.1", minimum required is "7.5")
  -- Looking for cuDNN install...
  -- *** cuDNN V5.0 OR GREATER NOT FOUND.                    ***
  -- *** Dlib requires cuDNN V5.0 OR GREATER.  Since cuDNN is not found DLIB WILL NOT USE CUDA. ***
  -- *** If you have cuDNN then set CMAKE_PREFIX_PATH to include cuDNN's folder.                ***
  -- Disabling CUDA support for dlib.  DLIB WILL NOT USE CUDA
  -- C++11 activated.
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /tmp/pip-install-6ytbdexp/dlib/build/temp.linux-x86_64-3.8
  Invoking CMake build: 'cmake --build . --config Release -- -j7'
  Scanning dependencies of target dlib
  [  1%] Building CXX object dlib_build/CMakeFiles/dlib.dir/base64/base64_kernel_1.cpp.o
  [  2%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bit_stream/bit_stream_kernel_1.cpp.o
  [  3%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bigint/bigint_kernel_2.cpp.o
  [  4%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bigint/bigint_kernel_1.cpp.o
  [  5%] Building CXX object dlib_build/CMakeFiles/dlib.dir/entropy_decoder/entropy_decoder_kernel_1.cpp.o
  [  6%] Building CXX object dlib_build/CMakeFiles/dlib.dir/entropy_decoder/entropy_decoder_kernel_2.cpp.o
  [  8%] Building CXX object dlib_build/CMakeFiles/dlib.dir/entropy_encoder/entropy_encoder_kernel_1.cpp.o
  [  9%] Building CXX object dlib_build/CMakeFiles/dlib.dir/entropy_encoder/entropy_encoder_kernel_2.cpp.o
  [ 10%] Building CXX object dlib_build/CMakeFiles/dlib.dir/md5/md5_kernel_1.cpp.o
  [ 11%] Building CXX object dlib_build/CMakeFiles/dlib.dir/tokenizer/tokenizer_kernel_1.cpp.o
  [ 12%] Building CXX object dlib_build/CMakeFiles/dlib.dir/unicode/unicode.cpp.o
  [ 13%] Building CXX object dlib_build/CMakeFiles/dlib.dir/test_for_odr_violations.cpp.o
  [ 14%] Building CXX object dlib_build/CMakeFiles/dlib.dir/sockets/sockets_kernel_1.cpp.o
  [ 16%] Building CXX object dlib_build/CMakeFiles/dlib.dir/bsp/bsp.cpp.o
  [ 17%] Building CXX object dlib_build/CMakeFiles/dlib.dir/dir_nav/dir_nav_kernel_1.cpp.o
  [ 18%] Building CXX object dlib_build/CMakeFiles/dlib.dir/dir_nav/dir_nav_kernel_2.cpp.o
  [ 19%] Building CXX object dlib_build/CMakeFiles/dlib.dir/dir_nav/dir_nav_extensions.cpp.o
  [ 20%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/fonts.cpp.o
  [ 21%] Building CXX object dlib_build/CMakeFiles/dlib.dir/linker/linker_kernel_1.cpp.o
  [ 22%] Building CXX object dlib_build/CMakeFiles/dlib.dir/logger/extra_logger_headers.cpp.o
  [ 24%] Building CXX object dlib_build/CMakeFiles/dlib.dir/logger/logger_kernel_1.cpp.o
  [ 25%] Building CXX object dlib_build/CMakeFiles/dlib.dir/logger/logger_config_file.cpp.o
  [ 26%] Building CXX object dlib_build/CMakeFiles/dlib.dir/misc_api/misc_api_kernel_1.cpp.o
  [ 27%] Building CXX object dlib_build/CMakeFiles/dlib.dir/misc_api/misc_api_kernel_2.cpp.o
  [ 28%] Building CXX object dlib_build/CMakeFiles/dlib.dir/sockets/sockets_extensions.cpp.o
  [ 29%] Building CXX object dlib_build/CMakeFiles/dlib.dir/sockets/sockets_kernel_2.cpp.o
  [ 31%] Building CXX object dlib_build/CMakeFiles/dlib.dir/sockstreambuf/sockstreambuf.cpp.o
  [ 32%] Building CXX object dlib_build/CMakeFiles/dlib.dir/sockstreambuf/sockstreambuf_unbuffered.cpp.o
  [ 33%] Building CXX object dlib_build/CMakeFiles/dlib.dir/server/server_kernel.cpp.o
  [ 34%] Building CXX object dlib_build/CMakeFiles/dlib.dir/server/server_iostream.cpp.o
  [ 35%] Building CXX object dlib_build/CMakeFiles/dlib.dir/server/server_http.cpp.o
  [ 36%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/multithreaded_object_extension.cpp.o
  [ 37%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/threaded_object_extension.cpp.o
  [ 39%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/threads_kernel_1.cpp.o
  [ 40%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/threads_kernel_2.cpp.o
  [ 41%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/threads_kernel_shared.cpp.o
  [ 42%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/thread_pool_extension.cpp.o
  [ 43%] Building CXX object dlib_build/CMakeFiles/dlib.dir/threads/async.cpp.o
  [ 44%] Building CXX object dlib_build/CMakeFiles/dlib.dir/timer/timer.cpp.o
  [ 45%] Building CXX object dlib_build/CMakeFiles/dlib.dir/stack_trace.cpp.o
  [ 47%] Building CXX object dlib_build/CMakeFiles/dlib.dir/cuda/cpu_dlib.cpp.o
  [ 48%] Building CXX object dlib_build/CMakeFiles/dlib.dir/cuda/tensor_tools.cpp.o
  [ 49%] Building CXX object dlib_build/CMakeFiles/dlib.dir/data_io/image_dataset_metadata.cpp.o
  [ 50%] Building CXX object dlib_build/CMakeFiles/dlib.dir/data_io/mnist.cpp.o
  [ 51%] Building CXX object dlib_build/CMakeFiles/dlib.dir/data_io/cifar.cpp.o
  [ 52%] Building CXX object dlib_build/CMakeFiles/dlib.dir/global_optimization/global_function_search.cpp.o
  [ 54%] Building CXX object dlib_build/CMakeFiles/dlib.dir/filtering/kalman_filter.cpp.o
  [ 55%] Building CXX object dlib_build/CMakeFiles/dlib.dir/svm/auto.cpp.o
  [ 56%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/widgets.cpp.o
  [ 57%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/drawable.cpp.o
  [ 58%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/canvas_drawing.cpp.o
  [ 59%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/style.cpp.o
  c++: fatal error: Killed signal terminated program cc1plus
  compilation terminated.
  make[2]: *** [dlib_build/CMakeFiles/dlib.dir/build.make:583: dlib_build/CMakeFiles/dlib.dir/cuda/cpu_dlib.cpp.o] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[1]: *** [CMakeFiles/Makefile2:144: dlib_build/CMakeFiles/dlib.dir/all] Error 2
  make: *** [Makefile:84: all] Error 2
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-6ytbdexp/dlib/setup.py", line 222, in <module>
      setup(
    File "/usr/local/lib/python3.8/dist-packages/setuptools/__init__.py", line 153, in setup
      return distutils.core.setup(**attrs)
    File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/lib/python3.8/dist-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-6ytbdexp/dlib/setup.py", line 134, in run
      self.build_extension(ext)
    File "/tmp/pip-install-6ytbdexp/dlib/setup.py", line 174, in build_extension
      subprocess.check_call(cmake_build, cwd=build_folder)
    File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j7']' returned non-zero exit status 2.
  ----------------------------------------
  ERROR: Failed building wheel for dlib
  Running setup.py clean for dlib
Failed to build dlib

Hi, try these commands:

sudo pip3 uninstall dlib
&& sudo pip3 uninstall face_recognition
&& sudo pip3 install -v --install-option="–no" --install-option=“DLIB_USE_CUDA” dlib
&& sudo pip3 install face_recognition

Afterwards it should compile in an Ubuntu 20 , noetic system.