Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

极简图像与视频实时推理

支持最多 4 个网络流、视频文件或图片预览,提供权重上传与切换、置信度调整、CPU/GPU 选择、批量实时推理、Box 绘制及单源暂停推理。

推理、线程模型和 Box 绘制说明见 docs/LEARNING.md

运行

不同系统生成的虚拟环境目录结构不同,请使用当前系统对应的命令。不要在 Windows、Linux 和 macOS 之间复制或共用 .venv 目录。

Windows PowerShell

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.ps1

Windows CMD

py -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 8088

Ubuntu / Debian Linux

python3 -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 .venv

macOS

python3 -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 自动 例如 0cpu
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 预览]
Loading

About

视频流推理在线看板

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages