コンテンツへスキップ

AlexeyAB Darknet YOLO V4をWindowsへインストール

YOLO V4を利用する

AlexeyAB Darknet YOLO V3をJetson Nano、Windows、Ubuntuで利用しています。YOLO V3でまったく不満がないのですが、2021年GWは在宅時間も長く、YOLO V4をインストールして使ってみました。手元の動画や写真での結果ですが、1.5倍は早く物体検出・推論が出来ております。AlexeyAB Darknet YOLO V4を使った動画での物体検出結果もYoutubeに公開しておきます。

以前に、WindowsへAlexyAB Dark YOLO V3を利用した際と、インストール手順は変わっておりませんでした。Ubuntuなど、他プラットフォームは、どんどん楽になって行きますね。

  1. Microsoft Visual Studio
  2. CMake
  3. CUDA (cudnn)
  4. OPENCV

公式のヘルプに必要な情報は、すべて記載されています。
トラブったら、公式のReadmeが一番おすすめです。
https://github.com/AlexeyAB/darknet

1.Microsoft Visual Studioインストール

Microsoft Visual StudioのCommunity版をダウンロードし、インストールします。2017年版のVSインストールを推奨するWEBページが多かったです。コンフィグ時にエラーが出たので、私も2017版をインストールしました。

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community

C++によるデスクトップ開発をインストールしました。

2.CMakeインストール

Windows win64-x64 Installer版のCMake GUIを入手し、インストーラーを実行して、インストールしてください。

https://cmake.org/download/ cmake-3.20.2-windows-x86_64.msi

3.CUDA (Cudnn)導入

  • CUDAインストール

    https://developer.nvidia.com/cuda-toolkit-archive cuda_11.3.0_465.89_win10.exe
    Windows 10 用のインストーラーを入手して、インストールします。

  • Cudnnを導入

    1. Developerネットワークに登録
      https://developer.nvidia.com/developer-program でデベロッパー登録
    2. 必要ファイルのダウンロード、導入したCUDAに合うバージョンを!!
      https://developer.nvidia.com/cudnn または、
      https://developer.nvidia.com/rdp/cudnn-archive からダウンロード
    3. ダウンロードしたファイルをCUDAイントールフォルダーへコピー(/移動)
      Cudnnをダウンロードして展開したフォルダー:<Cudnn_path>

      CUDAインストールフォルダー:C:\Program Files\NVIDIA GPU Computing Toolkit\

      • 「binフォルダのDLLファイルをコピー」
        <Cudnn_path>\cuda\bin\cudnn*.dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\bin.
      • 「includeフォルダの.hファイルをコピー」
        <Cudnn_path>\cuda\include\cudnn*.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\include.
      • 「lib/x64フォルダーのライブラリーをコピー」
        <Cudnn_path>\cuda\lib\x64\cudnn*.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\lib\x64.

4.OPENCV導入

https://opencv.org/releases/
Windows向けのOPENCVをダウンロードして、適切な場所に解凍すれば良いです。
あとは、OPENCV関係のPath、環境変数を設定します。

※ 個人的には、この手順が出来るようになれば、同じ要領でOPENCVも自分でコンパイルできるので、自分の環境でビルドすることをお勧めします

【重要】各種環境変数

タスクバーなどの「ここに入力して検索」のダイアログボックスへ「ファイル名を指定して実行」または、「Run」といれて、ファイル名を指定して実行のダイアログを開きます。
「sysdm.cpl」を指定し、システムのプロパティを開きます。
上部のタブ「詳細設定」を選択し、「環境変数」のボタンを押し、設定画面を開きます。

以下の環境変数、PATHを設定する、または、設定されていることを確認します。

  • CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
  • CUDA_PATH_V11_1 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
  • OPENCV_DIR = C:\opencv4.3.2\opencv\build
  • PATH
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp
    • C:\opencv4.3.2\opencv\build\x64\vc15\bin

AlexeyAB Darknet YOLO ビルド

以下のリンクから、AlexeyAB Darknet をダウンロードし、ZIPファイルを解凍します。
この回答したフォルダーを使ってビルドを進めて行きます。
https://github.com/AlexeyAB/darknet/archive/master.zip

  1. CMake(gui)を開きます
  2. source codeとbinariesのフォルダーを指定する場所に、ダウンロードしたdarknetを解凍したフォルダーを指定します。
  3. Configureボタンを押します。
    • 利用するVisual Studioのバージョンを選択
    • Optional platformに「x64」を記入します
    • Configureがうまく実行されたら、Generateを実行します。
  4. Visual Studioで作成したソリューションファイルを開きます
    「Darknet.sln」
  5. ビルド方法をリリースに変更して、ソリューションをビルドすると、darknet.exeが作成されます

darknet.exeコマンド実行

ビルドして作成したdarknet.exeファイルの場所で、exeファイルを実行した際に、「pthreadVC2.dll」が見つからないとエラーが出ました。
各種コミュニティを確認しましたが、darknet/build/darknet/x64の中にある、pthreadVC2.dllを実行ファイルdarknet.exeと同じ場所にコピーします。

  • Yolo v4 COCO - image: darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
  • Output coordinates of objects: darknet.exe detector test cfg/coco.data yolov4.cfg yolov4.weights -ext_output dog.jpg
  • Yolo v4 COCO - video: darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4
  • Yolo v4 COCO - WebCam 0: darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0
  • Yolo v4 COCO for net-videocam - Smart WebCam: darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights http://192.168.0.80:8080/video?dummy=param.mjpg
  • Yolo v4 - save result videofile res.avi: darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test.mp4 -out_filename res.avi

私の環境では、mp4ファイルを入力として、物体認識結果を動画ファイルに書き出す処理が、実行中に落ちる現象が見られました。そのほかのコマンドなりに不具合は見つけておりません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA