aparsoft/yolo-streamlit-detection-tracking
YOLO Vision Studio: a free, open-source Streamlit app for detection, segmentation, pose, text prompts (YOLO World, YOLOE) and tracking with honest counts. Built on Ultralytics YOLO26.
🔬 YOLO Vision Studio – Ultralytics YOLO 的 Streamlit UI
是什么 – 一个免费开源的 Web 应用(基于 Streamlit),可让您在图像或视频流上运行最先进的 YOLO 模型,并实时查看结果。支持检测、实例分割、姿态估计、基于文本的物体查询(YOLO World),以及多种现代追踪器的多对象追踪。
为何重要 – 在视频中统计 不同 物体很困难,因为人(或车)会消失又重新出现。该应用在每一帧上显示两个数字:
- 帧内 – 检测器当前看到的内容。
- 经过 / 已追踪 – 至少确认 5 帧以上的唯一 ID,提供真实总数。 还显示一个 流失率(churn)指标,告诉您追踪中断的频率。
主要功能
| 功能 | 详情 |
|---|---|
| 模型 | Ultralytics YOLO-v8-26(nano → xlarge)、YOLO-E、YOLO World v2、RT-DETR。自动下载权重。 |
| 任务 | 物体检测、实例分割、姿态关键点、基于文本的“输入即查找”。 |
| 追踪 | 四种内置追踪器 – ByteTrack、BoT-SORT、Deep OC-SORT、TrackTrack – 支持可选外观 ReID。 |
| 源 | 本地视频文件、网络摄像头(浏览器)、RTSP 流、YouTube URL。 |
| 实时 UI | 侧边栏可选择模式、模型、置信度、类别过滤器、帧跳过因子和追踪器设置。 |
| 计数与指标 | 按类别计数、ID 发放 vs 确认追踪、流失率,以及视频结束后汇总表格。 |
| 多视频 | 可并排显示多个视频,每个视频拥有独立追踪器。 |
| 可部署 | 本地运行或在 Streamlit Cloud(仅 CPU)上运行。 |
快速开始(需 Python 3.10+)
# 克隆并进入仓库
git clone https://github.com/aparsoft/yolo-streamlit-detection-tracking.git
cd yolo-streamlit-detection-tracking
# 推荐:使用 uv(快速,支持锁文件)
uv sync # 创建 .venv 并精确安装依赖
uv run python scripts/get_sample_videos.py # 可选:获取示例片段
uv run streamlit run app.py # 打开 http://localhost:8501
或使用 pip:
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt # 或使用 requirements-lock.txt 获取精确版本
python scripts/get_sample_videos.py # 可选
streamlit run app.py
首次运行时,会将所需 YOLO 权重下载到 weights/ 目录中。
如何使用
- 在侧边栏选择 图像 或 视频 模式。
- 选择源(文件、摄像头、RTSP、YouTube)。
- 选择模型(速度优先选 nano,精度优先选 xlarge),并设置置信度阈值。
- (视频)选择追踪器,并可选启用 ReID。
- 点击 检测 – 应用将实时流式传输带边界框、掩码、骨架或高亮提示的帧,同时显示实时计数。
- 可通过 ⏹ 停止 按钮提前终止;视频结束后将显示追踪摘要。
配置 – 所有默认值均位于 config.py(置信度、最小追踪命中数、显示大小等)。添加自定义 .pt 模型只需将文件放入 weights/ 并在 config.py 中注册即可。
项目结构
app.py # Streamlit 入口点,UI 路由
config.py # 模型目录,默认设置
model_loader.py # 每会话缓存模型
image_service.py # 处理图像上传与推理
video_service.py # 视频源处理、追踪、叠加
scripts/get_sample_videos.py
docs/ (沙盒笔记本,笔记)
assets/ (README 图片)
weights/ (下载的模型文件)
许可证 – 应用代码采用 Apache-2.0;模型权重遵循 Ultralytics 的 AGPL-3.0(商业用途需其企业许可证)。
适合人群 – 希望无需编写代码即可实验 YOLO 检测、分割、姿态和追踪的研究人员或爱好者;需要快速演示用于监控、零售客流分析或任何基于视频计数任务的开发者。
相关
- 项目
- 项目
- 项目
- 项目
- 项目