moxt

Just another Blog site

GoogleのObject Detection APIのチュートリアルをやってみる

   

チュートリアル動かしただけのクソメモですわ。

GoogleがTersorFlowで物体検出するためのAPI(ってほどキレイに整備されてる感じしないけど)を公開してた。

https://research.googleblog.com/2017/06/supercharge-your-computer-vision-models.html

チュートリアルのjupyterではSSDというアルゴリズムを動かしていた。
既にKerasやCaffeなんかでの実装も公開されてる。

ディープラーニングな物体検出の歴史(ってもここ数年の話だけど)については下記を見るとよさげ。

http://tech-blog.abeja.asia/entry/object-detection-summary

SSDは精度、処理速度ともにイイカンジなアルゴリズムっぽいですね。
スゴい。

基本的には必要なライブラリインストールして、チュートリアルのjupyter notebook立ち上げてrun allしたら終わり。
当方、にわかDockerファンなのでDockerでやった。

まず、ソースコードとってきて…

次のようなDockerfileを用意する。

で、buildしてrunですわ。

これでjupyter notebookが立ち上がるはず。

object_detection_tutorial.ipynbを開いてrun allしてしばらく待つと…

かわいいビーグルちゃん

あら、かわいい。

ちゃんとビーグル氏が検出されてますね。

test_imagesってフォルダがあるので好きな画像入れて物体検出させてみましょう。

こんな画像で試してみると…

image6

物体検出例

ちょいちょい間違いはありますが、なかなかいいかんじですね。

このチュートリアルの内容はTensorFlowで作成済みのモデルを使って物体検出させてるだけです。
画像を配列化したり、検出した物体にラベル名を付与したりするヘルパーコードを定義したり、読み込んだりしているため、パッと見は煩雑な感じですがやってることは超シンプル。

『物体検出してXXXしたい』っていう要求もTensorFlowとモデルを用意すれば即対応可能です。

ただ、作成済みのモデルは検出できる物体の種類が決まってます。
なので、独自の物体検出(例えば…こんにゃくゼリーを検出したい、とか)をしたい場合はデータセット作って学習させる必要があります。
その辺の学習周りをわりとスムーズに実現できるようなAPI(?)もあるっぽいです。

独自データセットの学習やってみたい。

 - ディープラーニング

  • このエントリーをはてなブックマークに追加
  • follow us in feedly