【Ubuntu】YOLO v4

WSL上のUbuntu20.04にYOLOをインストールして動かしてみた時の備忘録。

基本的に、こちらのページを参考にしました。

これらがいるらしい。

  • CMake >= 3.8
  • CUDA 10.0 (For GPU)
  • OpenCV >= 2.4 (For CPU and GPU)
  • cuDNN >= 7.0 for CUDA 10.0 (for GPU)
  • OpenMP (for CPU)
  • Other Dependencies: make, git, g++

OpenCVが入れられなくて困った。しかし、sudo apt-get updateをしてから再度インストールすると成功。

Building YOLO v4 は、Building YOLO v4 using Makeを利用した。

最後に、モデル”Building YOLO v4 using Make”をダウンロードして、フォルダにコピー。

./darknet detect cfg/yolov4.cfg yolov4.weights data/person.jpg

を実行すると。

data/person.jpg: Predicted in 3416.842000 milli-seconds.
dog: 99%
person: 100%
horse: 98%

と、ちゃんと検出できている!でも、WSLでGUIが使えない(?)ので、最後は

Unable to init server: Could not connect: Connection refused

(predictions:26802): Gtk-WARNING **: 21:47:20.309: cannot open display: 

となって、画像は見ることができず・・・。

しかし、画像認識はできているようなので、とりあえずOK!

なんとかGUIを・・、と思って調べると、できるじゃないか!皆さん、こちらこちらの記事を見るようですね。”VcXsrv Windows X Server”というのをインストールするようです。

GUIの表示ができた!

この他、この参考にしたサイトでは、動画をリアルタイムに物体認識するコマンド

./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test50.mp4 -i 0 -thresh 0.25

こちらもちゃんと認識できている画像が表示されます。

しかし、遅い・・・。0.2FPSしか速度が出ません。それなりに速いPC使っているのですが。

さいごに、WebCamからの取得画像をリアルタイムで物体認識する方法

./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0

が紹介されていますが、WSLからは残念ながらできず・・・。

調べてみると、こちらのページにあるようにWSLはWebcamをサポートしていないようです。というのも、Hyper-Vの中でUSB-pass-throughがまだ実装されておらずWindowsに接続されたUSBデバイスが使えないかららしいですね。

Add a Comment

メールアドレスが公開されることはありません。