YoloV3/YoloV4をWindows10PCで動かす為の設定方法...備忘録
Cmake とVS2017でビルド
- Windows10環境への導入準備
とりあえずgitをインストールしていない場合はインストールしておきましょう。
https://gitforwindows.org/ からダウンロードできます。詳細は、紹介サイトが沢山あるので割愛します。
デフォルトのままインストールして問題ないと思いますが、IncreadyBuildという常駐ソフトも一緒にインストールされる様なので、不要な場合はアンインストールした方がいいかも。常駐型なので。
このソフトはコンパイル時にネット上の他のPCの力も借りる事が可能になるソフトの様ですが、そんな重い物はコンパイルしないので私は不要。
C:\Program Files(x86)\IncrediBuild\Install.exe を実行するとアンインストールできます。
ここで私が大はまりしたポイント
各アプリは相互依存関係にある為、インストールの順番を守る事! これ絶対。
既に必要なアプリがインストールされている場合は、念のため上書きインストールするのが無難な気がします。
- インストール
- インストール・フォルダの用意
Yoloをインストールしたいフォルダを作成し(ここではD:¥Yoloで説明)、コマンドプロンプト(管理者として実行)ウィンドウを開いて、カレントを(例)D:\yoloにしておく。
コマンドプロンプトのウィンドウは開けたまま放置でOK
① Visual Studio Community 2017 のインストール
まずマイクロソフトのアカウントが必要になるので用意。
https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes の Visual Studio 2017をダウンロードする を選択してまずはインストーラーをインストールして起動。
VS2017インストーラーでのC++の次の項目を選択、更に言語パックで「英語」「日本語」の二つを選択してインストールする。
そこそこ時間がかかります。 - CUDAのインストール
https://developer.nvidia.com/cuda-10.2-download-archive からCUDA10.2
をダウンロードしてデフォルト設定でインストール。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA¥2 にインストールされます。この場所は後で環境変数に設定します。
それと今のYoloV3/YoloV4にはcuda10.2が良いみたいです。 - cuDNNのインストール
https://developer.nvidia.com/rdp/cudnn-download からcuDNN Library for Windows10をダウンロードして、取得したcuDNN-10.2.windows10-x64-v8.1.1.33.zipを展開し、CUDAがあるC:¥ProgramFiles¥Nvidia GPU Computing Toolkit¥cuda¥2内の次のフォルダ(同じ名前のフォルダ)にコピーする。
特にインストールとかはありません。
cuda\10.2 ------- bin ==> bin
----- include ==> include
----- lib --- x64 ==> lib\x64
- OpenCVのインストール
https://opencv.org/releases/page/3/ からOpenCv-2.4.13.6をダウンロードしてインストール。
インストール先は何処でも良いのですが、これも後で環境変数に入れ込むので場所を把握しておく。
バージョンはx.xでも動くらしいのですが、私は無難にv2.4を選択しました。
インストール時に例えばD:\Yoloを指定すると、その下にopenCVフォルダが自動作成されそこにインストールがされます。 - Cmakeのインストール
https://cmake.org/download/ からcmake-3.19.6-win64-x64.msiをダウンロード。
まだv20.xは安定板ではない様なのでv3.19.6を使用しました。
デフォルト設定で好みの場所にインストールして構いませんが、インストー時のオプションで
〇 Add Cmake to the System PATH for All usersを選択する。
を選択すると面倒がないでしょう。特に何も邪魔しないし。 - システム環境変数を追加設定する。
環境変数の設定方法は、沢山ヒットするサイトがあると思うのでそちらをご参考に。
CUDA_BIN_PATH :
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
CUDA_TOOLKIT_ROOT_DIR :
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
OPENCV_DIR : インストール先をフルパスで
VCPKG_DEFAULT_TRIPLET : x64-windows
VCPKG_ROOT : vcpkgのインストール先\vcpkg <== 7. のvcpkgをインストール予定のフォルダ
PATHに OpenCVのインストール先\openCV\build\x64\vc14\bin を追加 - Vcpkgのインストール
開けておいたコマンドプロンプト(例)D:\Yolo)から、git clone https://github.com/Microsoft/vcpkg.git を実行すると、D:¥Yolo¥vcpkgにインストールされます。インストール先は任意ですが、設定した環境変数に合わせて。その後順次、次のコマンドを実行する。
cd vcpkg(vcpkgのインストール先をカレントにして…)
Bootstarap-vcpkg.bat
vcpkg integrate install
vcpkg install curl
vcpkg install curl:x86-windows
vcpkg install curl:x64-windows
vcpkg install curl:x64-windows-stati
※ VS2017の言語パックで英語を選択し忘れていると、エラーになります。
- Darknet(YoloV4)のクローニング
コマンドプロンプトD:¥Yoloに戻りクローニングする。
git clone https://github.com/AlexeyAB/darknet - Cmakeで環境構築
WindowsからCmake-guiを実行し、
Where is the source code : D:¥Yolo¥darknet
Where to build the binaries : D:\Yolo\darknet\build
を指定して、[Configure]を実行。VisualStudis2017とx64を選択し[Finish]で実行。
暫くすると次ページの画面となり、エラー発生がなければ[Generate]する。
この処理は結構時間がかかります。ゆっくりコーヒーが飲めるくらい。
特にエラーが無くても画面が赤くなることがあるので、良く吐き出されるコメントを見て騙されない様に。
※ PC環境により多少変化がありZED_SDK not Foundとなる場合があります。
その場合は https://www.stereolabs.com/developers/release/ からCUDAのバージョンに合わせた CUDA 10.2 ZED SDK for Windows10 を選択してダウンロード,実行。
このインストールには再起動が必要となる。
Cmake後、D:¥Yolo¥darknet¥build¥darknet.slnが出来ていれば成功。 - VisualStudio2017でのコンパイル
構成を[Release],プラットフォームを[x64]に選択。
メニューからソリューションのビルドを選択して、darknetをビルドする。
下の例だとE:¥Yolo¥darknet¥build¥Release¥darknet.exeが完成する。
- 動作確認(コマンドプロンプトD:Yolo\darknetから実行)
weightファイルは次から取得できます。
どちらもコマンドプロンプト(例)D:¥Yolo¥darknetをカレント)にして実行する。
YoloV3 : wget https://pjreddie.com/media/files/yolov3.weights
YoloV4 :https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
<< 実行テスト >>
build\Release\darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25 -ext_output data/dog.jpg
(2行に見えますが、1行に書き込む。)
こちらの環境ではこの予測実行に YoloV3≒17msec YoloV4≒28msec かかりました。 (CPU:i9-9900/GPU:RTX2080Ti)
- インストール・フォルダの用意