Краткое описание
Beijing Winge Technology Co., Ltd. поставила одноканальную систему промышленного видеомониторинга дыма на edge-компьютере RK3588 Ubuntu. Сначала модель MobileNetV3-Small ONNX анализирует три кадра и определяет наличие дыма. Днём второй этап классифицирует его как чёрный, не чёрный или неопределённый по цвету. Если условие чёрного дыма сохраняется в течение времени подтверждения, GPIO MCP2221A выдаёт настроенный уровень сигнализации.
Поставка включала модель, RTSP, веб-консоль, тесты изображений и видео, развёртывание systemd/Nginx, GPIO, ARM64-пакет, резервную копию для отката, контрольные суммы и протоколы проверки. «Чёрный дым» здесь — проектная цветовая метка, а не шкала Рингельмана, измерение концентрации загрязнителей или официальное заключение о выбросах.
Исходные условия
Требовалось подключить одну промышленную камеру к RK3588 в контролируемой локальной сети, показывать непрерывное видео и локально оценивать дым. Также требовались настраиваемые логические уровни High/Low на MCP2221A GP0-GP3 для ПЛК, реле, маяка или сирены.
Работа охватывала декодирование видео, ARM64-развёртывание, автозапуск, настройку через браузер, обработку ошибок, изоляцию тестового выхода, установочные материалы и откат. Среда: RK3588, Ubuntu 22.04 ARM64, Nginx, Gunicorn, OpenCV DNN и ONNX.
Состав поставки
| Компонент | Содержание |
|---|---|
| Детекция дыма | Трёхкадровая классификация MobileNetV3-Small ONNX |
| Цвет | Чёрный, не чёрный или неопределённый дым днём |
| Видео | RTSP, HTTP или локальный файл с MJPEG-просмотром |
| Веб-консоль | URL, алгоритм, порог цвета, GPIO и активный уровень |
| Медиа-тесты | Изображения и видео с опциональной связью MCP2221A |
| Сигнализация | GP0-GP3, активный высокий или низкий уровень |
| Эксплуатация | Nginx, Gunicorn, systemd, udev, health check, статический IP и откат |
| Артефакты | ARM64-пакет, модели, скрипты, тесты, документы и SHA-256 |
Техническая архитектура
Цепочка: камера или загруженный материал → OpenCV/FFmpeg → трёхкадровая временная классификация → защита фиксированного ракурса и аномальных кадров → дневная оценка цвета → непрерывное подтверждение → GPIO MCP2221A → веб-статус и журналы.
На RK3588 модель ONNX загружается через OpenCV DNN; PyTorch не требуется. Nginx предоставляет HTTP в LAN, Gunicorn слушает только 127.0.0.1:8000. Программа находится в /opt/smoke-control, настройки — в /var/lib/smoke-control/config.json, автозапуском управляет smoke-control.service.
Двухэтапное решение и сигнализация
Первый этап оценивает три последовательных кадра. Цвет анализируется только после детекции дыма. Днём возвращается black_smoke, не чёрный или неопределённый. Ночью детекция дыма сохраняется, но цвет равен unknown_night, поэтому сигнал чёрного дыма не выдаётся.
Для тревоги одновременно нужны дым, чёрный цвет, достижение порога уверенности и длительность подтверждения. Базовое время — две секунды. Загруженные тесты могут быть изолированы от GPIO; при включённой связи тестовый уровень удерживается, затем возвращается автоматическое управление.
Полевые проблемы и исправления
В фиксированном кадре были тёмная мебель, отражения, статические тёмные сцены, чёрные кадры, бинарная графика, шум и градиенты. Добавлены защиты проверенного фона, структурно ограниченной статики, чёрного кадра, бинарной графики, статического потока и общей темноты.
Правило общей темноты срабатывает только при среднем сером не выше 24 и 99-м перцентиле не выше 50. Обратная проверка 1 760 изображений дала 0 совпадений. Самый тёмный положительный образец имел среднее 19,32, но 99-й перцентиль 62, поэтому не был отклонён.
Для чёрного дыма на светлом фоне прежнее правило требовало 14% тёмных пикселей; в 37-секундном видео было 9,03%–11,38%. Порог 8% применяется только при P90 фона не ниже 250; обычные тёмные сцены эту компенсацию не используют.
Результаты проверки
Данные взяты из внутренних записей за 26–29.07.2026 и относятся только к указанным версиям, моделям, выборкам, устройству и методике. Это не общая оценка точности для любого объекта.
| Проверка | Результат и условие |
|---|---|
| Видео заказчика | 37 с, 1024×540, 30 FPS, 1 110 кадров, 74 выборки каждые 0,5 с |
| Результат на устройстве | Дым 74/74, кандидаты чёрного дыма 73/74, условие симуляции выполнено |
| Граница выхода | Проверка использовала output_isolated=true; GPIO не включался |
| Регрессия v1.9.4 | TP 57, FN 8, FP 2, TN 83; дополнительных FP нет |
| Тесты v2.0.3 | 70 тестов и 18 подтестов прошли |
| Тёмные изображения | 13 чёрных, почти чёрных, шумовых, градиентных, JPEG/PNG вариантов остались «нет дыма» |
| Обратная проверка | Новое правило совпало с 0/1 760 изображений |
| Тесты на устройстве | Три шумовых/градиентных изображения не активировали выход |
| Положительный дым | Уверенность дыма 98,53%, цвета 99,99%, результат сохранён |
| Конечное состояние | Шесть выборок: поток подключён, дыма нет, тревоги нет, GP0 Low |
| Целостность | SHA-256 четырёх файлов совпал; служба active/enabled |
Результат проекта
- Полная цепочка от RTSP и ARM64-инференса до двух этапов и GPIO.
- Управление потоком, алгоритмом, порогом, пином и уровнем через веб-консоль.
- Разделение медиа-тестов, живого мониторинга и физического выхода.
- Регрессии для тёмных сцен, чёрных кадров, бинарной графики, шума, градиента и светлого фона.
- Пакеты, модели, скрипты, тесты, документы, хэши и точки отката.
Подходящие применения
- Прототипы и техническая проверка дыма при фиксированном ракурсе на промышленных объектах.
- Edge vision и управление по LAN на RK3588 ARM64.
- Преобразование визуального решения во вход ПЛК, реле, маяка или сирены.
- Локальный одноканальный мониторинг с уменьшением отправки исходного видео.
Границы и риски
Система не является официальным измерителем выбросов. Она не выдаёт шкалу Рингельмана или концентрацию загрязнителей и не заменяет экологическое испытание, сертификацию или решение регулятора. Экспозиция, баланс белого, сжатие, погода, свет, фон, ракурс и расстояние влияют на цвет.
MCP2221A выдаёт только логический уровень и не управляет мощной нагрузкой напрямую. Для ПЛК, реле, лампы или сирены нужны драйвер или опторазвязка по напряжению, току, изоляции и fail-safe, а затем полевые электрические испытания.
Базовая консоль предназначена для контролируемой LAN. Публичный доступ требует аутентификации, контроля доступа, HTTPS, защиты данных камеры и маскирования журналов. До производства следует зафиксировать объектовую выборку и критерии Precision, Recall, ложных тревог, пропусков, восстановления, длительного прогона и перезапуска.
Частые вопросы
Как определяется чёрный дым?
Сначала дым определяется по трём кадрам, затем днём классифицируется цвет. Нужны дым, чёрный цвет, порог уверенности и время подтверждения.
Работает ли классификация чёрного дыма ночью?
Базовая версия ночью определяет только дым и возвращает unknown_night для цвета. Ночная классификация требует отдельных данных и критериев.
Это мониторинг по Рингельману?
Нет. Чёрный дым — визуальная метка; система не выдаёт уровень Рингельмана, частицы или официальный результат по выбросам.
Можно подключить имеющуюся камеру и ПЛК?
Оцениваются RTSP/HTTP, кодек, разрешение, FPS, сеть и электрические параметры входа ПЛК. Выход MCP2221A требует драйвера и изоляции.
Другой RK3588 нужно проверять заново?
Да. ОС, OpenCV/FFmpeg, поток, сеть, температура, нагрузка и ракурс меняют результат. Нужны повторные build, функциональные, ложные/пропущенные события, выход и endurance-тесты.

Online
Phone
WeChat
Top