YOLO v2の物体検出とVGG16の画像認識との組み合わせが凄すぎた!

YOLO v2にVGG16を組み合わせて使用してみよう

ある日、閃きました。

YOLO v2の物体検出の精度に、VGG16の画像認識を組み合わせて使用してみたら最強の物体検出ツールが出来上がるのではないかと・・・。

80クラスのクラス分けができるYOLO v2に対し、VGG16は1000種類もの画像認識が可能となっているので、これらを組み合わせれば、より詳細なクラス名を表示できる物体検出機能になると単純に思った訳です。

そんな訳で、早速試してみました。

 

下記動画ではわかりにくいのですが、クラス表示は上段にYOLO v2のクラス名を表示し、下段にVGG16のクラス名を表示しています。

 

開発環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

python 3.5.2

opencv3 3.1.0

tensorflow 1.0.0

 

YOLO v2のセットアップ方法については以下の記事を参考にしてください。

YOLOv2のリアルタイム物体検出をTensorFlowとPythonで実装する方法

 

組み合わせの仕組み

組み合わせの仕組みは簡単です。

まずはYOLO v2で物体検出をしてもらいます。

その後、物体検出した画像を切り出し、その画像をVGG16の学習モデルにぶつけてみるだけです。

これにより、より詳細なクラス名を表示できる物体検出ツールが出来上がる仕組みです。

 

考えてもみれば、使用する学習モデルをたった一つにする必要はないので、複数の学習モデルを組み合わせて使用することで、より詳細な物体検出ができるようになります。

 

ソースコード

とりあえずサクッと作ってみました。

つい数ヶ月前の筆者のレベルからでは考えられません。

興味があればプログラミングもなんとかできるようになりますね。

 

今回はテスト検証なので、確信度が低くてもラベルを表示するようにしています。

この辺りはお好みですね。

 

割と簡単に実装できますので、興味がある方はぜひチャレンジしみてください。

 

また、これからDeep Learningの勉強をするなら、こちらで紹介する書籍も参考になりますので一読してみることをオススメします。

 


その他の物体検出記事はこちらから

 

それではまた。

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP