Dlib のインストール(Ubuntu 上)

概要

Ubuntu での手順を説明する.(Windows でのインストールは別ページで説明)

Dlib は,機械学習などのライブラリである.顔認知,顔検出,顔特徴の抽出の機能もある. Dlib を用いた顔検出,顔識別,表情,顔分類,肌色領域推定については,別ページ »にまとめている.

Dlib の URL: http://dlib.net

先人に感謝する.

目次

関連する外部ページ

サイト内の関連情報

第1章 前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.これは,パッケージ情報を最新の状態に保ち,インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである.

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

Git, cmake, curl, bzip2 のインストール

インストールするには,端末で,次のコマンドを実行する.

sudo apt -y install git cmake cmake-curses-gui cmake-gui curl bzip2

C/C++ コンパイラと Make とビルドツールのインストール

ソフトウェアをソースコードからビルドするには,C/C++ コンパイラ(通常は GCC)や make ユーティリティといった開発ツールが重要である.Ubuntu では,これらのツールは build-essential パッケージにまとめられている.インストールするには,端末で,次のコマンドを実行する.

sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config

libtool, texinfo, dpkg-dev, pkg-config は,より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである.

第2章 Dlib のインストール(Ubuntu 上)

  1. Dlib のインストール

    端末で,次のコマンドを実行する.

    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install libdlib-data libdlib-dev
    sudo apt -y install libdlib19
    sudo apt -y install liblapack-dev libblas-dev
    
  2. 動作確認

    Dlib の確認のため,次の顔検出 (face detection) のプログラムを動かしてみる.

    #include<dlib/image_processing/frontal_face_detector.h>
    #include<dlib/image_io.h>
    #include<iostream>
    
    using namespace dlib;
    using namespace std;
    
    int main(int argc, char** argv)
    {  
      frontal_face_detector detector = get_frontal_face_detector();
      array2d<unsigned char> img;
      load_image(img, argv[1]);
      pyramid_up(img);
      std::vector<rectangle> dets = detector(img);
      std::vector<rectangle>::iterator it;
      for( it = dets.begin(); it != dets.end(); it++ )
        cout << *it << endl; 
    }
    

    このプログラムを a.cpp のようなファイル名で保存する.次のコマンドでビルドする.

    g++ -o a.out a.cpp -ldlib -llapack -lblas
    

    次のように,画像ファイル名を指定して実行する.

    実行の結果,顔検出 (face detection) ができていることを確認する.

    ./a.out /usr/share/doc/libdlib19/examples/faces/2007_007763.jpg
    
  3. Python の Dlib の最新版のインストール

    Dlib のソースコードをダウンロードしてインストールする. このとき,Dlib の python_examples, tools のファイルを /usr/share/doc/libdlib19 以下にコピーすることも行う.

    /usr/local/cuda」のところは,NVIDIA CUDA ツールキットをインストールしたディレクトリに読み替えること.

    端末で,次のコマンドを実行する.distutils は Python 3.12 で削除されたため,python3 setup.py ではなく pip install でビルド・インストールする.

    cd /tmp
    sudo rm -rf dlib
    sudo git clone https://github.com/davisking/dlib
    sudo chown -R $USER dlib
    #
    cd /tmp/dlib
    CUDA_PATH="/usr/local/cuda" CFLAGS="-I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" \
    pip install -U --no-user .
    cd /tmp/dlib
    sudo rm -f /tmp/dlib.tar
    sudo tar -cpf /tmp/dlib.tar ./python_examples  ./tools
    cd /usr/share/doc/libdlib19
    sudo tar -xpf /tmp/dlib.tar
    
  4. 確認のため,バージョンを表示する

    端末で,次のコマンドを実行する.

    エラーメッセージが出ないこと.

    python3 -c "import dlib;print(dlib.__version__)"
    
  5. Dlib でよく使用するファイルをダウンロード

    端末で,次のコマンドを実行する.これにより, 顔識別などに利用できるファイルの ダウンロードと展開(解凍)が行われる.

    cd /usr/share/dlib
    sudo curl -O http://dlib.net/files/mmod_human_face_detector.dat.bz2
    sudo curl -O http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
    sudo curl -O http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
    sudo curl -O http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
    sudo bzip2 -d mmod_human_face_detector.dat.bz2
    sudo bzip2 -d dlib_face_recognition_resnet_model_v1.dat.bz2
    sudo bzip2 -d shape_predictor_5_face_landmarks.dat.bz2
    sudo bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
    
  6. htmlify, imglab, example のビルドとインストール

    端末で,次のコマンドを実行する.

    /usr/local/cuda」のところは,NVIDIA CUDA ツールキットをインストールしたディレクトリに読み替えること.

    sudo rm -rf /tmp/dlib.tar /tmp/tools
    cd /usr/share/doc/libdlib19
    tar -cpf /tmp/dlib.tar ./tools
    cd /tmp
    tar -xpf /tmp/dlib.tar 
    sudo chown -R $USER tools
    
    #
    cd /tmp
    cd tools/htmlify
    sudo rm -rf build
    mkdir build
    cd build
    cmake ..
    cmake --build . --config Release 
    sudo make install
    
    cd /tmp
    cd tools/imglab
    sudo rm -rf build
    mkdir build
    cd build
    cmake ..
    cmake --build . --config Release 
    sudo make install
    
    cd /tmp
    cd examples
    sudo rm -rf build
    mkdir build
    cd build
    cmake ..
    cmake --build . --config Release 
    

第3章 ageitgey の face_recognition のインストール

face_recognition の動作には,Dlib が必要である.

cd /usr/local
sudo rm -rf face_recognition
sudo apt -y install python3-click python3-numpy python3-pillow python3-scipy
sudo git clone https://github.com/ageitgey/face_recognition
cd face_recognition
pip install -U --no-user .