Darknet+YOLOによる物体検出

「Darknet」と「YOLO」を使った物体検出を試してみましたので紹介します。

Table of Contents

 

1 Darknet/YOLOとは

Darknet:

C言語で書かれたオープンソースのニューラルネットフレームワーク。
インストールが容易で試しやすいです。

YOLO:

物体検出アルゴリズムの一種。最新バージョンはv3で、
今回はこれを使用しました。

種々あるアルゴリズムの中でも高速かつ高精度とのこと。
元はDarknetで実装されたアルゴリズムですが、
TensorFlowやChainer版などもあるようです。

 

 

2 インストール

今回はMac(OS X El Capitan)にインストールしましたが、
Linuxでも同様にインストール出来ます。

 

2.1 Darknetインストール

Githubからソースコードを取得し、コンパイルします。

動画入力やWebカメラでのリアルタイム検出を行いたい場合、別途CUDAやOpenCVのインストールが必要になります。
Darknetはデフォルトでこれらを使用しない設定になっているので、下記Makefileの修正を行い、コンパイルする必要があります。
画像入力の場合は、CUDAやOpenCVのインストールは行わなくてもOKです。

2.2 モデルダウンロード

公式サイトで学習済みのYOLOモデルが公開されています。
以下コマンドでダウンロードします。

YOLOモデルはCOCOデータセットで学習されており、
判定クラスは、person, car, dogなど80クラスとなっています。

3 動かす

静止画の推論を行うには、以下のコマンドを実行します。

 

推論が完了すると推論結果の画像(predictions.png)が出力されます。

predictions

 

公式サイトには物体検出以外にも
Darknet+ニューラルネットワークで作られた
囲碁画像加工ソフトが公開されています。

どちらも物体検出と同様、比較的簡単に試すことが出来ますので、
興味のある方は試してみてはいかがでしょうか。

 

オリエンタルインフォーメイションサービス(OIS)

ホームページ http://www.ois-yokohama.co.jp

facebook   https://www.facebook.com/orientalinformationservice/