こんにちわ。コンサルティング&テクノロジー部の佐藤です。
この記事は「ネクストスケープ クラウド事業本部 Advent Calendar 2017」の 12/14 の記事です。
最近、Dlibという機械学習ライブラリの検証をしております。
Dlibの公式ページは こちらです。
DlibはC++で実装されており、顔の器官検出が学習データ込みで公開されていたり、精度の高さで知られています。
C++での実装ですが、Python用のラッパーも提供されており、多くの方はPythonから利用していると思いますが、今回はC++で実装したプログラムからの利用を対象として進めます。
今回は2回に分けてVisual Studio2017でDlibをビルドし、サンプルの顔器官検出プログラムを動作させてみようと思います。
なお、Dlibのライセンス形態は、Boost Software Licenseというもので、商用利用が可能となっています。
詳しくはライセンスページを参照ください。
今回の検証は以下の環境で実施しました。
- OS: Windows 10 Pro
- Visual Studio : Visual Studio Enterprise 2017 version 15.4.4
- Dlib : ver19.7
- OpenCV : 3.3.1
※OpenCVはサンプルプログラムを動作させるためにインストールします。Dlib動作に必須ではありませんが一部のDlibの機能ではOpenCVを利用できるような構成になっています。また、今回の実行環境は64bit環境を前提に進めます。
それでは以下の流れで環境構築編を説明します。
- Visual studio2017の設定
- Dlibのインストール
- OpenCVのインストール
1. Visual Studio2017の設定
まずは開発環境のVisual Studioをインストールします。Visual Studioのエディションはどれでもいいのですが、
私は Visual Studio Enterprise 2017 Version 15.4.4の環境を使います。
インストールの際に、『C++によるデスクトップ開発』にチェックを入れる必要があります。
なお、『C++によるデスクトップ開発』はインストール後、
Visual Studio のメニューから『ツール(T)』->『ツールと機能を取得(T)...』より後からでも設定ができます。
2. Dlibのインストール
次に、Dlibをインストールします。
Dlibは公式ページ、またはGithub
から最新版をダウンロードすることができます。
今回は、2017/12/14時点の最新版(ver19.7)を公式からダウンロードして使います。
ダウンロードが完了したら、任意のフォルダにZipを解凍します。
私は『C:\ns\dlib-19.7』となるように解凍しました。
解凍ができましたら、Cmakeを使ってVisual Studio 2017用のソリューションを生成します。
なお、CMakeはここからダウンロードできます。
私はcmake-3.9.6-win64-x64.msiをダウンロードし、インストールしました。
コマンドラインが苦手な方はGUIも用意されているので便利ですね。
CMakeが用意できたら、コマンドプロンプトを開きDlibを解凍したフォルダ(C:\ns\dlib-19.7)をカレントにしてから
下記のコマンドを実行します。
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..
cmake --build .
正常に実行が完了すると、buildフォルダ下にVisual Studio2017のソリューションファイル(Project.sln)が生成されます。
それでは、Project.slnをVisual Studioで開きbuildしましょう。
ソリューションファイルを開いた際にbuildターゲットがwn32になっていたらcmakeのコマンドがまちがっています。
いったんbuildフォルダを削除し、正確なコマンドを入れましょう。
『C:\ns\dlib-19.7\build64\dlib\Release』 にdlib.libが生成されます。
3. OpenCVのインストール
それでは、引き続きOpenCVをインストールします。
DlibはOpenCVがなくても動作するのですが、OpenCVとの連携がスムーズに行えるような実装になっています。
今回はOpenCVを使っているサンプルを動かすために合わせてインストールしていきます。
OpenCVのGithubから opencv-3.3.0-vc14.exe を選択してダウンロードします。
上記をダウンロードすると、既にビルド済みの.libと.dllが含まれているため、ビルドをする必要がありません。
ダウンロードできたら、任意のフォルダに解凍します。
私は『C:\ns\opencv』 となるように実行しました。
ここまでで環境構築終了です。
次回は実際にサンプルプロジェクトを作成して動かしていきたいと思います。