Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Bildklassifizierung in Python

Beispiel für die Bildklassifizierung in Python

PHPz
PHPzOriginal
2023-06-10 15:43:371445Durchsuche

Python ist eine weit verbreitete Programmiersprache, die in der Bildverarbeitung und Bildverarbeitung sehr beliebt ist. In diesem Artikel werden wir Beispiele für die Bildklassifizierung in Python untersuchen. Die Bildklassifizierung ist eine grundlegende Aufgabe in der Computer Vision, bei der es um die Identifizierung von Objekten oder Szenen in Bildern geht. In diesem Artikel wird erläutert, wie Sie das Deep-Learning-Framework Keras in Python verwenden, um das Training und die Vorhersage von Bildklassifizierungsmodellen zu implementieren.

Vorbereitung

Bevor wir die Bildklassifizierung durchführen, müssen wir die erforderlichen Softwarepakete installieren. Nachfolgend finden Sie die Liste der erforderlichen Pakete:

  • Python 3. Führen Sie den folgenden Befehl in der Befehlszeile aus, um die erforderlichen Pakete zu installieren:
  • pip install keras
    pip install tensorflow
    pip install numpy
    pip install Pillow
  • Dataset
  • Bevor wir die Bildklassifizierung durchführen, benötigen wir einen Datensatz. Ein Datensatz bezieht sich auf eine Reihe kommentierter Bilder, die zum Trainieren und Testen von Bildklassifizierungsmodellen verwendet werden. In diesem Beispiel verwenden wir den MNIST-Datensatz. Der MNIST-Datensatz enthält Bilder handgeschriebener Ziffern und ist ein weit verbreiteter Datensatz zum Testen der Leistung von Bildklassifizierungsalgorithmen.
  • MNIST-Datensatz enthält 60.000 Trainingsbilder und 10.000 Testbilder, jedes Bild ist 28 x 28 Pixel groß. Die Bilder sind mit einer von 10 Zahlen von 0 bis 9 beschriftet.
  • In Keras können Sie den folgenden Code verwenden, um den MNIST-Datensatz herunterzuladen:
  • from keras.datasets import mnist
    
    (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Modell erstellen

Bevor wir das Bildklassifizierungsmodell erstellen, müssen wir die Architektur des Modells definieren. In diesem Beispiel verwenden wir ein Convolutional Neural Network (CNN)-Modell. Das CNN-Modell ist ein Deep-Learning-Modell, das bei der Bildklassifizierung gute Leistungen erbringt.

Keras bietet eine einfache Möglichkeit, CNN-Modelle zu erstellen. Das Folgende ist der Code für ein CNN-Beispielmodell:

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()

Im obigen Code definieren wir ein CNN-Modell, das zwei Faltungsschichten und zwei Max-Pooling-Schichten enthält. Das Modell umfasst außerdem zwei dichte Schichten, die jeweils die ReLU-Aktivierungsfunktion verwenden.

Trainieren Sie das Modell

Nachdem wir das Modell definiert haben, müssen wir das Modell trainieren. Während des Trainings lernt das Modell, Eingabebilder den richtigen numerischen Kategorien zuzuordnen.

In Keras kann der folgende Code zum Kompilieren und Trainieren des Modells verwendet werden:

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)

Im obigen Code verarbeiten wir zunächst das Bild vor und kompilieren dann das Modell mit dem Optimierer als „rmsprop“ und der Verlustfunktion als Cross- Entropiemodell. Anschließend verwenden wir die Trainingsbilder und Beschriftungen, um das Modell zu trainieren. Am Ende jeder Epoche testen wir das Modell anhand von Testbildern und Beschriftungen.

Testen Sie das Modell

Nach Abschluss des Modelltrainings können wir den Testdatensatz verwenden, um die Genauigkeit des Modells zu testen. Das Modell kann mit dem folgenden Code getestet werden:

test_loss, test_acc = model.evaluate(test_images, test_labels)
print('test_acc:', test_acc)

Als nächstes können wir mit dem folgenden Code Vorhersagen treffen:

predictions = model.predict(test_images)

import numpy as np

print(np.argmax(predictions[0]))

Im obigen Code sagen wir das erste Bild des Testbildsatzes voraus und verwenden dann Numpy, um das Maximum zu finden Indexwert und drucken Sie die Vorhersageergebnisse aus.

Fazit

In diesem Artikel haben wir vorgestellt, wie man das Deep-Learning-Framework Keras in Python verwendet, um das Training und die Vorhersage von Bildklassifizierungsmodellen zu implementieren. Wir verwenden den MNIST-Datensatz zum Testen und das CNN-Modell zum Training. Abschließend testen wir die Genauigkeit des Modells, indem wir anhand eines Testbildsatzes Vorhersagen treffen. Dieses Beispiel kann als Einführungsbeispiel für Deep Learning und Computer Vision verwendet werden, damit Anfänger verstehen, wie Python zum Implementieren von Bildklassifizierungsaufgaben verwendet wird.

Das obige ist der detaillierte Inhalt vonBeispiel für die Bildklassifizierung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn