案例概述
本案例面向固定工业场景中的烟雾识别与黑烟报警联动需求,目标是在 RK3588 工控机上部署可离线运行的视频识别服务。系统通过局域网 Web 控制台接入单路 RTSP、HTTP 或本地视频源,服务端使用 OpenCV 与 FFmpeg 解码并转为 MJPEG 预览,同时在后台运行两阶段烟雾识别算法:第一阶段判断画面中是否存在烟雾,第二阶段在烟雾成立后判断黑烟、非黑烟或颜色不确定。系统可通过 MCP2221A 的 GP 引脚输出报警有效电平,用于对接继电器、声光报警器或 PLC 输入模块。
公开案例仅呈现项目技术路线、工程交付内容、已验证结果和适用边界,不公开客户名称、现场账号、摄像机地址、完整视频样本或内部凭据。项目结论限定于已验收的固定场景和已记录样本,不写成对任意现场、任意天气、任意相机曝光条件的泛化承诺。
项目背景与需求
客户现场需要在工业排放和设备巡检场景中识别烟雾,并在确认黑烟后形成本地报警输出。项目初期只有有限视频素材,且素材中以白烟和浅灰烟为主,缺少充分的无烟负样本、黑烟正样本、不同天气和不同曝光条件。基于这一条件,项目没有直接承诺通用黑烟模型,而是先制定两阶段路线:先识别烟雾,再判断烟色;先完成固定场景原型和边缘端控制台,再通过现场视频、误报样本和真实黑烟样本逐步迭代。
需求拆解后,系统需要覆盖视频流接入、实时预览、模型开关、颜色置信度阈值配置、昼夜策略、图片和视频测试、GPIO 联动输出、报警保持时间、设备状态显示、服务自启动、配置持久化、部署回滚和现场排障文档。由于浏览器不能直接播放 RTSP,系统在服务端完成转码;由于输出接口只提供逻辑电平,后级负载必须通过驱动或光耦模块隔离。
技术架构
算法模型采用边缘端离线部署方式,运行于 Ubuntu ARM64 的 RK3588 工控机。第一阶段为三帧早融合 MobileNetV3-Small ONNX 烟雾分类器,输入为连续三帧图像,用于降低单帧噪声和静态图形造成的误判。第二阶段为黑烟与非黑烟颜色分类器,仅在第一阶段存在烟雾候选时触发。部署端不依赖 PyTorch,使用 OpenCV DNN 执行 ONNX 推理,降低现场安装环境复杂度。
系统工程分为视频输入、模型推理、规则保护、Web 控制台、输出管理和运维脚本六个部分。视频输入支持实时流和上传视频测试;模型推理负责烟雾与烟色判断;规则保护用于处理固定机位清晰背景、静态画面、纯黑画面、二值图形、暗渐变和噪声黑屏;Web 控制台提供参数配置和状态展示;输出管理控制 MCP2221A GP0-GP3;运维脚本负责安装、服务管理、网口配置和回滚。
算法策略与误报控制
项目没有采用“整帧直接判黑烟”的方案。原因是工业现场中天空、云、反光、深色设备、阴影、压缩噪声和夜间低照度都会影响颜色判断。系统先判断是否有烟,再对烟雾候选区域进行颜色确认,并结合昼夜策略处理低照度场景。默认夜间只保留烟雾判断,颜色输出为 unknown_night,不触发黑烟电平。
随着现场样本增加,系统迭代了固定机位清晰背景保护、结构约束静态画面保护、视频测试自适应暗区取样、纯黑和二值图形保护、实时静态画面门控以及整体极暗异常画面保护。固定机位保护用于抑制深色桌椅、玻璃反光和曝光变化导致的无烟误报;静态门控用于处理实时画面几乎不变化但第一阶段模型产生烟雾候选的情况;极暗画面保护用于拦截高噪声黑屏和暗渐变图像。每类规则均保留边界说明,避免继续无依据放宽。
现场验证结果
模型评估报告显示,三帧时序烟雾模型在当前测试集 107 个样本组上得到 85 个烟雾样本命中、7 个烟雾样本漏检、15 个无烟样本正确识别、0 个无烟误报。该结果来自项目测试集,不代表所有外部场景。
客户 37 秒黑烟原始视频用于复现第二阶段颜色判定问题。修复前,旧门限能够识别烟雾,但黑烟帧为 0/74,结果为颜色不确定。v1.9.4 调整高亮背景下的相对暗区取样门限后,本地完整接口得到 73/74 烟雾帧、72/74 黑烟帧;在 RK3588 工控机正式服务上,上传视频测试得到 74/74 烟雾帧、73/74 黑烟帧,并满足报警条件。该视频测试与实时 GPIO 输出隔离,测试过程不会直接改变现场实时报警状态。
在 v2.0.3 验证中,自动化测试结果为 70 项通过、18 个子测试通过。13 种合成黑屏变体回归结果均为无烟;1760 张当前数据集图片的反向检查未命中 overall_dark 新规则;真实黑烟基准仍能通过两阶段判断。客户工控机验证中,服务为 active 和 enabled,健康检查返回模型版本 smoke_acceptance_model_v2.6,视频流为 connected,连续 6 次状态采样均为无烟、报警关闭、GP0 低电平、MCP2221A 已连接。
交付内容
项目交付包括烟雾识别 Web 控制台、模型配置、ONNX 权重、部署脚本、Nginx 与 systemd 配置、MCP2221A udev 规则、网口配置工具、测试接口、图片和视频测试功能、现场升级说明、部署验收说明、误报修复报告、回滚备份记录和运维命令。服务使用低权限用户运行,配置文件限制为服务账户读取,避免在日志和截图中暴露完整视频流地址。
前端页面支持实时监控、图片测试和视频测试。图片和视频测试可选择是否联动输出;测试输出结束后恢复实时自动控制。页面在桌面和移动视口下完成布局检查,主要控件无重叠和文本溢出。系统支持服务重启后自动恢复,并保留配置持久化、健康检查和现场排障命令。
适用边界
该案例适用于固定机位、单路视频流、局域网部署、边缘端离线识别和本地报警联动项目。对于摄像机移动、变焦、遮挡、夜间强噪声、逆光、不同天气、烟囱距离变化、多摄像机并发、多客户端分发和外网访问,需要重新采集样本、补充验收、评估算力和网络,并增加认证、访问控制和 HTTPS。MCP2221A 的 GP 引脚为逻辑电平输出,实际连接继电器、PLC 或声光报警器前,应按电气规格使用万用表或示波器确认电平和隔离方式。
常见问题
该系统是否等同于通用环保监测设备?
不等同。该案例是固定场景视觉识别和本地报警联动项目,结论限定于已测试样本和现场条件,不替代法定监测设备或第三方检测结论。
为什么采用两阶段识别?
两阶段流程先确认烟雾,再判断烟色,可以减少背景、云、水汽、设备反光和深色物体直接进入黑烟判断造成的误报。
正式部署前还需要确认什么?
需要确认目标现场真实黑烟、无烟、白烟、灰烟、夜间、逆光、雨雾和相机断流等样本,并完成输出电平、负载联动、网络稳定性和服务重启恢复验收。