Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh klasifikasi imej dalam Python
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.
Sebelum melakukan pengelasan imej, kita perlu memasang pakej perisian yang diperlukan. Berikut ialah senarai pakej yang diperlukan:
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
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()
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.
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.
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.
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!