支持最多 4 个网络流、视频文件或图片预览,提供权重上传与切换、置信度调整、CPU/GPU 选择、批量实时推理、Box 绘制及单源暂停推理。
推理、线程模型和 Box 绘制说明见 docs/LEARNING.md。
不同系统生成的虚拟环境目录结构不同,请使用当前系统对应的命令。不要在 Windows、Linux 和 macOS 之间复制或共用 .venv 目录。
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8088如果 PowerShell 提示禁止运行脚本,可仅为当前终端临时放开限制:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1py -m venv .venv
.venv\Scripts\activate.bat
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8088python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8088如果创建虚拟环境时提示缺少 venv,先安装系统组件,再重新创建:
sudo apt update
sudo apt install -y python3-venv
python3 -m venv .venvpython3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8088虚拟环境激活后,终端提示符前通常会出现 (.venv)。所有系统均可使用以下命令退出虚拟环境:
deactivate访问 http://127.0.0.1:8088。
将火焰烟雾权重放入 weights/:
weights/fire_smoke_detect_v2.pt
| 环境变量 | 默认值 | 说明 |
|---|---|---|
YOLO_CONF |
0.5 |
检测置信度初始值,可在页面工具栏实时调整 |
YOLO_IMGSZ |
512 |
推理尺寸,性能不足可设为 416 |
YOLO_FPS |
10 |
批量推理目标帧率 |
YOLO_DEVICE |
自动 | 例如 0 或 cpu |
YOLO_HALF |
GPU 自动开启 | 是否使用 FP16 |
YOLOV5_REPO |
自动下载 | 本地 YOLOv5 仓库路径,用于离线加载旧权重 |
PREVIEW_FPS |
15 |
网页预览帧率 |
PREVIEW_WIDTH |
960 |
网页预览最大宽度 |
JPEG_QUALITY |
75 |
网页预览 JPEG 质量 |
VIDEO_ROOTS |
data/videos |
服务器文件白名单目录,Windows 多目录用 ; 分隔 |
MAX_VIDEO_SIZE_MB |
4096 |
浏览器上传视频大小限制 |
MAX_IMAGE_SIZE_MB |
25 |
浏览器上传图片大小限制 |
MAX_IMAGE_PIXELS |
40000000 |
上传图片最大总像素数 |
MAX_MODEL_SIZE_MB |
1024 |
上传权重大小限制 |
RTSP_TRANSPORT |
tcp |
RTSP 传输,可设为 udp |
STREAM_OPEN_TIMEOUT_MS |
8000 |
网络流连接超时 |
STREAM_READ_TIMEOUT_MS |
5000 |
网络流读取超时 |
OpenCV 通过 FFmpeg 读取 RTSP、RTSPS、RTMP、HTTP 和 HTTPS 视频流,支持常见 H.264/H.265 流。MediaMTX 可用于流汇聚与转发。
- 本地视频上传采用分块写盘,不会把整个文件载入内存。
- 本地图片支持 JPG、JPEG、PNG、BMP、WEBP,上传后作为静态源参与同一批 YOLO 推理。
- 浏览器无法把用户电脑路径直接交给远程服务器读取;远程部署应把视频目录或 NAS 挂载到服务器,再使用“服务器文件”。
- 服务器文件只能读取
VIDEO_ROOTS白名单目录。
Windows 示例:
$env:VIDEO_ROOTS="D:\videos;Z:\shared-videos"Linux 或容器示例:
VIDEO_ROOTS=/data/videos:/mnt/nas/videos- YOLOv8、YOLO11 等新版权重使用 Ultralytics 后端。
- 旧 YOLOv5 权重会自动切换到官方 YOLOv5 Torch Hub 后端。
- 首次使用 YOLOv5 需要联网下载一次官方仓库并写入 PyTorch 缓存。
离线环境可提前克隆官方 YOLOv5,并在启动前设置:
$env:YOLOV5_REPO="D:\tools\yolov5"模型权重属于可执行的 PyTorch checkpoint,只加载可信来源的 .pt 文件。
flowchart TD
A[RTSP / 本地视频 / 图片] --> B[视频采集或图片解码]
B --> C[保留各路最新帧]
C --> D[最多 4 路批量 YOLO 推理]
D --> E[统一 Detection]
E --> F[OpenCV 绘制检测框]
F --> G[JPEG 编码与 MJPEG 预览]