ホームページ >バックエンド開発 >Python チュートリアル >Python での画像分類の例
Python は、コンピュータ ビジョンや画像処理で非常に人気のある、広く使用されているプログラミング言語です。この記事では、Python での画像分類の例を見ていきます。画像分類は、画像内のオブジェクトやシーンを識別することを含む、コンピューター ビジョンの基本的なタスクです。この記事では、Python で深層学習フレームワーク Keras を使用して、画像分類モデルのトレーニングと予測を実装する方法を紹介します。
画像分類を実行する前に、必要なソフトウェア パッケージをインストールする必要があります。必要なパッケージのリストは次のとおりです:
pip ツールを使用して、上記のソフトウェア パッケージをインストールできます。コマンド ラインで次のコマンドを実行して、必要なソフトウェア パッケージをインストールします。
pip install keras pip install tensorflow pip install numpy pip install Pillow
画像分類を行う前に、データ セットが必要です。データセットとは、画像分類モデルのトレーニングとテストに使用される注釈付き画像のセットを指します。この例では、MNIST データセットを使用します。 MNIST データセットには手書きの数字の画像が含まれており、画像分類アルゴリズムのパフォーマンスをテストするために広く使用されているデータセットです。
MNIST データ セットには、60,000 個のトレーニング画像と 10,000 個のテスト画像が含まれており、各画像のサイズは 28x28 ピクセルです。写真には 0 から 9 までの 10 個の数字のいずれかが付けられています。
Keras では、次のコードを使用して MNIST データセットをダウンロードできます:
from keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
画像分類モデルを構築する前に、アーキテクチャを定義する必要があります。モデルの。この例では、畳み込みニューラル ネットワーク (CNN) モデルを使用します。 CNN モデルは、画像分類で優れたパフォーマンスを発揮する深層学習モデルです。
Keras は、CNN モデルを構築する簡単な方法を提供します。以下は CNN モデルの例のコードです:
from keras import layers from keras import models model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax')) model.summary()
上記のコードでは、2 つの畳み込み層と 2 つの最大プーリング層を含む CNN モデルを定義します。このモデルには、それぞれ ReLU 活性化関数を使用する 2 つの高密度層も含まれています。
モデルを定義した後、モデルをトレーニングする必要があります。トレーニング中に、モデルは入力画像を正しい数値カテゴリにマッピングする方法を学習します。
Keras では、次のコードを使用してモデルをコンパイルおよびトレーニングできます:
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) train_images = train_images.reshape((60000, 28, 28, 1)) train_images = train_images.astype('float32') / 255 test_images = test_images.reshape((10000, 28, 28, 1)) test_images = test_images.astype('float32') / 255 from keras.utils import to_categorical train_labels = to_categorical(train_labels) test_labels = to_categorical(test_labels) model.fit(train_images, train_labels, epochs=5, batch_size=64)
上記のコードでは、まず画像を前処理してから、オプティマイザーを「 rmsprop 」として使用してモデルをコンパイルします。 」、損失関数がクロスエントロピーであるモデル。次に、トレーニング画像とラベルを使用してモデルをトレーニングします。各エポックの終わりに、テスト イメージとラベルを使用してモデルをテストします。
モデルのトレーニングが完了したら、テスト データ セットを使用してモデルの精度をテストできます。モデルは次のコードを使用してテストできます:
test_loss, test_acc = model.evaluate(test_images, test_labels) print('test_acc:', test_acc)
次に、次のコードを使用して予測を行うことができます:
predictions = model.predict(test_images) import numpy as np print(np.argmax(predictions[0]))
上記のコードでは、テスト画像セットの最初の画像を予測します。 、次に Numpy を使用して最大インデックス値を見つけ、予測結果を出力します。
この記事では、Python で深層学習フレームワーク Keras を使用して画像分類モデルのトレーニングと予測を実装する方法を紹介しました。テストには MNIST データセットを使用し、トレーニングには CNN モデルを使用します。最後に、テスト画像セットで予測を行うことでモデルの精度をテストします。この例は、ディープ ラーニングとコンピューター ビジョンの入門例として使用でき、初心者が Python を使用して画像分類タスクを実装する方法を理解できるようになります。
以上がPython での画像分類の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。