YOLO通用目标检测 Web 系统

一个基于 Flask 和 YOLO的现代化目标检测 Web 应用系统,支持图像、视频和摄像头实时检测,并提供接入deepseek AI 智能分析功能。

设计的登录界面

在这里插入图片描述

设计的检测界面

在这里插入图片描述

图片预测结果

在这里插入图片描述

项目简介

本系统是一个功能完整的目标检测平台,采用最新的 YOLO模型进行实时目标检测,结合现代 Web 技术构建了直观易用的用户界面。系统支持多种检测模式,提供详细的 AI 分析,并具备用户认证功能,确保系统安全性。这是一个通用目标检测系统,只需要安装对应ultralytics模块更换对应框架模型即可,支持yolov8,yolo11,yolov12,yolov13,yolo26以及只要是ultralytics改进型框架。

核心功能

  • 用户认证系统:基于 Flask-Login 的登录系统,保障系统安全
  • 多模式检测
    • 图像上传检测
    • 视频上传检测
    • 摄像头实时检测
  • 参数配置:可调节置信度阈值、IoU 阈值等检测参数
  • AI 智能分析:使用 DeepSeek API 提供详细的检测结果分析和优化建议
  • 现代化界面:深色科技主题设计,响应式布局,流畅的用户体验
  • 实时推理:视频和摄像头模式下的低延迟实时检测
  • 双栏显示:左侧显示原图,右侧显示检测结果,对比清晰直观

技术栈

  • 后端:Flask、Python、OpenCV
  • 前端:HTML5、CSS3、JavaScript、Canvas API
  • AI 模型:YOLO11 (Ultralytics)
  • AI 分析:DeepSeek API
  • 认证:Flask-Login
  • 图像处理:Pillow、NumPy
  • 部署:Python 3.8+

快速开始

环境要求

  • Python 3.8 或更高版本
  • pip 包管理器
  • 网络连接(用于下载模型和使用 DeepSeek API)

安装步骤

  1. 克隆项目

    git clone <项目地址>
    cd <项目目录>
    
  2. 安装依赖

    pip install -r requirements.txt
    
  3. 配置环境变量

    在项目根目录创建 .env 文件,添加以下配置:

    # DeepSeek API 配置
    DEEPSEEK_API_KEY=your_deepseek_api_key
    DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
    
    # Flask 配置
    SECRET_KEY=your_secret_key
    

    注意:请替换为您自己的 DeepSeek API 密钥和 Flask 密钥

  4. 启动应用

    python app.py
    

    应用将在 http://127.0.0.1:5000/ 上运行

使用说明

登录系统

  • 默认登录凭证:
    • 用户名:admin
    • 密码:password

图像检测

  1. 在主界面选择「图像检测」模式
  2. 点击「上传图片」按钮选择本地图片
  3. 系统会自动处理并在右侧显示检测结果
  4. 查看 AI 分析结果获取详细分析

视频检测

  1. 在主界面选择「视频检测」模式
  2. 点击「上传视频」按钮选择本地视频文件
  3. 系统会自动处理并在右侧显示检测结果
  4. 视频会自动播放并实时进行目标检测

摄像头检测

  1. 在主界面选择「摄像头检测」模式
  2. 点击「开始检测」按钮
  3. 系统会访问您的摄像头并实时显示检测结果
  4. 点击「停止检测」按钮结束检测

参数调整

在界面右侧的参数控制面板中,您可以调整:

  • 置信度阈值:控制检测结果的可信度(0-1)
  • IoU 阈值:控制重叠框的合并策略(0-1)

API 文档

核心 API 端点

1. 登录 API
  • URL/login
  • 方法:POST
  • 参数usernamepassword
  • 返回:登录状态和重定向
2. 检测 API
  • URL/detect
  • 方法:POST
  • 参数file(图像文件)、confidenceiou
  • 返回:检测结果、标注图像、AI 分析
3. 实时帧检测 API
  • URL/detect_frame
  • 方法:POST
  • 参数frame(Base64 编码的图像)、confidenceiou
  • 返回:检测结果、标注帧
4. 分析 API
  • URL/analyze
  • 方法:POST
  • 参数detections(检测结果)、mode(检测模式)
  • 返回:AI 分析结果

项目结构

.
├── app.py              # 主应用文件,包含所有路由和核心逻辑
├── requirements.txt    # 依赖包列表
├── templates/
│   ├── index.html      # 主界面模板
│   ├── login.html      # 登录页面模板
│   └── base.html       # 基础模板
├── static/
│   └── css/            # 样式文件
├── models/             # 模型存储目录
└── README.md           # 项目文档

核心模块详解

1. 目标检测模块

使用 YOLOv8 模型进行目标检测,支持多种输入类型:

def detect_objects(image, confidence=0.25, iou=0.45):
    """使用 YOLOv8 模型检测目标"""
    # 加载模型
    model = YOLO('yolov8n.pt')
    # 执行检测
    results = model(image, conf=confidence, iou=iou)
    # 处理结果
    return results

2. 实时处理模块

针对视频和摄像头流的实时处理:

@app.route('/detect_frame', methods=['POST'])
def detect_frame():
    """处理实时帧检测"""
    # 解码 Base64 帧
    # 执行检测
    # 生成标注帧
    # 返回结果

3. AI 分析模块

使用 DeepSeek API 对检测结果进行智能分析:

def analyze_detections(detections, mode):
    """分析检测结果"""
    # 构建分析提示
    # 调用 DeepSeek API
    # 处理分析结果
    return analysis

性能优化

前端优化

  • 使用 Canvas 绘制检测结果,减少 DOM 操作
  • 优化图像传输,使用适当的压缩比例
  • 实现帧跳过机制,平衡检测精度和速度

后端优化

  • 模型加载优化,避免重复加载
  • 推理参数调优,根据硬件性能调整 batch size
  • 异步处理非关键任务,提高响应速度

故障排除

常见问题

  1. 视频检测不工作

    • 检查视频格式是否支持(建议使用 MP4 格式)
    • 确认浏览器是否支持视频播放
  2. 摄像头无法访问

    • 检查浏览器权限设置,确保允许访问摄像头
    • 确认摄像头设备正常工作
  3. 检测结果不准确

    • 调整置信度和 IoU 阈值
    • 对于特定场景,考虑使用更适合的模型
  4. 系统运行缓慢

    • 降低视频分辨率
    • 提高置信度阈值,减少检测数量
    • 考虑使用更强大的硬件

安全注意事项

  • 系统默认使用弱密码,生产环境请修改为强密码
  • 建议在生产环境中启用 HTTPS
  • 定期更新依赖包,修复安全漏洞
  • 限制上传文件大小,防止 DoS 攻击
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