Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh klasifikasi imej dalam Python

Contoh klasifikasi imej dalam Python

PHPz
PHPzasal
2023-06-10 15:43:371457semak imbas

Python ialah bahasa pengaturcaraan yang digunakan secara meluas yang sangat popular dalam penglihatan komputer dan pemprosesan imej. Dalam artikel ini, kami akan meneroka contoh klasifikasi imej dalam Python. Pengelasan imej ialah tugas asas dalam penglihatan komputer yang melibatkan mengenal pasti objek atau pemandangan dalam imej. Artikel ini akan memperkenalkan cara menggunakan rangka kerja pembelajaran mendalam Keras dalam Python untuk melaksanakan latihan dan ramalan model klasifikasi imej.

Persediaan

Sebelum melakukan pengelasan imej, kita perlu memasang pakej perisian yang diperlukan. Berikut ialah senarai pakej yang diperlukan:

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

Anda boleh menggunakan alat pip untuk memasang pakej di atas. Jalankan arahan berikut dalam baris arahan untuk memasang pakej perisian yang diperlukan:

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

Dataset

Sebelum melakukan pengelasan imej, kami memerlukan set data. Set data merujuk kepada satu set imej beranotasi yang digunakan untuk melatih dan menguji model klasifikasi imej. Dalam contoh ini, kami akan menggunakan set data MNIST. Set data MNIST mengandungi imej digit tulisan tangan dan merupakan set data yang digunakan secara meluas untuk menguji prestasi algoritma pengelasan imej.

Data data MNIST mengandungi 60,000 imej latihan dan 10,000 imej ujian, setiap imej bersaiz 28x28 piksel. Gambar telah dilabelkan dengan satu daripada 10 nombor dari 0 hingga 9.

Di Keras, anda boleh menggunakan kod berikut untuk memuat turun set data MNIST:

from keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

Membina model

Sebelum membina model klasifikasi imej, kita perlu menentukan seni bina daripada model tersebut. Dalam contoh ini, kami akan menggunakan model rangkaian neural convolutional (CNN). Model CNN ialah model pembelajaran mendalam yang berprestasi baik dalam klasifikasi imej.

Keras menyediakan cara mudah untuk membina model CNN. Berikut ialah kod untuk contoh model 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()

Dalam kod di atas, kami mentakrifkan model CNN yang mengandungi dua lapisan konvolusi dan dua lapisan pengumpulan maksimum. Model ini juga termasuk dua lapisan padat, setiap satu menggunakan fungsi pengaktifan ReLU.

Latih model

Selepas menentukan model, kita perlu melatih model. Semasa latihan, model belajar cara memetakan imej input kepada kategori angka yang betul.

Dalam Keras, kod berikut boleh digunakan untuk menyusun dan melatih model:

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)

Dalam kod di atas, kami mula-mula memproses imej dan kemudian menyusun model dengan pengoptimum sebagai " rmsprop ", model yang fungsi kehilangannya ialah entropi silang. Kami kemudian menggunakan imej latihan dan label untuk melatih model. Pada akhir setiap zaman, kami menguji model menggunakan imej dan label ujian.

Uji model

Selepas latihan model selesai, kita boleh menggunakan set data ujian untuk menguji ketepatan model. Model boleh diuji menggunakan kod berikut:

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

Seterusnya, kita boleh membuat ramalan menggunakan kod berikut:

predictions = model.predict(test_images)

import numpy as np

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

Dalam kod di atas, kami meramalkan imej pertama set imej ujian , kemudian gunakan Numpy untuk mencari nilai indeks maksimum dan mencetak hasil ramalan.

Kesimpulan

Dalam artikel ini, kami memperkenalkan cara menggunakan rangka kerja pembelajaran mendalam Keras dalam Python untuk melaksanakan latihan dan ramalan model klasifikasi imej. Kami menggunakan set data MNIST untuk ujian dan model CNN untuk latihan. Akhir sekali, kami menguji ketepatan model dengan membuat ramalan pada set imej ujian. Contoh ini boleh digunakan sebagai contoh pengenalan pembelajaran mendalam dan penglihatan komputer, membolehkan pemula memahami cara menggunakan Python untuk melaksanakan tugas pengelasan imej.

Atas ialah kandungan terperinci Contoh klasifikasi imej dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn