Darknet+YOLOによる物体検出
「Darknet」と「YOLO」を使った物体検出を試してみましたので紹介します。
Table of Contents
1 Darknet/YOLOとは
C言語で書かれたオープンソースのニューラルネットフレームワーク。
インストールが容易で試しやすいです。
物体検出アルゴリズムの一種。最新バージョンはv3で、
今回はこれを使用しました。
元はDarknetで実装されたアルゴリズムですが、
TensorFlowやChainer版などもあるようです。
2 インストール
Linuxでも同様にインストール出来ます。
2.1 Darknetインストール
Githubからソースコードを取得し、コンパイルします。
1 2 3 |
$ git clone https://github.com/pjreddie/darknet.git $ cd darknet $ make |
動画入力やWebカメラでのリアルタイム検出を行いたい場合、別途CUDAやOpenCVのインストールが必要になります。
Darknetはデフォルトでこれらを使用しない設定になっているので、下記Makefileの修正を行い、コンパイルする必要があります。
画像入力の場合は、CUDAやOpenCVのインストールは行わなくてもOKです。
1 2 3 |
GPU=1 # 1に設定する ... OPENCV=1 # 1に設定する |
2.2 モデルダウンロード
以下コマンドでダウンロードします。
1 |
$ wget https://pjreddie.com/media/files/yolov3.weights |
YOLOモデルはCOCOデータセットで学習されており、
判定クラスは、person, car, dogなど80クラスとなっています。
3 動かす
静止画の推論を行うには、以下のコマンドを実行します。
1 |
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/eagle.jpg |
推論が完了すると推論結果の画像(predictions.png)が出力されます。
公式サイトには物体検出以外にも
Darknet+ニューラルネットワークで作られた
囲碁や画像加工ソフトが公開されています。
どちらも物体検出と同様、比較的簡単に試すことが出来ますので、
興味のある方は試してみてはいかがでしょうか。
◆WEB会議/セミナーシステム『Szia』
https://www.ois-yokohama.co.jp/szia/
◆サーバサイドで動作するミドルウェア『ReDois』
https://www.ois-yokohama.co.jp/redois/wp_redois/
ホームページ http://www.ois-yokohama.co.jp
facebook https://www.facebook.com/orientalinformationservice/