前回の記事
参考
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
次回に続く
かも?






