2023 / Python AI 小系统

图片识别 Web 控制台

把本地训练或下载的识别模型封装成一个 Web 页面,支持上传图片、查看检测框和保存结果。

图片识别 Web 控制台

技术栈

Python / YOLOv8 / Flask / OpenCV / HTML / 文件上传

项目说明

项目背景

做 AI 视觉项目时,如果只在命令行里跑模型,展示和调试都不太方便。这个控制台的目标是把模型推理、图片上传和结果展示放到一个页面里。

功能模块

  • 上传图片并保存到临时目录
  • 调用 YOLOv8 模型进行检测
  • 在图片上绘制检测框、类别和置信度
  • 展示原图、结果图和检测列表
  • 支持切换模型文件和清理历史图片

推理流程

上传图片 -> 后端保存 -> 模型推理 -> 绘制结果图 -> 页面展示

代码片段

from ultralytics import YOLO

model = YOLO("best.pt")

def detect_image(path: str):
    results = model(path, conf=0.35)
    boxes = []
    for item in results[0].boxes:
        boxes.append({
            "cls": int(item.cls[0]),
            "conf": float(item.conf[0]),
            "xyxy": item.xyxy[0].tolist()
        })
    return boxes

收获

这个项目让我更熟悉 Python Web 和模型调用之间的衔接,也理解了文件上传、结果缓存、前端展示和模型耗时之间的取舍。