画像検出に向けて利用するフレームワーク
本家のDarknetも利用しましたが、特定ケースでの学習失敗やメモリ操作関係の不具合など、私自身も上手く行かないケースも有り、ブログ記事などからもAlexeyABを勧めている内容が多かったので、早い時期よりAlexeyABを導入し利用しております。
AlexeyABのDarknetは、WindowsおよびLinuxのDarknet Yolo v3 & v2のNeural Networks for object detection (Tensor Cores are used)をサポートしております。
AlexeyAB公開サイト
以下、サイトにすべての利用方法が記載されております。関連ソフトのインストール方法や、独自学習の方法など。
Darknetインストール方法
本件も同様ですが、AlexeyABでも2つのインストール方法が紹介されております。
最終的には、Legacy wayのVisual StudioでコンパイルしたDarknetを利用しております。この投稿では、2番めのLegacy way(Visual Studio)を利用したコンパイル方法を紹介します。
GitHUBよりAlexeyAB一式をダウンロードしておきます。
今後の学習モデル作成時などにも利用するフォルダとなるので、それなりの容量の余裕などを考え、各種ファイルを配置して下さい。
Visual Studioを利用したDarknetの導入
CUDA、cuDNN、OpenCVを導入します。
CUDAとcuDNNインストール
NVIDIA cuDNNの入手には、開発コミュニティへの登録が必要であるが、 cuDNNは、機械学習時のGPU-accelerated libraryとなるので、開発者登録を行い、導入しているCUDAと同じバージョンのcuDNNを入手し、入手したファイルをCUDAインストールフォルダに配置しましょう。
OpenCV導入
https://opencv.org/releases/より必要なバージョンをダウンロードし、Windowsの環境変数Pathに「\opencv\build\bin」を追加します。
C:\opencv\bin;それまでの値
Visual Studioよりプロジェクトオープン
GitHUBよりダウンロードしたファイル群のbuild\darknet\darknet.sln
をオープン。
- x64およびRelease(リリース)を設定
https://hsto.org/webt/uh/fk/-e/uhfk-eb0q-hwd9hsxhrikbokd6u.jpeg - ビルドオプションにパスを指定
CUDNN
のパスを設定
CUDNN: https://user-images.githubusercontent.com/4096485/53249764-019ef880-36ca-11e9-8ffe-d9cf47e7e462.jpg
コンパイル時のエラー対応
すでに複数バージョンのDarknetをインストールしましたが、何度か同じエラーが出ております。opencvのライブラリー不足です。
おそらく、コードに直接ライブラリ名が記載されております。エラー内容を見て、エラーが示すバージョンのOpencvをセットアップして、再度ビルドを事項して下さい。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー LNK1104 ファイル 'opencv_world343.lib' を開くことができません。 darknet S:\Public\Documents\Git\darknet\build\darknet\LINK 1