LoginSignup
2
4

More than 3 years have passed since last update.

Colaboratory 上で事前学習済みモデルを使い、自前画像のラベルを予測する。

Posted at

最終的なノートブック

image.png

Colaboratory 上でノートブックを作る

Colaboratory 上で、

  • ファイル > Python 3 の新しいノートブック

から新しいノートブックを作ります。

  • 編集 > ノートブックの設定

を選択すると次のようなポップアップが表示されるので、ハードウェア アクセラレート のドロップダウンメニューから GPU を選びましょう。

Screen Shot 2019-12-25 at 16.49.41.png

事前学習済みモデルを読み込む

Tensorflow のバージョン設定

!pip list | grep tensorflow

上記を実行すると、バージョンが 1.15.0 であることがわかります。

Screen Shot 2019-12-25 at 16.57.02.png

!pip install -U tensorflow

上記を実行すると次のようなエラーが出ますが、今回の範囲内では問題ありませんでした。

Screen Shot 2019-12-25 at 17.01.36.png

もう一度 pip list でバージョンを確認しておきましょう。

image.png

ResNetを読みこむ

たったこれだけです。

import tensorflow as tf

resnet = tf.keras.applications.ResNet50V2(include_top=True, weights="imagenet")

入力と出力の形式を確認します。
入力画像は 224x224 であることがわかります。

resnet.input_shape
resnet.output_shape

image.png

入力に使う自前画像をアップロードして、読み込む

左ペインの ファイル から画像をアップロードします。
ここでは、dog.jpg という名前です。

次に、画像を読み込み、ResNetの入力用に変形します。

import numpy as np
from PIL import Image

img = Image.open("dog.jpg")
input = np.array(img.convert("RGB").resize((224, 224)))
input.shape

image.png

ラベルを予測します

前処理をする必要があるみたいです。
入力した画像の数xラベル数 になっていることがわかります。

preprocessed = tf.keras.applications.resnet_v2.preprocess_input(np.array([input]))
output = resnet.predict(preprocessed)
output.shape

image.png

結果をデコードします。

result = tf.keras.applications.resnet_v2.decode_predictions(output, top=10)[0]
result

image.png

  • ワンチャンよりもくまもんが注目されて、 teddy がトップで予測されています。
  • 3番目に toy_poodle が無事予測されています。
  • ケージのおりから shopping_cart が予測されているのでしょうか。
  • pick はわからないですが、ピックと一緒にギターの弦が写っている画像が多いみたいなので、ショッピングカートと同じ理由でしょうか。

入力画像と比較すると、概ね納得できる結果でした。

image.png

2
4
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
2
4