使用FastAPI部署YOLO模型的步骤( 二 )

这段代码定义了一个路由,响应根URL(“/”)的GET请求,并返回一个带有“message”字段的JSON响应 。
4. 本地运行FastAPI应用程序现在,是时候在本地测试您的FastAPI应用程序了 。打开终端并导航到包含 main.py 的项目目录 。如果还没有激活虚拟环境,请激活:
source myenv/bin/activate # Replace 'myenv' with your environment name接下来,使用Uvicorn运行您的FastAPI应用程序:
uvicorn main:app --reload这个命令告诉Uvicorn从 main.py 模块运行 app 对象,并启用开发环境下的自动重新加载 。您应该看到输出,指示您的FastAPI应用程序正在本地运行 。默认情况下 , 它在 http://127.0.0.1:8000 上运行 。
5. 访问Hello World路由打开您的Web浏览器或使用 curl 等工具访问“Hello, World!”路由:
curl http://127.0.0.1:8000/您应该收到一个带有“Hello, World!”消息的JSON响应 。有了您的FastAPI应用程序运行起来 , 您现在可以继续进行激动人心的部分:集成YOLOv8模型进行目标检测 。在接下来的部分中 , 我们将探讨如何准备YOLOv8模型,并将其与FastAPI无缝集成 。第三部分:将YOLOv8与FastAPI集成现在我们已经有了FastAPI应用程序 , 让我们深入研究如何集成YOLOv8模型进行实时目标检测的过程 。本节将引导您完成无缝将YOLOv8与FastAPI结合的步骤 。
1. 加载YOLOv8模型让我们从在FastAPI应用程序中加载YOLOv8模型开始 。打开 main.py 并在文件顶部添加以下代码以导入必要的模块:
import cv2import numpy as npfrom ultralytics import YOLO2. 创建一个目标检测路由现在,让我们在FastAPI中创建一个路由,该路由将接受一个用于目标检测的图像 。定义一个新的路由函数如下:
from fastapi import File, UploadFilemodel = YOLO("yolov8n.pt")@app.post("/detect/")async def detect_objects(file: UploadFile): # Process the uploaded image for object detection image_bytes = await file.read() image = np.frombuffer(image_bytes, dtype=np.uint8) image = cv2.imdecode(image, cv2.IMREAD_COLOR)# Perform object detection with YOLOv8 detections = model.predict(image)return {"detections": detections}在这里 , 我们创建了一个名为 /detect/ 的路由,该路由接受上传的图像文件 。我们将使用 model.predict() 在上传的图像上执行目标检测 。
3. 测试目标检测路由完成了YOLOv8的集成 , 现在您可以测试您的目标检测路由 。使用Uvicorn启动您的FastAPI应用程序:
uvicorn main:app --reload然后,向/detect/路由发出POST请求,上传一个图像文件进行目标检测 。您可以使用curl或Postman等工具进行此操作 。
curl -X POST -F "file=@image.jpg" http://127.0.0.1:8000/detect/您将收到一个带有目标检测结果的JSON响应 。恭喜!您已成功将YOLOv8与FastAPI集成 , 实现了实时目标检测 。在接下来的部分中,我们将增强API , 添加文档 , 并探索部署选项 。
第四部分:部署FastAPI应用程序现在您已经构建了FastAPI应用程序,是时候将其部署,使您的目标检测API可以被用户访问了 。在本节中,我们将探讨各种部署选项,包括用于测试的本地部署和用于生产环境的基于云的部署 。
1. 本地部署进行测试在部署到生产环境之前,测试FastAPI应用程序在本地是否正常运行是必不可少的 。要在本地运行FastAPI应用程序,请打开终端,导航到包含 main.py 的项目目录,并激活虚拟环境(如果尚未激活):
source myenv/bin/activate # Replace 'myenv' with your environment name然后,使用Uvicorn启动FastAPI应用程序:
【使用FastAPI部署YOLO模型的步骤】uvicorn main:app --reload您的FastAPI应用程序现在应该在 http://127.0.0.1:8000/ 上可访问 。您可以使用 curl 、Postman或您的Web浏览器测试API端点 。
2. 用于生产的基于云的部署当您准备将FastAPI应用程序部署到生产环境时,您有几个基于云的部署选项 。一些流行的选择包括: