読者です 読者をやめる 読者になる 読者になる

non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

Tensorflowのclassify_image.pyにElectronでGUIを被せてみた

こんにちは、最近次男は保育園の帰り道、自分で走って帰るといって聞かず、自宅までの走って帰る日々です。長男も同じような時期にそういうことがあったので、そういうもんなんだと諦めて、次男の走りに付き合ってます。kjunichiです。

GPUを使えるTensorflowをWin,Macに入れたものの

tensorflowを入れたものの、動かし方が、実はよくわからず、Python APIのみの pipで入れても、実はサンプルコードがsite-lib配下にインストールされてることすら 最近まで知りませんでしたw。

classify_image.pyにElectronでGUIをつけてみた。

Linux,Windowsで画像ファイルをドロップすると、classify_image.pyで画像分類できるように してみた。

これで、子供たちと、簡単に画像ファイルを選んで、人工知能にどんな写真かを調べてもらうことが できました。

f:id:kjw_junichi:20170205134019p:plain

pipでいれたTensorflowのサンプルコードのありか

import site
print(site.getsitepackages())

これで、pipでインストールされるインストール先のディレクトリ一覧が取得できる。 環境によって、複数のパスが返されるので、この中からtensorflowディレクトリを探す。

画像ファイルをドロップして読み込む

大昔、HTML5の修業であれこれ作った

jsdo.it

から持ってきた。

iphoneの写真だとEXIFを考慮する必要ありだった

これまた大昔、

jsdo.it

を作ったが、この知識が役に立った。

Exifでカメラの回転情報を保持しているので、 これ考慮してclassify_image.pyに渡さないと分類結果に影響が出た。

もっとも、オリジナルのJPEGファイルをそのまま、classify_image.pyに渡せばこの辺り、Tensorflow側で 処理してくれたのかもしれないが。。

成果物

github.com

Windowsの場合はConadaのPython3を優先して動かすようにしてます。 その他のプラットフォームではパスに登録されてるPython3を優先して、そこにtensorflowがあれば、 それを使う感じにしてます。

関連記事