Python での画像分類の例

PHPz
PHPzオリジナル
2023-06-10 15:43:371498ブラウズ

Python は、コンピュータ ビジョンや画像処理で非常に人気のある、広く使用されているプログラミング言語です。この記事では、Python での画像分類の例を見ていきます。画像分類は、画像内のオブジェクトやシーンを識別することを含む、コンピューター ビジョンの基本的なタスクです。この記事では、Python で深層学習フレームワーク Keras を使用して、画像分類モデルのトレーニングと予測を実装する方法を紹介します。

準備

画像分類を実行する前に、必要なソフトウェア パッケージをインストールする必要があります。必要なパッケージのリストは次のとおりです:

  • Python 3.x
  • Keras
  • TensorFlow
  • NumPy
  • Pillow

pip ツールを使用して、上記のソフトウェア パッケージをインストールできます。コマンド ラインで次のコマンドを実行して、必要なソフトウェア パッケージをインストールします。

pip install keras
pip install tensorflow
pip install numpy
pip install Pillow

Dataset

画像分類を行う前に、データ セットが必要です。データセットとは、画像分類モデルのトレーニングとテストに使用される注釈付き画像のセットを指します。この例では、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。