
基于 YOLOv8 和 Streamlit 的实时目标检测与追踪系统项目简介本开源项目展示了如何通过将 YOLOv8目标检测算法与 Streamlit一个用于创建交互式 Web 应用的流行 Python 框架无缝集成实现实时视频流的目标检测与追踪。该系统具有用户友好的界面支持对以下多种视频源进行目标检测和追踪RTSP 流例如 IP 摄像机UDP 流YouTube 视频链接静态视频文件静态图片通过该项目用户能够方便地进行目标检测与追踪操作并直观地查看检测结果。—项目资源深入了解实现细节作者在 Medium 上撰写了三篇系列文章详细讲解了从头开始创建该 Web 应用的过程。Streamlit 云端 Web 应用演示感谢 Streamlit 团队为社区提供的云端支持您可以直接通过以下链接访问项目的 Web 应用演示注意由于云端演示中缺少 GPU视频推理速度可能较慢。功能概览目标检测与追踪演示示例视频演示目标检测与追踪功能使用 YOLOv8 模型检测图片、视频、或实时流中的目标。界面预览主页欢迎界面展示上传图片或视频的选项。图片检测界面上传图片后用户可以一键运行目标检测检测结果会直接展示在页面上。分割任务界面可切换至分割模式在图片中运行实例分割任务。环境要求Python版本3.6 或更高主要依赖YOLOv8Streamlitpytube用于处理 YouTube 视频链接安装依赖项的命令pipinstallultralytics pytube安装步骤2. 进入项目目录 bash cd yolov8创建以下目录weights用于存放预训练模型权重。videos用于存放待处理的视频。images用于存放图片。下载预训练的 YOLOv8 模型权重链接[YOLOv8 权重文件]将下载的文件放置于weights文件夹中。使用方法运行应用通过以下命令启动 Streamlit 应用app.py应用将自动在浏览器中打开。模型配置进入 Web 应用后用户可以自定义模型配置选择任务类型检测Detection目标检测任务。分割Segmentation目标实例分割任务。设置模型置信度通过滑块调整置信度阈值范围25%-100%。选择数据源可从图片、视频、RTSP 流或 YouTube 视频链接中选择。功能细节1. 图片目标检测默认展示一张带有检测结果的示例图片。上传自己的图片点击“浏览文件”按钮上传图片。运行检测点击“检测目标”按钮使用所选置信度运行检测。查看结果检测结果会直接显示在页面上并支持下载检测结果。2. 视频目标检测在项目目录下创建videos文件夹。将待处理视频文件放入videos文件夹。修改settings.py中的视频路径配置# 视频目录VIDEO_DIRROOT/videos# 配置视频路径VIDEO_1_PATHVIDEO_DIR/video_1.mp4VIDEO_2_PATHVIDEO_DIR/video_2.mp4VIDEO_3_PATHVIDEO_DIR/video_3.mp4VIDEO_4_PATHVIDEO_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,}在应用中选择目标视频点击“检测视频目标”按钮系统将开始目标检测或分割任务。3. RTSP 实时流检测选择数据源为 RTSP 流。输入 RTSP 流 URL。点击“检测目标”按钮即可开始对实时视频流进行目标检测或分割。4. YouTube 视频检测选择数据源为 YouTube 视频。输入视频链接到文本框中。点击“检测目标”按钮即可对 YouTube 视频进行检测或分割。项目本项目使用YOLOv8实现目标检测与分割功能。Streamlit提供了用户友好的 Web 应用界面。感谢Python-OpenCV在处理图像和视频方面的强大支持。注意事项本项目仅供学习和技术演示并非为生产环境设计。目标是展示 YOLOv8 和 Streamlit 等技术的集成与应用并为开发者提供学习和参考的资源。项目中的所有代码、界面和功能均可自由扩展欢迎贡献或基于此项目进行二次开发。