AutoKeras CIFAR10 画像分類を試す

自動的に画像分類を行ってくれるAutoKeras
https://autokeras.com/

以前から存在は知っていたのですが、バージョンが1となり安定してそうなので試してみました。


CIFAR10



チュートリアルのサンプルでは、手書き文字のMNISTを分類しています。
https://autokeras.com/tutorial/image_classification/

これを参考に、CIFAR10のカラー画像の分類を試してみます。
https://keras.io/ja/datasets/

ラベルの意味はこのようになるとのこと。

ラベル内容
0airplane(飛行機)
1automobile(自動車)
2bird(鳥)
3cat(猫)
4deer(鹿)
5dog(犬)
6frog(カエル)
7horse(馬)
8ship(船)
9truck(トラック)


CIFAR-10:物体カラー写真(乗り物や動物など)の画像データセット

1件取り出して表示してみます。


  1. import numpy as np
  2. from tensorflow.keras.datasets import cifar10
  3. import tkinter as tk
  4. from PIL import Image, ImageTk
  5. (x_train, y_train), (x_test, y_test) = cifar10.load_data()
  6. print(x_train.shape) # (50000, 32, 32, 3)
  7. print(y_train.shape) # (50000, 1)
  8. print(y_train[:3]) # array([6, 9, 9], dtype=uint8)
  9. print(y_train[0])
  10. root = tk.Tk()
  11. root.geometry('200x200')
  12. root.title('cifar10 image')
  13. canvas = tk.Canvas(
  14.     root,
  15.     width=128,
  16.     height=128
  17. )
  18. canvas.place(x=0, y=0)
  19. #PILでjpgを使用
  20. img = Image.fromarray(np.uint8(x_train[0]))
  21. img = img.resize((128, 128)) # 画像を拡大表示
  22. tk_img = ImageTk.PhotoImage(img)
  23. canvas.create_image(
  24.     0,
  25.     0,
  26.     image=tk_img,
  27.     anchor=tk.NW
  28. )
  29. root.mainloop()



ラベルは「6」でカエルですね。

a32_01.png




サンプルプログラム



サンプルはこのようになりました。


  1. from tensorflow.keras.datasets import cifar10
  2. import autokeras as ak
  3. (x_train, y_train), (x_test, y_test) = cifar10.load_data()
  4. clf = ak.ImageClassifier(
  5.     overwrite=True,
  6.     max_trials=1)
  7. # Feed the image classifier with training data.
  8. clf.fit(x_train, y_train, epochs=10)
  9. # Predict with the best model.
  10. predicted_y = clf.predict(x_test)
  11. print(predicted_y)
  12. # Evaluate the best model with testing data.
  13. print(clf.evaluate(x_test, y_test))




実行すると...


313/313 [==============================] - 1s 2ms/step - loss: 0.8231 - accuracy: 0.7216
[0.8230726718902588, 0.7215999960899353]



正答率0.72ということでしょうか。ちょっと低いですね。
学習については改めて調べてみようと思います。

引き続きモデルの保存や呼び出し、モデルを用いた画像の判定について試してみます。

関連記事

コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
https://symfo.web.fc2.com/

PR

検索フォーム

月別アーカイブ