Skip to content

Instantly share code, notes, and snippets.

@ageitgey
Last active January 8, 2026 07:57
Show Gist options
  • Select an option

  • Save ageitgey/1ac8dbe8572f3f533df6269dab35df65 to your computer and use it in GitHub Desktop.

Select an option

Save ageitgey/1ac8dbe8572f3f533df6269dab35df65 to your computer and use it in GitHub Desktop.

Install dlib and face_recognition on a Raspberry Pi

Instructions tested with a Raspberry Pi 2 with an 8GB memory card. Probably also works fine on a Raspberry Pi 3.

Steps

Download the latest Raspbian Jessie Light image. Earlier versions of Raspbian won't work.

Write it to a memory card using Etcher, put the memory card in the RPi and boot it up.

Log in. Default username / password is pi / raspberry.

Set up Wifi (if you are using Wifi) according to the Raspberry Pi instructions.

Run sudo raspi-config and configure the basics:

  • Set up your keyboard layout (It defaults to a British keyboard layout)
  • Change default user password
  • Enable the Raspberry Pi camera (if you have one attached)
  • Configure gpu memory split under 'Advanced'. Set it up '16'.
  • Save changes and reboot.

Install required libraries with these commands:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential \
    cmake \
    gfortran \
    git \
    wget \
    curl \
    graphicsmagick \
    libgraphicsmagick1-dev \
    libatlas-dev \
    libavcodec-dev \
    libavformat-dev \
    libboost-all-dev \
    libgtk2.0-dev \
    libjpeg-dev \
    liblapack-dev \
    libswscale-dev \
    pkg-config \
    python3-dev \
    python3-numpy \
    python3-pip \
    zip
sudo apt-get clean

Install the picamera python library with array support (if you are using a camera):

sudo apt-get install python3-picamera
sudo pip3 install --upgrade picamera[array]

Temporarily enable a larger swap file size (so the dlib compile won't fail due to limited memory):

sudo nano /etc/dphys-swapfile

< change CONF_SWAPSIZE=100 to CONF_SWAPSIZE=1024 and save / exit nano >

sudo /etc/init.d/dphys-swapfile restart

Download and install dlib v19.6:

mkdir -p dlib
git clone -b 'v19.6' --single-branch https://github.com/davisking/dlib.git dlib/
cd ./dlib
sudo python3 setup.py install --compiler-flags "-mfpu=neon"

Install face_recognition:

sudo pip3 install face_recognition

Revert the swap file size change now that dlib is installed:

sudo nano /etc/dphys-swapfile

< change CONF_SWAPSIZE=1024 to CONF_SWAPSIZE=100 and save / exit nano >

sudo /etc/init.d/dphys-swapfile restart

Download the face recognition code examples:

git clone --single-branch https://github.com/ageitgey/face_recognition.git
cd ./face_recognition/examples
python3 facerec_on_raspberry_pi.py

Totally Optional: If you want a desktop GUI, install PIXEL:

sudo apt-get install --no-install-recommends xserver-xorg xinit raspberrypi-ui-mods
@JoeyLi-1
Copy link

JoeyLi-1 commented Jan 5, 2026

Hey @LouayTselkim,

Thanks for sharing! That is great!
Can you share the OS version as well? I m on Trixie and am stuck at "libatlas-base-dev". It is not there anymore.
Seems this support it.
I don`t know which is better? Downgrade OS version or try to compile it from source code.

UPDATE:
If you want to follow instruction above. DO NOT use PI OS bookwork or later. Start from bookworm, you can not do "pip install" to install python packages globally any more.

Finally, I successfully install it on Bullseye.
PI: 3B
OS: Bullseye
Issues encountered:

  • Can not find "libtbbmalloc2". Add related bookworm source in etc/apt/sources.list.d/rasp.list
  • PICamera does not support usb camera. Install python-opencv instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment