让夜间监控不再是盲区
低光照视频实时增强系统
NightVision 客户端的低光照实时渲染效果演示。
从单帧延迟到并发能力,NightLight 在真实场景下跑出来的数字。
基准:RTX 5060 8GB · 8 路 Pipeline 转码 · T8 30 min 稳态 · 出队口径(不计入采集队列排队) · 详见 docs/p3-baseline-report.md
夜间监控是安防、交通、工业场景中最常见也最容易被忽视的痛点。大量摄像头一到夜间就沦为摆设。
低照度下画面漆黑、噪点密集,人眼难以辨识车牌、人脸和异常事件。简单亮度拉伸导致过曝和色彩失真。
多路视频流需逐路检查状态、手动重启故障流、人工记录日志。重复工作耗时且易遗漏告警。
系统只能被动显示,无法主动识别异常、提供诊断建议或执行自动化运维,故障排查全凭经验。
采集、增强、推流、展示由不同厂商系统拼凑,接口不统一、状态不同步、维护成本高。
ONNX Runtime 深度学习推理 + CLAHE 直方图均衡化,GPU 不可用时自动降级到 CPU,确保始终可用。
LLM Agent 将自然语言转为结构化控制指令,智能诊断故障并提供处置建议,变更操作需审批防误操作。
NightVision 视频墙支持 2×2 / 3×3 / 4×4 网格、轮巡与自由布局;Server 端流生命周期一键管理,FPS/延迟/错误率实时展示,Prometheus 全链路可观测(`/metrics` :19102)。
Server/Agent/Client 三层解耦,标准化协议通信,Docker 一键部署,从采集到展示一套系统搞定。
从低光照采集到 AI 增强再到 RTMP 推流,端到端的实时视频增强解决方案。
可选后端:histogram / CLAHE / OnnxEnhance(MELENet 等),与 inline-detect 正交,可按路独立开关;基于 ONNX Runtime,CPU/GPU EP 自适应。
接 OpenAI 兼容端点(开发主用 DeepSeek 云端,本地 llama.cpp + Qwen GGUF 私有化),ReAct function calling + 策略护栏 + ActionConfirm UI,变更操作需人工审批。
内置 RTMP 推流,增强/检测后的视频推至 `rtmp://host:1935/live/
基于 Qt/QML + OpenGL 的桌面客户端,支持视频墙展示、实时预览和交互控制。
`make init && make up` 起 Server + Agent + llama.cpp;默认 GPU 栈(`docker-compose.yml`),无 GPU 用 `docker-compose.cpu.yml` 兜底。
Server / Agent / Client 三层解耦,通过 WebSocket + TCP JSON 通信,各组件可独立扩展和替换。
三层解耦设计,各组件职责清晰,通信协议标准化。
| 组件 | 技术栈 | 职责 |
|---|---|---|
| Client | C++ / Qt, QML, OpenGL | 窗口框架 / 播放渲染 / 业务界面 |
| Agent | C++17, llama.cpp | LLM 推理 / 命令路由 / 会话管理 |
| Server | C++17, FFmpeg, ONNX Runtime | 采集解码 / 增强处理 / 编解码 / RTMP 推流 |
| Nginx-RTMP | Nginx, RTMP Module | 流媒体中转,推流 / 拉流 |
容器化一键部署,支持 GPU 加速;亦可源码级手动构建。
# 构建并启动 Server + Agent 全栈服务 docker compose up -d # 启用 GPU 加速,叠加 ONNX CUDA / NVENC 运行时配置 docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d # 服务探活:校验 Server 健康状态、端口连通性与运行时指标 curl http://xxx.xxx.xxx.xxx:19102/health
# Server cd Server && cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --target ServerMainCoreV2 -j 8 # Client cd Client && cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --target nightlight_client_v1 -j 8