Flask车辆识别:使用训练好的模型进行预测
本文将介绍如何使用Flask框架搭建一个简单的车辆识别系统,并使用训练好的模型进行预测。该系统包含服务器端和前端页面,通过前端页面上传图片,服务器端使用Flask接收图片数据,并调用训练好的模型进行预测,最后将预测结果返回给前端页面。
服务器端代码
创建一个名为app.py的Python文件,使用Flask框架搭建服务器端:
from flask import Flask, render_template, request, jsonify
import base64
import numpy as np
from PIL import Image
import tensorflow as tf
from tensorflow import keras
app = Flask(__name__)
# 加载模型
model = keras.models.load_model('path_to_your_model.h5')
# 车辆类别名称
class_names = ['car', 'truck', 'motorcycle']
@app.route('/')
def index():
return render_template('index.html')
@app.route('/predict', methods=['POST'])
def predict():
# 获取前端上传的图片数据
image_data = request.form['image']
# 将Base64编码的图片数据转换为图像
image = Image.open(BytesIO(base64.b64decode(image_data)))
# 图片预处理
image = image.resize((224, 224))
image = np.array(image) / 255.0
image = np.expand_dims(image, axis=0)
# 进行预测
prediction = model.predict(image)
predicted_class = np.argmax(prediction[0])
predicted_class_name = class_names[predicted_class]
# 返回预测结果
return jsonify({'class': predicted_class_name})
if __name__ == '__main__':
app.run()
前端页面代码
创建一个名为index.html的HTML文件,作为前端页面:
<!DOCTYPE html>
<html>
<head>
<title>Vehicle Recognition</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
// 图片预览
function previewImage(event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function(){
var dataURL = reader.result;
var img = document.getElementById('preview');
img.src = dataURL;
};
reader.readAsDataURL(input.files[0]);
}
// 发送图片进行预测
function predict() {
var img = document.getElementById('preview');
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0, img.width, img.height);
var dataURL = canvas.toDataURL('image/jpeg');
$.ajax({
type: 'POST',
url: '/predict',
data: {image: dataURL},
success: function(response) {
var result = document.getElementById('result');
result.innerHTML = 'Predicted class: ' + response.class;
}
});
}
</script>
</head>
<body>
<h1>Vehicle Recognition</h1>
<input type="file" accept="image/*" onchange="previewImage(event)">
<img id="preview" src="" alt="Preview" style="max-width: 400px;">
<button onclick="predict()">Predict</button>
<div id="result"></div>
</body>
</html>
运行系统
确保你已经正确安装了Flask和相关依赖库,并将路径和类别名称更改为适合你的模型和数据集的值。在命令行中运行python app.py启动服务器,并在浏览器中访问http://localhost:5000/ 即可使用训练好的模型进行车辆识别预测。
原文地址: https://www.cveoy.top/t/topic/g2C 著作权归作者所有。请勿转载和采集!