基于YOLOv8的实时目标检测与目标分割与追踪附GUI系统

基于 YOLOv8 和 Streamlit 的实时目标检测与追踪系统在这里插入图片描述

项目简介

本开源项目展示了如何通过将 YOLOv8(目标检测算法)与 Streamlit(一个用于创建交互式 Web 应用的流行 Python 框架)无缝集成,实现实时视频流的目标检测与追踪。该系统具有用户友好的界面,支持对以下多种视频源进行目标检测和追踪:

  • RTSP 流(例如 IP 摄像机)
  • UDP 流
  • YouTube 视频链接
  • 静态视频文件
  • 静态图片

通过该项目,用户能够方便地进行目标检测与追踪操作,并直观地查看检测结果。

在这里插入图片描述

项目资源

深入了解实现细节

作者在 Medium 上撰写了三篇系列文章,详细讲解了从头开始创建该 Web 应用的过程。

Streamlit 云端 Web 应用演示

感谢 Streamlit 团队为社区提供的云端支持!您可以直接通过以下链接访问项目的 Web 应用演示:

注意:由于云端演示中缺少 GPU,视频推理速度可能较慢。


功能概览

目标检测与追踪演示
  • 示例视频演示目标检测与追踪功能:
  • 使用 YOLOv8 模型检测图片、视频、或实时流中的目标。
界面预览
  1. 主页:

    • 欢迎界面,展示上传图片或视频的选项。
  2. 图片检测界面:

    • 上传图片后,用户可以一键运行目标检测,检测结果会直接展示在页面上。
  3. 分割任务界面:

    • 可切换至分割模式,在图片中运行实例分割任务。

在这里插入图片描述

环境要求

  • Python 版本:3.6 或更高
  • 主要依赖:
    • YOLOv8
    • Streamlit
    • pytube(用于处理 YouTube 视频链接)

安装依赖项的命令:

pip install ultralytics pytube

安装步骤

在这里插入图片描述


2. 进入项目目录:
```bash
cd yolov8
  1. 创建以下目录:

    • weights:用于存放预训练模型权重。
    • videos:用于存放待处理的视频。
    • images:用于存放图片。
  2. 下载预训练的 YOLOv8 模型权重:

    • 链接:[YOLOv8 权重文件]
    • 将下载的文件放置于 weights 文件夹中。

使用方法

运行应用

通过以下命令启动 Streamlit 应用:

app.py

应用将自动在浏览器中打开。

模型配置

进入 Web 应用后,用户可以自定义模型配置:

  1. 选择任务类型
    • 检测(Detection):目标检测任务。
    • 分割(Segmentation):目标实例分割任务。
  2. 设置模型置信度
    • 通过滑块调整置信度阈值(范围:25%-100%)。
  3. 选择数据源
    • 可从图片、视频、RTSP 流或 YouTube 视频链接中选择。

功能细节

1. 图片目标检测
  1. 默认展示一张带有检测结果的示例图片。
  2. 上传自己的图片:
    • 点击“浏览文件”按钮上传图片。
  3. 运行检测:
    • 点击“检测目标”按钮,使用所选置信度运行检测。
  4. 查看结果:
    • 检测结果会直接显示在页面上,并支持下载检测结果。
2. 视频目标检测
  1. 在项目目录下创建 videos 文件夹。
  2. 将待处理视频文件放入 videos 文件夹。
  3. 修改 settings.py 中的视频路径配置:
    # 视频目录
    VIDEO_DIR = ROOT / 'videos'
    
    # 配置视频路径
    VIDEO_1_PATH = VIDEO_DIR / 'video_1.mp4'
    VIDEO_2_PATH = VIDEO_DIR / 'video_2.mp4'
    VIDEO_3_PATH = VIDEO_DIR / 'video_3.mp4'
    VIDEO_4_PATH = VIDEO_DIR / 'video_4.mp4'
    
    # 配置视频名称字典
    VIDEOS_DICT = {
        'video_1': VIDEO_1_PATH,
        'video_2': VIDEO_2_PATH,
        'video_3': VIDEO_3_PATH,
        'video_4': VIDEO_4_PATH,
    }
    
  4. 在应用中选择目标视频,点击“检测视频目标”按钮,系统将开始目标检测或分割任务。
3. RTSP 实时流检测
  1. 选择数据源为 RTSP 流。
  2. 输入 RTSP 流 URL。
  3. 点击“检测目标”按钮,即可开始对实时视频流进行目标检测或分割。
4. YouTube 视频检测
  1. 选择数据源为 YouTube 视频。
  2. 输入视频链接到文本框中。
  3. 点击“检测目标”按钮,即可对 YouTube 视频进行检测或分割。

在这里插入图片描述

项目=

  • 本项目使用 YOLOv8 实现目标检测与分割功能。
  • Streamlit 提供了用户友好的 Web 应用界面。
  • 感谢 Python-OpenCV 在处理图像和视频方面的强大支持。

注意事项

  • 本项目仅供学习和技术演示,并非为生产环境设计
  • 目标是展示 YOLOv8 和 Streamlit 等技术的集成与应用,并为开发者提供学习和参考的资源。
  • 项目中的所有代码、界面和功能均可自由扩展,欢迎贡献或基于此项目进行二次开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值