【Ubuntu】YOLO v4
2021年6月3日
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デバイスが使えないかららしいですね。