video_monitor/app/analysis/__init__.py

31 lines
1.3 KiB
Python
Raw Normal View History

2026-08-30 22:22:11 +08:00
"""
Monitor · 视频分析层阶段1
模块构成
- frames ZLMediaKit 输出的 RTSP 流取帧OpenCV VideoCapture
- motion 运动检测OpenCV 背景减除
- detector 目标检测ONNX Runtime缺模型时优雅降级
- tracker 单摄像头目标跟踪轻量 IoU 关联
- pipeline 单摄像头流水线取帧 运动 检测 跟踪 事件
- worker_pool 多路共享的检测器进程池
- manager 全局分析管理器启动/停止每路 pipeline单例
设计原则
- 全部用 Python 实现不引入 C++ 服务
- 运动门控仅在有运动的区域跑检测显著降低 CPU/GPU 占用
- ZLMediaKit 解耦通过 ZLM 输出的 RTSP URL 取帧ZLM 仅负责协议接入
- 优雅降级未安装 opencv/numpy/onnxruntime 或未配置模型时Web Zone/Review/
Timeline/TrackedObject仍可正常使用"启动分析"会提示依赖不可用
为避免在 Django 启动期就拉起 OpenCV/ONNX 等较重依赖本包不在此处 eager 导入
AnalysisManager请通过 get_manager() 按需获取
"""
def get_manager():
"""懒加载并返回全局 AnalysisManager 单例"""
from app.analysis.manager import AnalysisManager
return AnalysisManager()
__all__ = ["get_manager"]