Install dlib (the easy, complete guide)

Install dlib (the easy, complete guide)

The latest release of dlib is special.

It completely removes the boost.python dependency, making it significantly easier to install across the board on macOS, Ubuntu, and Raspbian.

Thanks to the work of Davis King (the creator and maintainer of the dlib library) and Mischan Toos-Haus (who is responsible for removing the boost.python dependency), we can now:

  • Easily leverage all Python + dlib functionality (face detection, facial landmarks, correlation tracking, etc.)…
  • …with less dependencies and an easier install process.

In today’s blog post I’ll be providing instructions to install dlib on:

  • macOS
  • Ubuntu
  • Raspbian (Raspberry Pi’s operating system)

These install instructions are complete, easy, to follow, and will get you up and running with dlib + Python bindings in a manner of minutes.

 

Install dlib (the easy, complete guide)

In this guide you’ll learn how to install dlib on macOS, Ubuntu, and Raspbian. Please feel free to skip to the section that corresponds to your operating system.

Once you have installed dlib on your respective operating system we’ll validate the install by using Python, dlib, and OpenCV (provided you have OpenCV installed as well), to detect facial landmarks.

From there, I have provided additional tutorials and guides to help apply dlib to computer vision and machine learning projects, including detecting and counting blinks and building a system to recognize when the driver of a vehicle is becoming drowsy/tired (and alerting them to wake up).

Installing dlib on macOS

I’ll assume you already have XCode installed on your macOS machine. If not, please take the time to open the App Store and install XCode.

From there, you’ll need to install Homebrew, a package manager for macOS, similar to Debian/Ubuntu’s aptget :

Note: Make sure you use the “<>” button in the code block above to expand section — this will ensure you copy and paste the entire Homebrew install command.

Once Homebrew is installed you need to update your PATH  to look for Homebrew binaries, packages, and libraries. This can be accomplished by manually editing the file using an editor such as nano, vi, etc. or simply using echo  and redirection:

You then need to source  the ~/.bash_profile  file to reload the changes:

We’ll then install cmake  (a utility used for building, testing, and packaging software) along with Python 2.7 and Python 3:

You can verify that Python 2.7 and Python 3 have been successfully installed by using which :

There are two key points you need to pay attention to here.

The first is that you want to ensure the root path for both Python binaries are in /usr/local/bin  — this is where Homebrew stores the Python binaries.

If your root path instead reads /usr/bin  then you are utilizing the system Python install. We want to avoid using the system Python install so if you see /usr/bin  instead of /usr/local/bin  then it’s most likely due to an error updating your ~/.bash_profile  (make sure you go back and ensure the file has been updated properly; this could require manually opening and editing the file).

The second key point to investigate is the Python binary itself: python2  and python3 . Notice how we are not executing just python  — instead we are explicitly supplying the version as well.

This is due to how Homebrew now handles Python installs. In older versions of Homebrew, Homebrew would automatically alias the python  command to either Python 2.7 or Python 3 — this is no longer the case. Instead, we need to explicitly supply the Python version number.

The name is true for pip  as well: we now use pip2  and pip3 .

Next, let’s prepare our Python environment.

If you are using a Python virtual environment (if you followed any of my OpenCV install tutorials, you likely are using them), you can either create a new Python virtual environment for the dlib install:

Or access an existing one:

Using a Python virtual environment is entirely optional but highly recommended as Python virtual environments are a best practice for Python development. To learn more about Python virtual environments (and how to use them) please consult my OpenCV install tutorials where they are covered extensively.

From there, we can install NumPy (dlib’s only Python dependency) followed by the dlib library itself:

If you are not using Python virtual environments you’ll need to update the pip  command to either pip2  or pip3 . If you are using Python 2.7, use pip2  instead of pip . Similarly, if you are utilizing Python 3, replace pip  with pip3 .

From there, fire up a Python shell and validate your install of dlib:

Figure 1: Successfully installing dlib on macOS.

Installing dlib on Ubuntu

The following instructions were gathered on Ubuntu 16.04 but should work on newer versions of Ubuntu as well.

To get started, let’s install our required dependencies:

I have included a few notes on the dependencies that you should consider:

  1. We are installing GTK and X11 for GUI functionality inside dlib. These libraries can be skipped if you do not care about the GUI functionality, saving you 100-200MB in space.
  2. We install OpenBLAS for linear algebra optimizations which allows dlib functionality to execute faster. You can technically skip this as well but I highly recommend you install OpenBLAS as the optimizations are significant.

Next, let’s prepare our Python environment for the dlib install.

If you are using a Python virtual environment (if you followed any of my OpenCV install tutorials, you likely are using them), you can either create a new Python virtual environment for the dlib install:

Or access an existing one:

Using a Python virtual environment is entirely optional but highly recommended as Python virtual environments are a best practice for Python development. To learn more about Python virtual environments (and how to use them) please consult my OpenCV install tutorials where they are covered extensively.

You can then install dlib on your Ubuntu system:

If you are not using a Python virtual environment make sure you add sudo  to the beginning of the pip install  commands (otherwise the pip install  commands will fail due permission errors). Additionally, keep in mind that pip  is used to install packages for Python 2.7 and pip3  is used for Python 3. Depending on which Python version you want to install dlib for you may need to update the pip  command above.

Finally, open up a Python shell and verify your dlib install on Ubuntu by importing the dlib  library:

