IT実験のブログ

IT関連のツールの使い方など

Tensorflowのimage_retrainingという画像認識を使ってみる

今回は、Ubuntu18.04上で、Tensorflowのimage_retrainingという画像認識を使ってみます。

GitHub - tensorflow/hub at r0.7

まず、こちらのサイトにブラウザでアクセスして、「Clone or download」ボタンから必要なツールをダウンロードして、~/AI に置きます。

f:id:itlab7:20200225200302p:plain

ダウンロードしたzipファイルを展開して、ディレクトリの名前をhubにしておきます。

image_retrainingを実行するには、tensorflow_hub が必要になりますので、端末で下のコマンドを実行してインストールします。

pip3 install tensorflow_hub

image_retrainingのディレクトリに移動します。

cd ~/AI/hub/examples/image_retraining

下のコマンドで、訓練します。 flowers_photosには5種類の花の画像ファイルがディレクトリごとに分かれて入っているだけです。

python3 retrain.py --image_dir=${HOME}/AI/image_classifier/data/flowers/flower_photos

f:id:itlab7:20200225200614p:plain

f:id:itlab7:20200225200648p:plain

f:id:itlab7:20200225194253p:plain

4000ステップまで進んで、訓練完了しました。TensorflowはCPU版ですが、約10分で完了しました。

f:id:itlab7:20200225194347p:plain

/tmp ディレクトリに幾つかのファイルが生成されています。

f:id:itlab7:20200225224302p:plain

何かで使うかもしれませんので、~/AI/image_retraining/flowers ディレクトリを作成して、そこにコピーしておきました。

cd ~/AI/tensorflow

label_image ツールで認識処理を実行します。

bazel-bin/tensorflow/examples/label_image/label_image \
  --image=${HOME}/AI/imagenet/sunflower.jpg \
  --input_layer=Placeholder \
  --output_layer=final_result \
  --graph=/tmp/output_graph.pb \
  --labels=/tmp/output_labels.txt

f:id:itlab7:20200225201611p:plain

指定した画像は、こちらのディレクトリに置いたsunflowerの画像です。

f:id:itlab7:20200225194908p:plain

sunflower 81% と表示されていますので、認識成功です。 ちなみに、Tensorflowはランダム要素がありますので、また訓練をやり直して認識させてみると、認識率が変化したりします。

今回はここまでです。