Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melakukan klasifikasi imej pada gambar menggunakan Python

Bagaimana untuk melakukan klasifikasi imej pada gambar menggunakan Python

WBOY
WBOYasal
2023-08-17 18:42:282445semak imbas

Bagaimana untuk melakukan klasifikasi imej pada gambar menggunakan Python

Cara mengklasifikasikan gambar menggunakan Python

Dengan perkembangan bidang pemprosesan imej dan pembelajaran mesin, klasifikasi imej telah menjadi tugas penting. Sebagai bahasa pengaturcaraan yang fleksibel dan berkuasa, Python menyediakan banyak alat dan perpustakaan untuk menjadikan klasifikasi imej lebih mudah dan lebih cekap. Artikel ini akan memperkenalkan cara menggunakan Python untuk mengklasifikasikan imej dan memberikan contoh kod yang berkaitan.

  1. Persediaan:
    Sebelum kita mula, kita perlu memasang perpustakaan Python yang sepadan. Antaranya, yang paling penting ialah perpustakaan OpenCV dan Keras. Anda boleh memasangnya melalui pip menggunakan arahan berikut:
pip install opencv-python
pip install keras

Selain itu, kami juga perlu memuat turun model pra-latihan yang sesuai untuk klasifikasi imej. Dalam artikel ini, kami akan menggunakan model ResNet50. Anda boleh memuat turunnya menggunakan arahan berikut:

python -m keras.applications.resnet50
  1. Muat data imej:
    Pertama, kita perlu memuatkan data imej ke dalam program. Kita boleh menggunakan fungsi cv2.imread() perpustakaan OpenCV untuk membaca fail imej. Berikut ialah kod sampel untuk memuatkan data imej:
import cv2

def load_image(image_path):
    img = cv2.imread(image_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)   # 转换为RGB格式
    return img

image = load_image('image.jpg')
  1. Praproses data imej:
    Sebelum melakukan pengelasan imej, kami perlu praproses data imej untuk menyesuaikannya dengan model kami. Biasanya, kami melakukan penskalaan, penyelarasan atau pemangkasan imej. Berikut ialah kod sampel untuk menskala dan menyelaraskan imej:
import cv2
import numpy as np

def preprocess_image(image):
    image = cv2.resize(image, (224, 224))   # 缩放图像为224x224像素
    image = image.astype("float32")   # 将图像数据类型转换为float32
    image /= 255   # 归一化图像数据
    return image

preprocessed_image = preprocess_image(image)
  1. Memuatkan model pra-latihan:
    Sebelum melakukan pengelasan imej, kita perlu memuatkan model pra-latihan. Dalam artikel ini, kami akan menggunakan model ResNet50. Berikut ialah kod sampel untuk memuatkan model pra-latihan:
from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np

model = ResNet50(weights='imagenet')
  1. Lakukan pengelasan imej:
    Kini, kami bersedia untuk mengklasifikasikan imej. Kami akan menggunakan model yang dimuatkan untuk meramalkan data imej praproses dan mengeluarkan hasil pengelasan. Berikut ialah contoh kod untuk klasifikasi imej:
def classify_image(image):
    x = image[np.newaxis, ...]   # 将图像数据加一维以适应模型输入
    predictions = model.predict(x)   # 进行图像分类
    decoded_predictions = decode_predictions(predictions, top=3)[0]   # 解码预测结果
    return decoded_predictions

predictions = classify_image(preprocessed_image)
print(predictions)
  1. Penjelasan keputusan:
    Akhir sekali, kami akan menerangkan keputusan ramalan. Berdasarkan model pra-latihan yang kami muatkan, model itu akan mengembalikan tiga ramalan teratas dan kebarangkalian sepadannya. Berikut ialah kod sampel yang menerangkan keputusan ramalan:
def explain_predictions(predictions):
    for pred in predictions:
        print(f"类别:{pred[1]},概率:{pred[2]*100}%")

explain_predictions(predictions)

Pada ketika ini, kami telah menyelesaikan proses mengklasifikasikan imej menggunakan Python. Dengan memuatkan model pra-latihan dan pra-memproses data imej, kami boleh melakukan pengelasan imej dan mentafsir keputusan ramalan dengan mudah.

Ringkasan:
Artikel ini menerangkan cara menggunakan Python untuk melaksanakan pengelasan imej pada imej. Dengan memasang perpustakaan OpenCV dan Keras, kami boleh memuatkan dan mempraproses data imej. Menggunakan model pra-latihan, kita boleh mengklasifikasikan imej dan mentafsir ramalan. Saya harap artikel ini dapat membantu pembaca memahami cara menggunakan Python untuk klasifikasi imej dan menyediakan rujukan untuk penerokaan lanjut dalam bidang pemprosesan imej dan pembelajaran mesin.

Rujukan:

  1. https://docs.opencv.org/master/d6/d00/tutorial_py_root.html
  2. https://keras.io/api/applications/
  3. https://numpy.org / doc/stable/

Atas ialah kandungan terperinci Bagaimana untuk melakukan klasifikasi imej pada gambar menggunakan 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