Ekstraksi Ciri Imej untuk Latihan SVM dalam OpenCV
Dalam tugas pengelasan imej menggunakan Mesin Vektor Sokongan (SVM), pengekstrakan ciri memainkan peranan penting dalam prestasi model. Dengan OpenCV, kami boleh memanfaatkan algoritma yang cekap untuk mengubah data piksel mentah kepada ciri bermakna yang memudahkan latihan SVM.
Untuk mengekstrak ciri daripada imej untuk latihan SVM dalam OpenCV, kami boleh mengikuti langkah di bawah:
1. Tukar Imej kepada Matriks 1D:
Memandangkan SVM memerlukan data input dalam format satu dimensi, kami mesti menukar imej kami kepada matriks 1D. Untuk mencapai matlamat ini, kita boleh menggunakan fungsi reshape() untuk meratakan data imej menjadi satu baris:
import numpy as np import cv2 img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE) img_flattened = np.reshape(img, (1, -1))
2. Bina Matriks Latihan:
Matriks latihan untuk SVM terdiri daripada satu set baris, setiap satu mewakili ciri yang diekstrak imej. Mulakan matriks dengan bilangan baris (bilangan imej) dan lajur yang dikehendaki (jumlah bilangan ciri).
training_matrix = np.zeros((num_images, num_features))
3. Isi Matriks Latihan:
Lelar melalui setiap imej dan isikan matriks latihan dengan ciri yang diekstrak. Ini boleh dilakukan dengan melelaran pada piksel imej dan memberikan nilai skala kelabunya kepada elemen yang sepadan dalam matriks:
for i in range(num_images): img = cv2.imread(f'image{i}.jpg', cv2.IMREAD_GRAYSCALE) img_flattened = np.reshape(img, (1, -1)) training_matrix[i, :] = img_flattened
4. Pelabelan:
Tetapkan label kelas kepada setiap imej dalam matriks latihan. Ini melibatkan mencipta matriks label 1D yang berasingan yang sepadan dengan baris matriks latihan dan menetapkan label untuk setiap imej.
5. Latih SVM:
Dengan data latihan sedia, kami boleh melatih SVM menggunakan ciri yang diekstrak. Ini melibatkan penetapan parameter SVM seperti svm_type dan kernel_type dan memulakan objek SVM.
svm = cv2.ml.SVM_create() svm.train(training_matrix, cv2.ml.ROW_SAMPLE, labels)
Setelah dilatih, SVM boleh digunakan untuk tugas pengelasan dengan mengekstrak ciri daripada imej baharu dan meramalkan labelnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Ciri Imej untuk Latihan SVM Menggunakan OpenCV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!