Dlib のインストール(Ubuntu 上)
【概要】
Ubuntu での手順を説明する.(Windows でのインストールは別ページで説明)Dlib は,機械学習などのライブラリである.顔認知,顔検出,顔特徴の抽出の機能もある. Dlib を用いた顔検出,顔識別,表情,顔分類,肌色領域推定については,別ページ »にまとめている.
Dlib の URL: http://dlib.net
先人に感謝する.
【目次】
【関連する外部ページ】
- Dlib を用いての Convolutional Neural Network による顔検出サンプルプログラム (C++)
- Dlib を用いての Convolutional Neural Network による顔検出サンプルプログラム (Python)
- Max Margin Object Detection の loss layer を実装した学習のサンプルプログラム (C++)
- 68 ランドマークと Web カメラを用いた顔検出(OpenCV を利用) (C++)
Dlib 内に実装された estimator を利用(One Millisecond Face Alignment with an Ensemble of Regression Trees by Vahid Kazemi and Josephine Sullivan, CVPR 2014)
iBUG 300-W face landmark dataset を用いて学習(https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/)
学習済みデータは http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 (ライセンス条項に注意すること。商用不可)
自分で学習したいときは http://dlib.net/train_shape_predictor_ex.cpp.html
- 68 ランドマークのサンプルプログラム(学習済みモデルを使用)(C++)
- LeNet Convolutional Neural Network による手書き文字認識のサンプルプログラム (C++)
LeCun, Yann, et al. "Gradient-based learning applied to document recognition." Proceedings of the IEEE 86.11 (1998): 2278-2324.
- ディープラーニング用のツール(メモリに入らない量の教師データなど) (C++)
【サイト内の関連情報】
- Dlib,face_recognition を用いた顔検出,顔識別などについて: 別ページ »にまとめ
- 説明資料: Dlib の機能概要 [PDF], [パワーポイント]
- Windows での Dlib の最新版のインストール: 別ページ »で説明
第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 上)
- 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 - 動作確認
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
- 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 - 確認のため,バージョンを表示する
端末で,次のコマンドを実行する.
エラーメッセージが出ないこと.
python3 -c "import dlib;print(dlib.__version__)"
- 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 - 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 .