前回の記事
参考
https://www.youtube.com/watch?v=sUxAVpzZ8hU
DarkNetのダウンロード
Cドライブとは別のDドライブ直下にYOLO_v4
ディレクトリを作成することにした
このディレクトリにDarkNetをダウンロードする
GitHubからクローンする
https://github.com/pjreddie/darknet
コマンドプロンプトからYOLO_v4
ディレクトリに移動してクローン
$ git clone https://github.com/pjreddie/darknet.git
OpenCVのdllファイルをDarkNetにコピー
前回ビルドしたOpenCVのディレクトリC:\opencv\build\bin\Release
から下記ファイルをD:\YOLO_v4\darknet\build\darknet\x64
にコピーする
- opencv_videoio_ffmpeg430_64.dll
- opencv_world430.dll
cuDNNのdllファイルをDarkNetにコピー
先程と同様にC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
(前回参照)から下記ファイルをD:\YOLO_v4\darknet\build\darknet\x64
にコピーする
- cudnn64_7.dll
cuDNNのバージョンに合わせてDarkNetの設定を変更
エディタでD:\YOLO_v4\darknet\build\darknet
からdarknet.vcxprojをエディタで開き編集する
「CUDA 10」で検索してすべての箇所のCUDAバージョンを
10.0から10.2に変更する
同ディレクトリにあるyolo_cpp_dll.vcxprojについても同様にバージョンの修正を行う
YOLOv4をアップデートしたCUDAバージョンでコンパイル
Visual Studioでyolo_cpp_dll.vcxprojを開き、モードをRerease, x64に設定してyolo_cpp_dllをビルドする
DarkNetのコンパイル
Visual StudioでD:\YOLO_v4\darknet\build\darknet
からdarknet.slnを開く
先程と同様にモードをRerease, x64に設定する
darknetの右クリックメニューからプロパティを開く
C/C++
追加のインクルードディレクトリを編集
プロパティのC/C++ > 全般 > 追加のインクルードディレクトリ
にC:\opencv\build\install\includeを追加
プリプロセッサの定義を編集
プロパティのC/C++ > プリプロセッサ > プリプロセッサの定義
からCUDNN_HALFを削除する
CUDA C/C++
プロパティのCUDA C/C++ > Device > Code Generation
からcompute_75,sm_75を削除する(10.2では不要)
リンカー
プロパティのリンカー > 全般 > 追加のライブラリディレクトリ
にC:\opencv\build\install\x64\vc16\libを追加
darknetをビルド
ソリューションエクスプローラーからdarknetを右クリックしてビルドする
コマンドプロンプトで確認
コマンドプロンプトでD:\YOLO_v4\darknet\build\darknet\x64
に移動しpythonからdarknetをエラーなくimportできることを確認する
$ python
>>> import darknet
>>>
YOLOv4で静止画と動画に対して物体検出をおこなう
学習済モデルのダウンロード
https://github.com/AlexeyAB/darknet から学習済モデルをダウンロードする
ダウンロードしたyolov4.weightsをD:\YOLO_v4\darknet\build\darknet\x64
にコピーする
同ディレクトリに動作確認に使う静止画ファイルと動画ファイルも入れておく
静止画で物体検出
コマンドプロンプトでD:\YOLO_v4\darknet\build\darknet\x64
に移動し以下を実行
$ darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights
静止画のパスを求められるので入力する
動画で物体検出
動画ファイルの名称はtest.mp4
コマンドプロンプトでD:\YOLO_v4\darknet\build\darknet\x64
に移動し以下を実行
$ darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test.mp4
次回に続く
かも?