代码拉取完成,页面将自动刷新
同步操作将从 脱线/faiss_dog_cat_question 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# import gradio as gr
# import joblib # 使用joblib库加载模型
# import cv2
# import numpy as np
# # 加载准确率最高的模型
# with open("SVC_best_model.joblib", "rb") as f: # 替换为保存的模型文件名
# model = joblib.load(f) # 使用joblib加载模型
# def predict(image):
# # 将图片调整到模型需要的输入尺寸
# image = cv2.resize(image, (32, 32)) # 调整图像尺寸
# image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 将图像转为灰度(如果模型需要灰度输入)
# image = image.flatten().reshape(1, -1) # 展平并调整为模型需要的形状
# prediction = model.predict(image)
# label = "Dog" if prediction[0] == 1 else "Cat"
# return label
# # 使用Gradio构建界面
# iface.launch()
import gradio as gr
import joblib
import numpy as np
from tensorflow.keras.preprocessing import image as keras_image
from tensorflow.keras.applications.vgg16 import VGG16, preprocess_input
# 加载最佳模型
model = joblib.load('SVC_best_model.joblib')
# 加载VGG16模型,用于图像特征提取
vgg_model = VGG16(weights='imagenet', include_top=False, pooling="max")
# 预处理函数:用于将图像转换为VGG16模型需要的格式
def preprocess_image(img):
# 转换为RGB并调整大小以适应VGG16输入
img = img.convert('RGB')
img = img.resize((224, 224)) # VGG16模型要求输入大小为224x224
img_array = np.array(img) # 转换为numpy数组
img_array = np.expand_dims(img_array, axis=0) # 增加batch维度
img_array = preprocess_input(img_array) # 使用VGG16的预处理函数
return img_array
# 预测函数
def predict(image):
# 图像预处理
preprocessed_image = preprocess_image(image)
# 使用VGG16模型提取特征
features = vgg_model.predict(preprocessed_image)
features = features.flatten() # 将提取的特征展平为一维数组
# 使用最佳集成模型进行预测
prediction = model.predict(features.reshape(1, -1)) # 调整形状以匹配模型输入
# 预测结果为猫或狗
label = "Dog" if prediction[0] == 1 else "Cat"
return label
# 创建Gradio界面
iface = gr.Interface(fn=predict,
inputs=gr.Image(type="pil", label="Upload an Image"),
outputs=gr.Textbox(label="Prediction"),
live=True,
title="Cat vs Dog Classifier",
description="Upload an image and the model will predict whether it's a cat or a dog.")
iface = gr.Interface(fn=predict, inputs="image", outputs="text", title="Cat vs Dog Classifier")
# 启动应用
iface.launch()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。