リアルタイム物体検出DNNのYOLO v2で少しはまる

facebookで先日、話題になっていた世界最先端の実時間物体検出DNN(Deep Neural Network)のYOLO v2 (real time object detection)を試したときのメモ。Cudaの out of memoryエラーで1日ハマったので他の方の参考になればと思う。

  • 環境
    • ThinkPad T450
      • CPU: Intel i7-5500U,
      • GPU: nvidia 940m, moemory 1GB
    • xubunut14.04.5
    • Kernel 4.4.0-66-generic
    • gcc/g++ 4.8.4
  • Darknetのインストール
  • Yolo: Real Time Object Detectionのインストール
    • cd darknet
    • 学習済みの重み(パラメータ)ファイルをダウンロード
      • wget http://pjreddie.com/media/files/yolo.weights
    • サンプルの実行
      • ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
  • 実行方法
    • ウェブカメラ
      •  ウェブカメラをPCに接続し以下のコマンドを実行
      • ./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights
    • 動画ファイル
      • Webm形式の動画ファイルは問題なく動作
      • ./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>
  • テスト
    • ウェブカメラで撮った信号機の動画を学習済みのパラメータで試したところ信号機は問題なく認識された。車は乗用車をtruckと間違えるときはあるが、位置は問題ない。ただ、私の環境では約4フレーム/秒。リアルタイムとはいかないが、つくばチャレンジや@Homeのタスクによっては使えるレベル。最新GPUを搭載し、メモリを多く積んだマシンが欲しい。
  • はまった原因
    • darknetを実行するとCuda out of memoryのエラーで悩まされた。nvidia-smiコマンドでGPUのメモリ使用量がわかる。上の画面では981MB中961MBを使用している。chromeなどのウェブブラウズを起動すると数十MB使用するので、chromeを起動しながらコマンドを実行したのでout of memoryになったわけだ。メモリを多く積んだマシンが欲しい。

コメントを残す

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