【目次】
【サイト内の関連ページ】
【用語説明】
Dlibは,数多くの機能を持つ C++ ライブラリ.機能には,機械学習,数値計算,グラフィカルモデル推論,画像処理,スレッド,通信,GUI,データ圧縮・一貫性,テスト,さまざまなユーティリティなどがある.Python API もある.
Dlib には,Convolutional Neural Network (CNN) による顔検出の機能がある.
Dlib による顔検出の例
顔検出が行われ,顔を囲むようなバウンディングボックス (bounding box) が表示される.
バウンディングボックスの座標値が数値データとして得られる
顔のランドマーク検知が行われ,顔を囲むようなバウンディングボックス (bounding box) と,顔のランドマークが表示される.
Windows での Git のインストール: 別ページ »で説明
【関連する外部ページ】
Git の公式ページ: https://git-scm.com/
Windows での cmake のインストール: 別ページ »で説明
【関連する外部ページ】
cmake の公式ダウンロードページ: https://cmake.org/download/
Windows での 7-Zip のインストール: 別ページ »で説明
【関連する外部ページ】
7-Zip の公式ページ: https://sevenzip.osdn.jp/
Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール: 別ページ »で説明
【サイト内の関連ページ】
Python のまとめ: 別ページ »にまとめ
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
Windows での Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.6 のインストールと動作確認: 別ページ »で説明
【関連する外部ページ】
前準備として, Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)もしくはVisual Studio 2022 のインストールを終えておくこと.
次のコマンドを実行.エラーメッセージが出なければ OK.
where cmake
cd C:\ rmdir /s /q dlib git clone https://github.com/davisking/dlib
古いバージョンの Dlib を使いたい場合には,次のように行う
cd C:\ curl -O http://dlib.net/files/dlib-19.19.zip "c:\Program Files\7-Zip\7z.exe" xdlib-19.19.zip move dlib-19.19 dlib
cmake のオプションの 「Visual Studio 17 2022」のところは, 使用する Visual Studio のバージョンにあわせること. Visual Studio 2022 のときは,「Visual Studio 17 2022」. Visual Studio 2019 のときは,「Visual Studio 16 2019」.
「11.8」のところは,実際にインストールしている NVIDIA CUDA ツールキットのバージョンにあわせること.
NVIDIA CUDA ツールキットを使わないときは「-DDLIB_USE_CUDA=NO」を付けて,そのことを指定する.
cd C:\dlib rmdir /s /q build mkdir build cd build del CMakeCache.txt cmake .. -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DCUDA_SDK_ROOT_DIR="c:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8" ^ -DCUDA_TOOLKIT_ROOT_DIR="c:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8" ^ -DCUDA_NVCC_FLAGS="-allow-unsupported-compiler" ^ -DCUDA_NVCC_FLAGS_DEBUG="-allow-unsupported-compiler" ^ -DCMAKE_INSTALL_PREFIX=c:/dlib ^ -DDLIB_GIF_SUPPORT=OFF
エラーメッセージが出ていないことを確認
このとき「CMake Error: The soruce directory ... does not appear to contain CMakeLists.txt」と表示されるかもしれない.
このときは,続行せず,次の手順で対処する.
→無い場合,原因は,Dlib のソースコードのダウンロードを間違ったか,cd の操作を間違ったようである.このページを参考に,Dlib のソースコードのダウンロードのところからやり直す.
→ある場合,原因は cmake のオプションに「..」を入れ忘れていたかもしれない.もう一度 cmake の実行をやり直してみる.
CUDA との連携ができている場合には、 「DLIB WILL USE CUDA」と表示される
CUDAと連携する Dlib を動かすには,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストールが必要.
NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストールは終わっているのに,「DLIB WILL USE CUDA」と表示されない場合がある.
Windows のユーザ名が日本語のとき, ユーザ環境変数 TEMP に日本語が含まれることになり,nvcc がうまく動作しない可能性がある.
この問題を回避するため. ユーザ環境変数 TEMP の設定を行う.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP call powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
cmake --build . --config RELEASE --target INSTALL
エラーメッセージが出ていないことを確認
かなり時間がかかる.
次を実行する.エラーメッセージが出ないことを確認.警告メッセージ(黄色)は無視してよい.
「cd C:\dlib」の次に「cd dlib」があるのは書き間違いではない.
このとき,赤字のエラーメッセージが出る場合があるが,無視しても問題なさそうである.
cd C:\dlib cd dlib cd test rmdir /s /q build mkdir build cd build cmake .. cmake --build . --config Release
引き続き,次を実行する. 時間がかかる.
.\release\dtest --runall
「All tests completed successfully」のように表示されたら問題ない.
python -m pip uninstall -y dlib cd C:\dlib python setup.py build --no DLIB_GIF_SUPPORT python setup.py install --no DLIB_GIF_SUPPORT
エラーメッセージが出ていないことを確認
バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.
python -c "import dlib; print( dlib.__version__ )"
※ dlib を用いた顔検出、顔識別などについては, 別ページ »にまとめ
コマンドプロンプトを管理者として実行: 別ページ »で説明
call powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\dlib\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
次のコマンドを実行.することにより, 顔識別などに利用できるファイルの ダウンロードと展開(解凍)が行われる. 次のコマンドを実行するには,curl と 7-Zip が必要である. curl のインストールは 別ページ »で説明 7-Zip のインストールは 別ページ »で説明
cd C:\dlib cd python_examples curl -O http://dlib.net/files/mmod_human_face_detector.dat.bz2 curl -O http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2 curl -O http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2 curl -O http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 "c:\Program Files\7-Zip\7z.exe" x mmod_human_face_detector.dat.bz2 "c:\Program Files\7-Zip\7z.exe" x dlib_face_recognition_resnet_model_v1.dat.bz2 "c:\Program Files\7-Zip\7z.exe" x shape_predictor_5_face_landmarks.dat.bz2 "c:\Program Files\7-Zip\7z.exe" x shape_predictor_68_face_landmarks.dat.bz2 del mmod_human_face_detector.dat.bz2 del dlib_face_recognition_resnet_model_v1.dat.bz2 del shape_predictor_5_face_landmarks.dat.bz2 del shape_predictor_68_face_landmarks.dat.bz2
Dlib の動作確認のため,次を実行.エラーメッセージが出ずに,顔検出の結果が表示されれば OK とする.
cd C:\dlib cd python_examples python cnn_face_detector.py mmod_human_face_detector.dat ..\examples\faces\2007_007763.jpg
サイト内の別ページに Dlib の利用についてまとめているので,活用してください.
上の手順でうまく dlib をインストールできないとき.
このページでは, CUDA と連携させたい,最新版を使いたいという理由で, pip を用いずに,コマンド(手動)で,ソースコードをダウンロードし,ビルドしてインストールしている.
上の手順でうまくいかないときは,次の(1),(2),(3),(4)で解決する可能性がある.
(1)cmakeにパスが通っているかを確認する
(2)Python のインストール: 別ページ »で説明のときに, 「Install for all users」をチェックしなかった場合にトラブルが起きることがある. Python をインストールし直す(このとき, 「Install for all users」をチェック)と簡単に解決できる場合がある.
(3)なお,NVIDIA GPU と Visual Studio Community 2019 を使う場合には, CUDA バージョン 10.1 以上と,それに合う cuDNN をインストールすること.
(4)最新版のDlib でなく,古いバージョンの Dlib を使うと解決できる場合はある.その手順については,このWebページの上に説明がある.
(5)pip を用いて,インストール操作するとうまく動くようになる場合がある.その手順は次の通り.
コマンドプロンプトを管理者として実行: 別ページ »で説明
python --version
「dlib==19.19」とあるのはバージョン指定. 上の手順でうまく dlib をインストールできない場合は,別のバージョン(古いバージョンなど)を指定してインストールすることで,問題を回避できる可能性がある
python -m pip install -U dlib==19.19
python -c "import dlib; print( dlib.__version__ )"
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行する.
python -m pip install -U numpy scikit-image scikit-learn
cd %HOMEPATH% rmdir /s /q face_recognition git clone https://github.com/ageitgey/face_recognition cd face_recognition copy C:\dlib\python_examples\shape_predictor_68_face_landmarks.dat . python setup.py build python setup.py install
コマンドプロンプトで次のコマンドを実行
mkdir %HOMEPATH%\face_recognition\known_people mkdir %HOMEPATH%\face_recognition\unknown_pictures
%HOMEPATH%\face_recognition\examples にある顔画像のファイル 「biden.jpg」と「obama.jpg」を,先ほど作成した ディレクトリ known_people の下にコピー
copy %HOMEPATH%\face_recognition\examples\biden.jpg %HOMEPATH%\face_recognition\known_people copy %HOMEPATH%\face_recognition\examples\obama.jpg %HOMEPATH%\face_recognition\known_people
copy %HOMEPATH%\face_recognition\examples\two_people.jpg %HOMEPATH%\face_recognition\unknown_pictures
unknown_pictures の下にある画像ファイルを、 known_people 下の画像ファイルを照合して顔識別を行うコマンド
cd %HOMEPATH%\face_recognition face_recognition --show-distance true known_people unknown_pictures
cd %HOMEPATH%\face_recognition face_detection --model cnn unknown_pictures
表示される4つの数字は、顔領域の座標値
※ その他,Dlib を用いた顔検出、顔識別などについては, 別ページ »にまとめ
今度は,Dlib 付属のツール類をインストールしたい
http://dlib.net/compile.html の記述に従う
cd C:\dlib cd tools\htmlify rmdir /s /q build mkdir build cd build cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DCMAKE_INSTALL_PREFIX="c:\dlib" .. cmake --build . --config RELEASE cmake --build . --config RELEASE --target INSTALL
結果を確認.エラーメッセージが出ていないこと
cd C:\dlib cd tools\imglab rmdir /s /q build mkdir build cd build cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DCMAKE_INSTALL_PREFIX="c:\dlib" .. cmake --build . --config RELEASE cmake --build . --config RELEASE --target INSTALL
結果を確認.エラーメッセージが出ていないこと
imglab の使用法については 別ページ »で説明
今度は,examples をビルドしたい
http://dlib.net/compile.html の記述に従う