機械学習モデルをトレーニングするためには、まず適切なデータセットを用意する必要があります。この記事では、Pythonを使って写真からカラーデータセットを作成する方法を、わかりやすく説明します。
Contents[非表示]
〇 必要なライブラリのインストール
Pythonで画像処理やデータ操作を行うために、以下のライブラリを使用します。まずはこれらをインストールしておきましょう。
pip install pillow numpy matplotlib
Pillow: 画像の読み込みや編集を行うライブラリ
NumPy: 数値計算やデータ操作を行うライブラリ
Matplotlib: データの可視化を行うライブラリ
〇画像を読み込む
まず、Pythonで画像を読み込む方法を説明します。以下のコードでは、Pillowライブラリを使って画像を開きます。
from PIL import Image
# 画像ファイルのパスを指定
image_path =
"/content/IMG_6957.JPG"
# 画像を開く
imge = Image.open(image_path)
〇 画像のサイズを変更する
画像のサイズを機械学習モデルに適したサイズに変更します。ここでは、画像を28x28ピクセルにリサイズしています。
# 画像を28x28ピクセルにリサイズ
imge = imge.resize((28, 28))
〇 画像データをNumPy配列に変換
画像をNumPy配列に変換し、ピクセル値を0〜1の範囲に正規化します。これにより、機械学習モデルに適したデータ形式になります。
import numpy as np
# NumPy配列に変換し、ピクセル値を0-1にスケーリング
imge_array = np.array(imge) / 255.0
〇データを保存する
画像データとラベルを保存します。ここでは、NumPyの.npz形式で保存します。この形式は、複数のNumPy配列を一つのファイルに保存できる便利な形式です。
# ラベルを設定
label = 1
# 画像データとラベルを保存
np.savez("tt.npz",
img=imge_array, label=label)
〇データの読み込みと表示
保存したデータを読み込み、画像を表示して確認します。
import matplotlib.pyplot as plt
# データを読み込む
data = np.load("tt.npz")
x = data["img"]
y = data["label"]
# 画像を表示
plt.imshow(x)
plt.show()
〇機械学習の例
せっかくなので、作成したカラーデータセットで簡単なCNNを実装して、画像認識を行ってみます。
import numpy as np
# データを読み込む
data = np.load("dataset.npz")
x = data["img"]
y = data["label"]
# バッチサイズとデータ形式のために次元を追加
x = np.expand_dims(x, axis=0) # (1, 28, 28, 3)の形状にする
y = np.array([y])
import tensorflow as tf
from tensorflow.keras.models import
Sequential
from tensorflow.keras.layers import Conv2D,
MaxPooling2D, Flatten, Dense
# モデルの構築
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 3)),
MaxPooling2D(pool_size=(2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(1, activation='sigmoid') # 二値分類の場合
])
# モデルのコンパイル
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# モデルの概要を表示
model.summary()
# データの準備
x_train = np.array([x]) # サンプルデータをバッチとして扱う
y_train = np.array([y])
# モデルのトレーニング
history = model.fit(x_train, y_train,
epochs=10, batch_size=1)
テストデータの用意(例)
x_test = np.array([x])
y_test = np.array([y])
# モデルの評価
test_loss, test_acc =
model.evaluate(x_test, y_test)
print(f'Test accuracy: {test_acc:.4f}')
〇まとめ
この記事では、Pythonを使用して写真からカラーデータセットを作成する方法を紹介しました。以下の手順を踏むことで、機械学習モデルのトレーニングに必要なデータを準備できます。
画像の読み込み: Pillowライブラリを使って画像ファイルを開きます。
画像のリサイズ: モデルに適したサイズに画像を変更します。
NumPy配列への変換: 画像データをNumPy配列に変換し、ピクセル値を正規化します。
データの保存: NumPyの.npz形式で画像データとラベルを保存します。
データの読み込みと表示: 保存したデータを読み込み、画像を表示して確認します。
これで、機械学習モデルのトレーニングに向けたカラーデータセットを準備することができました。データの前処理やモデルの設計、トレーニングの次のステップに進む準備が整いましたね。頑張ってください!
0 件のコメント:
コメントを投稿