事例概要
Beijing Winge Technology Co., Ltd. は、RK3588 Ubuntu エッジコンピュータ上で動作する単一チャンネルの産業用煙監視システムを納品しました。3フレーム MobileNetV3-Small ONNX モデルで煙の有無を先に判定し、昼間は第2段階で黒煙、黒煙以外、色不明を分類します。黒煙条件が確認時間まで継続すると、MCP2221A GPIO から設定された警報レベルを出力します。
納品範囲には、モデル、RTSP 接続、Web コンソール、画像・動画テスト、systemd/Nginx 導入、GPIO 連動、ARM64 パッケージ、ロールバックバックアップ、チェックサム、実機検証記録が含まれます。本事例の「黒煙」はプロジェクト内の色分類ラベルであり、リンゲルマン濃度、汚染物質濃度、法令上の排出判定ではありません。
プロジェクト背景
顧客は、管理された LAN 内の RK3588 工控機に産業用カメラ1台を接続し、連続プレビューと煙状態の端末内判定を行う必要がありました。さらに MCP2221A の GP0-GP3 から高または低の論理レベルを出力し、PLC、リレー、回転灯、ブザーへ接続する要件がありました。
対象は分類器だけではなく、動画デコード、ARM64 導入、サービス自動起動、ブラウザ設定、障害処理、テスト出力の分離、顧客向け導入物、ロールバックまでを含みます。環境は RK3588、Ubuntu 22.04 ARM64、Nginx、Gunicorn、OpenCV DNN、ONNX です。
納品範囲
| 項目 | 納品内容 |
|---|---|
| 煙判定 | 3フレーム MobileNetV3-Small ONNX 分類 |
| 色判定 | 昼間の黒煙、黒煙以外、色不明の分類 |
| 映像入力 | RTSP、HTTP、ローカル動画と MJPEG ブラウザプレビュー |
| Web コンソール | 映像 URL、アルゴリズム、色しきい値、GPIO、アクティブレベル設定 |
| テスト | 画像・動画テストと任意の MCP2221A 出力連動 |
| 警報出力 | GP0-GP3 を選択し、High/Low アクティブに対応 |
| 導入運用 | Nginx、Gunicorn、systemd、udev、ヘルスチェック、固定 IP、ロールバック |
| 成果物 | ARM64 パッケージ、モデル、スクリプト、テスト、資料、SHA-256 |
技術構成
処理経路は、産業用カメラまたはアップロード媒体 → OpenCV/FFmpeg デコード → 3フレーム時系列煙分類 → 固定画角・異常画像ガード → 昼間の煙色分類 → 連続確認 → MCP2221A GPIO → Web 状態とログ、です。
RK3588 側は OpenCV DNN で ONNX を読み込み、PyTorch は不要です。Nginx が LAN の HTTP 入口を提供し、Gunicorn は 127.0.0.1:8000 のみにバインドします。プログラムは /opt/smoke-control、設定は /var/lib/smoke-control/config.json、自動起動は smoke-control.service で管理します。
2段階判定と警報条件
第1段階は連続3フレームから煙の有無を判定します。煙が出力された場合だけ色判定を実行します。昼間は black_smoke、黒煙以外、色不明を返し、夜間は煙判定を残したまま色を unknown_night とし、黒煙警報を出しません。
警報には、煙あり、黒煙分類、設定した色信頼度、確認時間の4条件が必要です。基準確認時間は2秒です。アップロードテストは GPIO と分離できます。連動を明示的に有効にした場合は設定レベルを保持し、終了後にリアルタイム自動制御へ戻します。
現場課題と修正
固定画角には暗色家具、ガラス反射、静止暗景、黒画像、二値図形、ノイズ黒画面、暗いグラデーションが含まれました。確認済み背景、構造制約付き静止画面、黒画像・二値図形、ライブ静止画面、全体暗画像の各ガードを追加しました。
全体暗画像は平均グレースケールが 24 以下、かつ99パーセンタイルが 50 以下の場合だけ拒否します。プロジェクトの可読画像 1,760 枚を逆検査した結果、この新規則の該当は 0 枚でした。最も暗い既知黒煙正例は平均 19.32 でしたが、99パーセンタイルが 62 であり拒否されませんでした。
白背景の黒煙動画では、旧条件の暗画素面積 14% に対し、顧客の37秒動画は 9.03%–11.38% でした。背景 P90 が 250 以上の場合に限り下限を 8% に変更し、通常の暗景には適用しません。
検証結果
次の値は 2026-07-26~2026-07-29 の内部プロジェクト記録です。記載したソフトウェア、モデル、サンプル、機器、方法に限定され、任意の現場に対する一般精度を示すものではありません。
| 検証項目 | 結果と条件 |
|---|---|
| 顧客動画 | 37秒、1024×540、30 FPS、1110フレーム、0.5秒間隔で74サンプル |
| 実機動画結果 | 煙 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サブテストが通過 |
| 異常暗画像 | 黒・近黒・ノイズ・グラデーション・JPEG・PNG 等13変種を無煙判定 |
| 逆検査 | 1,760画像に対する新規則の該当は0 |
| 顧客機器暗画像 | ノイズまたは暗グラデーション3枚で連動出力なし |
| 黒煙正例 | 煙信頼度 98.53%、色信頼度 99.99%、正例を維持 |
| 最終状態 | 6回連続で映像接続、無煙、警報なし、GP0 Low |
| 導入整合性 | 変更4ファイルの SHA-256 が実機と一致、サービス active/enabled |
プロジェクト結果
- RTSP 入力、ARM64 推論、2段階判定、GPIO 出力までを一つの経路に統合しました。
- 映像、アルゴリズム、しきい値、ピン、アクティブレベルを Web で管理します。
- 媒体テスト、ライブ監視、ハードウェア出力の境界を分離しました。
- 暗景、黒画面、二値図形、ノイズ、グラデーション、白背景黒煙に回帰可能な保護を追加しました。
- パッケージ、モデル、導入スクリプト、テスト、資料、ハッシュ、ロールバック点を納品しました。
適用場面
- 工場・産業設備の固定画角における煙監視の試作と技術検証。
- RK3588 ARM64 上のエッジ画像処理と LAN コンソール。
- 画像判定を PLC、リレー、回転灯、ブザー入力へ変換する案件。
- 端末内処理で原映像のクラウド送信を減らす単一映像監視。
納品境界とリスク
本システムは法定排出測定器ではなく、リンゲルマン濃度や汚染物質濃度を出力せず、環境測定・認証・行政判断を代替しません。露出、ホワイトバランス、圧縮、天候、照明、背景、画角、距離が色判定に影響します。
MCP2221A は論理レベルのみを出力し、大電流負荷を直接駆動できません。PLC、リレー、灯、ブザーには電圧・電流・絶縁・フェイルセーフ要件に合うドライバまたはフォトカプラと現場電気受入が必要です。
基準 Web コンソールは管理 LAN 向けです。外部公開には認証、アクセス制御、HTTPS、カメラ資格情報保護、ログマスキングが必要です。本番前に現場受入データを固定し、Precision、Recall、誤報頻度、見逃し範囲、復旧時間、長時間運転、再起動試験を定義します。
よくある質問
黒煙はどのように判定しますか?
3フレームで煙を検出した後、昼間に色を分類します。煙、黒煙、信頼度しきい値、確認時間の全条件が必要です。
夜間も黒煙を判定できますか?
納品基準では夜間は煙のみを判定し、色は unknown_night です。夜間の黒煙には別データと受入基準が必要です。
リンゲルマン濃度監視と同じですか?
同じではありません。黒煙は画像上の色ラベルで、リンゲルマン級、粒子濃度、法令上の排出結果は出力しません。
既存カメラや PLC に接続できますか?
RTSP/HTTP、コーデック、解像度、FPS、ネットワーク、PLC 入力仕様を確認して評価します。出力側には適切な駆動と絶縁が必要です。
別の RK3588 機器では再検証が必要ですか?
必要です。OS、OpenCV/FFmpeg、映像、ネットワーク、温度、負荷、画角が変わるため、構築、機能、誤報、見逃し、出力、長時間運転を再試験します。

Online
Phone
WeChat
Top