トップページインストール,運用Ubuntu ソフトウエアDlib 最新版のインストール(Ubuntu 上)

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

Dlibは「apt install libdlib-dev」で簡単にインストールできるが,最新版を追いかけたい場合.自分の環境にあわせてビルドしたい(NVidia CUDA を使うなど)場合は,ソースコードからビルドする.

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

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

Dlib の URL: http://dlib.net

【このページの目次】

  1. 前準備
  2. Dlib のソースコードのダウンロードとビルド
  3. システム Python 以外(virtualenv や pyenv や Anaconda)を用いる場合のインストール手順

サイト内の関連ページ

先人に感謝.

参考 Web ページ

前準備

OS のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行.

sudo apt update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)

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

sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv

Python 開発環境(JupyterLab, spyder, nteract)のインストール(Ubuntu 上)

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

sudo pip3 uninstall ptyprocess sniffio terminado tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
sudo apt -y install jupyter jupyter-qtconsole spyder3
sudo apt -y install python3-ptyprocess python3-sniffio python3-terminado python3-tornado 
sudo pip3 install -U jupyterlab nteract_on_jupyter

git, cmake, wget, p7zip-full のインストール

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

sudo apt -y install git cmake cmake-curses-gui cmake-gui wget p7zip-full

C/C++ コンパイラー,make,パッケージツールのインストール

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

sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config

(NVIDIA GPU を使うとき)NVIDIA グラフィックスドライバのインストール

GPU とは,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

ダウンロードページ

詳しくは,次のように別ページで説明している.インストール手順が分からなくなったり,不具合があったときは,次に書いている別ページの説明を確認すること.

(NVIDIA GPU を使うとき)NVIDIA CUDA ツールキットのインストール

CUDA とは,NVIDIA社が提供している GPU 用のプラットフォームである.

ダウンロードページ

詳細説明

(NVIDIA GPU を使うとき)NVIDIA cuDNN のインストール

ダウンロードページ

詳細説明

Dlib のソースコードのダウンロードとビルド

  1. Dlib のソースコードのダウンロード

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

    cd /usr/local
    sudo rm -rf dlib
    sudo git clone https://github.com/davisking/dlib
    

    [image]
  2. cmake の実行

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

    プロセッサの AVS の機能を使いたいときは、cmake のオプションに「-DUSE_AVX_INSTRUCTIONS=YES」を付ける.

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

    ※ NVIDIA グラフィックスドライバ (https://www.nvidia.com/download/index.aspx), NVIDIA CUDA ツールキット 11.0,NVIDIA cuDNN 8.0.5 のインストール: 別ページで説明している.

    cd /usr/local/dlib
    sudo rm -rf build
    sudo mkdir build
    cd build
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES ..
    

    [image]
  3. 結果の確認

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

    [image]
  4. ビルド

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

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

    しばらく待つ.

    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake --build .
    

    [image]
  5. 結果の確認

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

    [image]
  6. インストール
    sudo make install 
    

    [image]
  7. 結果の確認

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

    [image]
  8. python の確認

    ※ Ubuntu システムの中のどの Python が使用されるかを事前に確認しておくため。

    which python3
    

    [image]
  9. python についてビルドとインストール

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

    cd /usr/local/dlib
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo python3 setup.py build
    sudo python3 setup.py install 
    
  10. 結果の確認

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

    [image]
  11. 確認のため,バージョンを表示

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

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

    python3
    import dlib
    print(dlib.__version__)
    exit()
    

    [image]
  12. Dlib でよく使用するファイルをダウンロード

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

    cd /usr/local/dlib/python_examples
    sudo wget http://dlib.net/files/mmod_human_face_detector.dat.bz2
    sudo wget http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
    sudo wget http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
    sudo wget 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
    
  13. example のビルドとインストール
    cd /usr/local/dlib
    cd examples
    sudo rm -rf build
    sudo mkdir build
    cd build
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES ..
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake --build .
    

Dlib を使う C++ プログラム

  1. Dlib の確認のため,次のプログラムを動かしてみる.
    #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; 
    
      image_window win;
      win.clear_overlay();
      win.set_image(img);
      win.add_overlay(dets, rgb_pixel(255,0,0));
      cin.get();
    }
    
  2. このプログラムを a.c のようなファイル名で保存する.次のコマンドでビルドする.
    g++ -o a.exe a.c -ldlib -llapack -lblas 
    
  3. 次のように、画像ファイル名を指定して実行する
    ./a.out 2007_007763.jpg 
    

システム Python 以外(virtualenv や pyenv や venv や Anaconda)を用いる場合のインストール手順

前準備

  1. 使用する Python の確認

    ※ どの Python が使用されるかを事前に確認しておくため。

    which python 
    

    次のように表示されたら pyenv をインストール済みであることが確認できる

    [image]
  2. python 環境の有効化
  3. Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)

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

    sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv
    
  4. 今開いている端末は、引き続き使用する

Dlib のソースコードのダウンロードとビルド

  1. Dlib のソースコードのダウンロード

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

    cd /usr/local
    sudo rm -rf dlib
    sudo git clone https://github.com/davisking/dlib
    

    [image]
  2. cmake の実行

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

    プロセッサの AVS の機能を使いたいときは、cmake のオプションに「-DUSE_AVX_INSTRUCTIONS=YES」を付ける.

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

    ※ NVIDIA グラフィックスドライバ (https://www.nvidia.com/download/index.aspx), NVIDIA CUDA ツールキット 11.0,NVIDIA cuDNN 8.0.5 のインストール: 別ページで説明している.

    cd /usr/local/dlib
    sudo rm -rf build
    sudo mkdir build
    cd build
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake -DUSE_AVX_INSTRUCTIONS=YES -DDLIB_USE_CUDA=YES ..
    

    [image]
  3. 結果の確認

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

    [image]
  4. ビルド

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

    しばらく待つ.

    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    sudo cmake --build .
    

    [image]
  5. 結果の確認

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

    [image]
  6. インストール
    sudo make install 
    

    [image]
  7. 結果の確認

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

    [image]
  8. ビルドとインストール

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

    cd /usr/local/dlib
    sudo chown $USER -R /usr/local/dlib
    CUDA_PATH="/usr/local/cuda-10.1" CFLAGS="-I/usr/local/cuda-10.1/include" LDFLAGS="-L/usr/local/cuda-10.1/lib64" \
    python setup.py build
    python setup.py install 
    
  9. 結果の確認

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

    [image]
  10. python のimport で確認

    次のように実行

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

    python
    import dlib
    print(dlib.__version__)
    exit()
    

    [image]