Revolutionary-Technology-Company/NVIDIA-Rendering-for-Genetec
GitHub: Revolutionary-Technology-Company/NVIDIA-Rendering-for-Genetec
基于 NVIDIA DeepStream、Triton 和 Numba JIT 构建的多 GPU 计算机视觉 pipeline,用于对 Genetec 4K 安防视频流执行实时目标跟踪、武器威胁评估与车牌识别。
Stars: 0 | Forks: 1
# 🛡️ Genetec + NVIDIA 统一威胁矩阵与遥测 Pipeline
这是一个企业级、边缘优化的计算机视觉 pipeline,旨在从 Genetec Media Gateway 拉取高保真 4K 安防视频流。该系统执行实时多目标跟踪、武器接近风险缩放、车牌识别 (LPR) 以及建筑蓝图处理。
通过统一的 runtime 切换,优化后在企业级 **NVIDIA RTX 6000 Pro (Ada Lovelace)** 和消费级 **ASUS TUF RTX 50 系列** 架构上均可无缝运行。
## 🏗️ 架构生态系统概述
该平台采用解耦的非阻塞 pipeline 方法,即使在峰值分析负载下,也能将帧率稳定保持在 30+ FPS:
1. **推理后端层 (`pipeline.py`)**:通过 Python DeepStream (`pyds`) 绑定编写。在原生 `nvinfer` (RTX 6000) 和 `nvinferserver` (RTX 50 Triton Backend) 之间动态切换,以绕过硬件 SM 架构限制。
2. **矩阵 QuickMath 核心 (`yolov8_triton_parser.py`)**:使用多核 CPU 线程和 **Numba JIT (`@njit`)** 执行,在微秒内解析数千个原始候选框,并评估威胁与人体坐标的接近程度。
3. **结构化文本提取器 (`ocr_layer.py` / `blueprint_reader.py`)**:零拷贝 GPU 内存映射直接在 VRAM 中裁剪目标边界。文本处理使用 **PaddleOCR Layout Analysis** 进行管理,无需将帧移回主机 RAM 即可解析数据。
4. **遥测与可视化 (`telemetry_producer.py` / `dashboard.py`)**:异步后台 MQTT 客户端将安全 JSON 数据点转发到多线程 **Streamlit** 仪表板。
## 📂 仓库结构
```
├── Dockerfile.app # Consolidated container construction layer
├── docker-compose.yml # Multi-container multi-architecture orchestrator
├── pipeline.py # Primary GStreamer entry loop application
├── yolov8_triton_parser.py # JIT-compiled NMS and weapon distance calculations
├── ocr_layer.py # In-GPU memory License Plate OCR processor
├── blueprint_reader.py # Technical Wall Blueprint layout analyst
├── telemetry_producer.py # Async multi-threaded MQTT messaging client
├── dashboard.py # Streamlit-powered local telemetry interface
├── config_infer_rtx6000.txt # Native TensorRT configuration parameters
├── config_infer_rtx50_triton.txt # Triton server Blackwell integration rules
├── config_tracker_nvdcft.txt # NVTracker object association parameters
└── triton_model_repo/ # Triton specific local model hierarchy
└── yolov8x_blackwell/
├── config.pbtxt # Blackwell optimization mapping structure
└── 1/
└── model.trt # Hardware-compiled Blackwell engine binary
```
## ⚙️ 主机前置条件
在启动容器之前,请确保您的主机工作站已安装正确的硬件通信桥接:
1. **NVIDIA 显示驱动程序**:版本 `550.x` 或更高。
2. **Docker Engine & Compose**:原生 Docker runtime 设置。
3. **NVIDIA Container Toolkit**:将您的 GPU 暴露给容器空间的强制层。
```
# 验证 driver 集成和计算可用性
nvidia-smi
# 验证 Docker 有权访问物理 GPU 层
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
```
## 🚀 快速生产部署
整个系统已容器化,便于在不同的监控室和摄像设备组中进行分发部署。
### 1. 模型引擎编译
TensorRT 引擎文件 (`.engine` / `.trt`) 依赖于特定硬件。您必须在每台不同的机器类型上分别编译原始的 ONNX 模型。
```
# 在你的目标工作站 terminal 中运行此命令以编译你的 YOLO engine
trtexec --onnx=yolov8x.onnx --saveEngine=yolov8x_optimized.engine --fp16
```
* 重命名已编译的引擎文件,并将其放置在根目录(适用于 RTX 6000)或 `triton_model_repo/yolov8x_blackwell/1/model.trt`(适用于 ASUS TUF RTX 50)中。
### 2. 配置环境参数
打开 `pipeline.py` 并配置您的网络参数:
```
# 第 77 行:插入你活跃的 Genetec Media Gateway stream URL
source.set_property("location", "rtsp://GENETEC_SERVER_IP:554/LiveOS/Cameras/YOUR_CAMERA_ID")
```
### 3. 启动容器栈
打开 `docker-compose.yml` 并验证与您当前部署机房环境匹配的硬件命令字符串:
```
# 在 docker-compose.yml 内部 -> camera-pipeline service
command: ["--gpu-type", "rtx6000"] # Swap to "rtx50" for ASUS TUF Blackwell nodes
```
现在在后台构建并运行这些服务:
```
# 在本地构建 images
docker compose build
# 启动 telemetry broker、pipeline engine 和 analytical dashboard
docker compose up -d
```
### 4. 查看监控界面
当容器状态显示为活跃状态时,在您网络上的任意浏览器中打开并导航至以下地址,即可访问您的实时跟踪指标仪表板:
```
http://:8501
```
## 📡 分析遥测 Schema
该 pipeline 跨不同的 MQTT 主题传输高优先级警报。下游应用程序可以订阅这些数据层:
### 威胁警报 (`security/analytics/threats`)
```
{
"timestamp": 1718873452.124,
"camera": "ENGINEERING_ROOM_CAM_01",
"alert": "ARMED_INDIVIDUAL",
"person_id": 42
}
```
### 车辆 LPR 数据 (`security/analytics/lpr`)
```
{
"timestamp": 1718873455.589,
"camera_id": "ENGINEERING_ROOM_CAM_01",
"event_type": "LICENSE_PLATE_DETECTION",
"data": {
"plate_number": "7XYZ89",
"confidence_score": 0.9421
}
}
```
## 🛠️ 操作诊断与开发
### 查看实时日志 Pipeline:
```
docker logs -f security_deepstream_core
```
### 清理系统重置:
```
docker compose down -v
```
**由 Revolutionary Technology Company 工程团队开发。**
如需协助调整 Numba 线程分配边界或自定义 YOLO 类的 fine-tuning,请在此仓库中提交官方 issue。
标签:Kubernetes, NVIDIA DeepStream, OCR, 安防监控, 目标检测与追踪, 视频流分析, 计算机视觉, 请求拦截, 边缘计算, 逆向工具