Figure 2: Installing dlib on Ubuntu (Note: I was SSH’d into an Ubuntu machine in the Amazon EC2 cloud from my macOS machine when taking this screenshot, hence why the screenshot looks like the macOS GUI).

Installing dlib on Raspberry Pi/Raspbian

This section covers installing the dlib library on the Raspberry Pi and the Raspbian Stretch operating system. These instructions should work for newer releases of Rasbpian as well.

Our Raspbian dlib install is identical to our Ubuntu dlib install, but with a few minor adjustments:

  1. Both Python 2.7 and Python 3 are pre-installed on Raspbian so we do not need to install them ourselves.
  2. We need to install libatlasbasedev .
  3. We can optionally optimize our dlib install on the Raspberry Pi architecture via the USE_NEON_INSTRUCTIONS  switch (this will require you install dlib from source rather than pip ).

Let’s get started installing dlib on our Raspberry Pi by ensuring we have met our library/package dependencies:

A few quick notes on both X11/GTK and OpenBLAS:

  1. We are installing GTK and X11 for GUI functionality inside dlib. These libraries can be skipped if you do not care about the GUI functionality, saving you 100-200MB in space. Space can be a premium on the Raspberry Pi, but again, if you need GUI functionality make sure you install them.
  2. We install OpenBLAS for linear algebra optimizations which allows dlib functionality to execute faster. You can technically skip this as well but I highly recommend you install OpenBLAS as the optimizations are significant — any optimization you can achieve on the Raspberry Pi is well worth it!

Next, let’s prepare our Python environment for the dlib install on our Raspberry Pi.

If you are using a Python virtual environment (if you followed any of my OpenCV install tutorials, you likely are using them), you can either create a new Python virtual environment for the dlib install:

Or access an existing one:

Using a Python virtual environment is entirely optional but highly recommended as Python virtual environments are a best practice for Python development. To learn more about Python virtual environments (and how to use them) please consult my OpenCV install tutorials where they are covered extensively.

We can then install dlib on Raspberry Pi:

If you are not using a Python virtual environment make sure you add sudo  to the beginning of the pip install  commands (otherwise the pip install  commands will fail due permission errors). Additionally, keep in mind that pip  is used to install packages for Python 2.7 and pip3  is used for Python 3. Depending on which Python version you want to install dlib for you may need to update the pip  command above.

If you decide you would like to have the NEON instructions utilized to optimize the dlib install, skip installing dlib via pip  and instead install via source:

Compiling from source will take longer than installing via pip  so be patient.

Finally, open up a Python shell and verify your dlib install on Raspbian by importing the dlib  library:

Note: The dlib install version for the Raspberry Pi is different from my macOS and Ubuntu output as I installed from source to leverage the NEON optimizations rather than installing via pip.

Figure 3: Successfully installing dlib on the Raspberry Pi and Raspbian operating system.

Testing your dlib install

As a final example of using dlib on the Raspberry Pi, here is a short example I put together where we detect facial landmarks in an input image:

Note: This example assumes you have both OpenCV and dlib installed on your system. If you do not have OpenCV installed, please refer to my OpenCV install tutorials.

For a detailed review of the code above used for facial landmark prediction, please refer to my previous tutorial on the basics of facial landmarks.

To execute the above script:

  • Make sure you have installed OpenCV, dlib, and imutils ( pip install upgrade imutils ).
  • Use the “Downloads” section below to download the source code + example image + pre-trained dlib facial landmark predictor.

From there, you can issue the following command to execute our example script:

You should then see the following output where the facial landmarks are displayed on the image:

Figure 4: Detecting facial landmarks using the dlib library and Python.

Fun fact: The picture above is me ~8 years ago during my undergraduate college days. I actually had hair back then!

What now?

Now that you’re up and running with dlib I would recommend you:

  1. Install OpenCV on your system as well (if you haven’t already). I have a number of OpenCV install tutorials for macOS, Ubuntu, and Raspbian available here.
  2. Use your OpenCV + dlib install to build practical, real-world projects.

I would recommend starting with this tutorial where you’ll learn how to apply real-time facial landmark detection:

Figure 5: Using dlib to apply real-time facial landmark detector.

From there, you can utilize facial landmarks to build an eye blink detector:

Figure 6: Building an eye blink detector with dlib, OpenCV, and Python.

And then finally we put all the pieces together from the previous two tutorials to build a drowsiness detector:

Figure 7: Creating a drowsiness detector with dlib, OpenCV, and Python.

Be sure to take a look at the tutorials! They are fun, hands-on, and will give you a ton of experience building real-world computer vision applications with dlib and OpenCV.

Summary

In today’s blog post you learned how to install dlib on macOS, Ubuntu, and Raspbian.

Thanks to the work of Davis King and Mischan Toos-Haus it is now easier than ever to install dlib, requiring less dependencies and a faster pip install  process.

Take a second now to give both Davis and Mischan a huge thanks for their hard work and their contributions to the open source community.


小工蚁承诺为每一个客户量身打造新零售平台,提供全渠道电商平台、新零售平台系统和智慧无人零售平台。让企业软件像“中国制造”的商品一样物美价廉为使命。
了解小工蚁产品技术架构成功案例,想更好的了解我们的产品?联系我们,欢迎免费使用点击这里在线开通

原创文章,转载请注明: 转载自小工蚁科技

本文链接地址: Install dlib (the easy, complete guide)

沪公网安备 31010702002009号