A certain engineer "COMPLEX"

開発メモ その112 YOLOv3をWindowsで試す

Introduction


先月初めくらいに仕事で YOLOv2 (You Only Look Once v2) の検証をしていた矢先、突如現れた YOLOv3
検証したくとも忙しいのと、自宅は750 Ti、会社で自由に使えるGPUマシンも750 Tiと検証するには、いささか物足りない状態でした。

が、今月頭に自宅の開発機を一新。

  • Intel i7-8700 3.20GHz
  • 32GB RAM
  • Nvidia GeForce GTX 1080

を搭載し、一気に環境がグレードアップ。

GWに入ってもモチベーションが維持できていたため検証してみました。

Try out!!


と言っても、GPUが乗っているマシンはWindows。別にUbuntu入れても良いんですが、デュアルブートにしたいので放置。
なので、YOLOを実装している深層学習フレームワーク Darknet のWindows版を試すことに。

darknet - Windows and Linux version of Darknet Yolo v2 & v3 Neural Networks for object detection

仕事でも上のリポジトリにはお世話になりました。

今回もこれを使います。
使い方は上に書いてあるとおり。

  • OpenCV 3.4.0
  • cuDNN 7.0
  • CUDA 9.1

を用意して、環境変数追加、C++のプロジェクトファイルの書き換えだけです。
なので省略!!

肝心の比較。
テスト画像はお馴染みの自転車と犬と車 (768x576)。
ちなみに公式ページと結果が異なるのは、Windows版であるからだとおもいますが、劇的に違うわけでは無いので無視。

YOLOV2

YOLOV3

Tiny YOLO

Compare!!


GPUの性能が良いからなのか、速度が恐ろしいことになっています。
リアルタイムいけるやん(震え声)

 YOLOv3YOLOv2Tiny YOLO
Speed0.027030 sec (27ms)0.012998 sec (12ms)0.005972 sec (5ms)
Layer Num1063115
Detected Objectdog: 99%dog: 82%dog: 82%
bicycle: 99%bicycle: 82%car: 73%
truck: 93%truck: 74%bicycle: 59%
car: 25%bicycle: 25%car: 41%
pottedplant: 24%car: 30%
person: 28%
person: 26%
bicycle: 26%
car: 24%

画像の結果は下記。


YOLOv3


YOLOv2


Tiny YOLO

層が3倍になったからといって単純に速度が1/3という訳では無いですが、精度向上しても、これだけの速度低下なのは凄いことです。
YOLOv3の出力を見ると、Shortcut Layer という単語が頻出していますが、これはResidual Networkですかね。

論文を見ると確かにそう書いてあります。

We use a new network for performing feature extraction.
Our new network is a hybrid approach between the network used in YOLOv2, Darknet-19, and that newfangled residual network stuff.

我々は特徴抽出を行う新しいネットワークを使用する。
我々の新しいネットワークは、YOLOv2、Darknet-19、そして、あの最新式のResidualネットワークで使われているネットワークのハイブリットなアプローチだ。

こいつは凄い(小並感)
ところでYOLOv4は何時ですかね(すっとぼけ)

コメントを残す

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

%d人のブロガーが「いいね」をつけました。