使用ResNet50進行圖像分類
如何使用ResNet50模型對圖像進行分類。
import os
import cv2
import numpy as np
from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image# 設置代理
os.environ["HTTP_PROXY"] = "http://127.0.0.1:1080"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:1080"# 加載ResNet50模型
model = ResNet50(weights='imagenet')# 讀取和預處理圖像
def preprocess_image(img_path):# 加載圖像并調整大小為(224, 224)img = image.load_img(img_path, target_size=(224, 224))# 將圖像轉換為numpy數組img_array = image.img_to_array(img)# 在第0軸上添加維度,將其變為(1, 224, 224, 3)img_array = np.expand_dims(img_array, axis=0)# 對圖像進行預處理,以適應ResNet50模型的輸入要求img_array = preprocess_input(img_array)return img_array# 加載圖像
img_path = 'pandas.jpg'
img = preprocess_image(img_path)# 進行預測
predictions = model.predict(img)# 解碼預測結果,獲取前三個預測結果
decoded_predictions = decode_predictions(predictions, top=3)[0]# 打印結果
print("Predictions:")
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):print(f"{i + 1}: {label} ({score:.2f})")# 顯示圖像
img = cv2.imread(img_path)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
-
測試圖片:
-
運行效果:
-
翻譯一下