LoginSignup
12
23

More than 5 years have passed since last update.

【初心者向け】MacでDockerを使ってTensorFlowの画像認識を試す

Posted at

概要

前回TensorFlowの導入までやりましたが、
そこではHello Worldまでしかできず全く機械学習感がゼロだったので、もうちょっとやってみようと思います。
とはいえPythonは書けないし機械学習もわからないので、ここではサンプルのモデルを動かして機械学習を体感するというとこまでやりたいともいます。(自分でモデルを作ったりとかはしません)

環境構築

こちらを参考にすでにdockerでTensorFlowが使える状態にしておきます。
【初心者向け】MacでDockerを使ってTensorFlowを試す(Jupyter Notebook)

画像認識を試すまで

1.サンプルのモデルファイルをダウンロード

ローカルのMacにTensorFlowのgithubからサンプルのモデルファイルをダウンロードします。
https://github.com/tensorflow/models
https://github.com/tensorflow/tensorflow/blob/f63ee319e0dd8bf9ec578e8d3d5c9890cde01841/tensorflow/g3doc/tutorials/image_recognition/index.md

  • 作業フォルダの作成
$ mkdir tensorflow
$ cd tensorflow
  • サンプルモデルのダウンロード
$ git clone https://github.com/tensorflow/models.git
  • モデルファイルの確認
$ ls models/tutorials/image/imagenet
BUILD           classify_image.py

2.画像の用意

画像認識に使う画像を用意します。
今回は漫画の画像2つを使います。
onepiece.jpgkonan.jpg

  • モデルファイルがあるディレクトリに移動
$ cd models/tutorials/image/imagenet
  • 画像ファイルを置く
$ ls
BUILD           classify_image.py   konan.jpg       onepiece.jpg

3.dockerの起動

$ docker run --name image -it -p 8888:8888 gcr.io/tensorflow/tensorflow

4.Jupyter Notebookにアクセス

コンテナの起動に成功したらこちらにアクセスします。
http://localhost:8888/

5.モデルファイルと画像をJupyter Notebook上に配置

右上の「Upload」ボタンを押して先ほど画像をおいたパスにある画像とPythonファイルをアップロードします。
スクリーンショット 2017-01-21 15.58.59.png

スクリーンショット 2017-01-21 15.59.23.png

6.画像認識を試してみる

まずはターミナルを起動します。
スクリーンショット 2017-01-21 16.02.09.png

先ほどのモデルファイルに画像を指定して実行します。
スクリーンショット 2017-01-21 16.34.36.png

ワンピースの画像を読み込ませた結果
onepiece.jpg

# python classify_image.py --image_file onepiece.jpg
W tensorflow/core/framework/op_def_util.cc:332] Op BatchNormWithGlobalNormalization is deprecated. It will cease to wo
rk in GraphDef version 9. Use tf.nn.batch_normalization().
comic book (score = 0.86219)
book jacket, dust cover, dust jacket, dust wrapper (score = 0.01314)
web site, website, internet site, site (score = 0.01159)
jigsaw puzzle (score = 0.00393)
slot, one-armed bandit (score = 0.00363)

86%でコミックブックと判定されました。だいたい合ってますね。

コナンの画像を読み込ませた結果
konan.jpg

# python classify_image.py --image_file konan.jpg
W tensorflow/core/framework/op_def_util.cc:332] Op BatchNormWithGlobalNormalization is deprecated. It will cease to wo
rk in GraphDef version 9. Use tf.nn.batch_normalization().
comic book (score = 0.69279)
envelope (score = 0.03921)
book jacket, dust cover, dust jacket, dust wrapper (score = 0.03605)
tray (score = 0.02330)
web site, website, internet site, site (score = 0.01357)

こちらも69%でコミックブックと判定されました。

感想

実際に画像を読み込ませてみましたが、割と賢い感じに判定してくれそうでした。これは完全にサンプルのモデルを実行しただけなので、これにもうちょっとカスタマイズしたりできると実際に活用できそうな感じがしました。

12
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
23