Resumo do caso
A Beijing Winge Technology Co., Ltd. entregou um sistema de monitoramento de fumaça industrial de um canal em um computador de borda RK3588 Ubuntu. Um modelo MobileNetV3-Small ONNX avalia três quadros para detectar fumaça; durante o dia, a segunda etapa classifica fumaça preta, não preta ou cor incerta. Quando a condição permanece durante o tempo de confirmação, um GPIO MCP2221A fornece o nível de alarme configurado.
A entrega incluiu modelo, acesso RTSP, console web, testes de imagem e vídeo, implantação systemd/Nginx, integração GPIO, pacote ARM64, backup de reversão, checksums e registros de verificação. “Fumaça preta” é um rótulo visual do projeto, não uma escala Ringelmann, medição de poluentes ou decisão regulatória de emissões.
Contexto do projeto
O cliente precisava conectar uma câmera industrial a um RK3588 em uma LAN controlada, manter a visualização e avaliar a fumaça localmente. Também eram necessários níveis lógicos alto ou baixo em MCP2221A GP0-GP3 para PLC, relé, sinalizador ou sirene.
O escopo cobriu decodificação de vídeo, implantação ARM64, inicialização automática, configuração no navegador, tratamento de erros, isolamento da saída de teste, materiais de instalação e reversão. O ambiente foi RK3588, Ubuntu 22.04 ARM64, Nginx, Gunicorn, OpenCV DNN e ONNX.
Escopo entregue
| Componente | Conteúdo |
|---|---|
| Etapa de fumaça | Classificação MobileNetV3-Small ONNX em três quadros |
| Etapa de cor | Fumaça preta, não preta ou incerta durante o dia |
| Vídeo | RTSP, HTTP ou arquivo local com visualização MJPEG |
| Console web | URL, algoritmo, limiar de cor, pino GPIO e nível ativo |
| Testes | Imagem e vídeo com vínculo MCP2221A opcional |
| Alarme | GP0-GP3, ativo em nível alto ou baixo |
| Operação | Nginx, Gunicorn, systemd, udev, health check, IP estático e rollback |
| Artefatos | Pacote ARM64, modelos, scripts, testes, documentos e SHA-256 |
Arquitetura técnica
Fluxo: câmera ou mídia enviada → decodificação OpenCV/FFmpeg → classificação temporal em três quadros → proteções de visão fixa e quadro anormal → cor diurna → confirmação contínua → GPIO MCP2221A → status web e logs.
O RK3588 carrega ONNX com OpenCV DNN e não exige PyTorch. Nginx fornece HTTP na LAN e Gunicorn escuta apenas em 127.0.0.1:8000. A aplicação fica em /opt/smoke-control, a configuração em /var/lib/smoke-control/config.json e smoke-control.service gerencia a inicialização.
Decisão em duas etapas e alarme
A primeira etapa avalia três quadros consecutivos. A cor só é executada após detectar fumaça. De dia retorna black_smoke, não preta ou incerta. À noite mantém a detecção de fumaça, mas retorna unknown_night para cor e não gera alarme de fumaça preta.
O alarme requer fumaça, cor preta, confiança acima do limiar e duração de confirmação. A base usou dois segundos. Testes enviados podem permanecer isolados do GPIO; quando o vínculo é ativado, o nível é mantido e depois o controle automático é restaurado.
Problemas de campo e correções
A visão fixa incluía móveis escuros, reflexos, cenas estáticas escuras, quadros pretos, gráficos binários, ruído e gradientes. Foram adicionadas proteções de fundo verificado, cena estática com estrutura, quadro preto, gráfico binário, stream estático e quadro globalmente escuro.
A regra de quadro escuro só atua com média de cinza até 24 e percentil 99 até 50. A varredura reversa de 1.760 imagens teve 0 correspondências. A amostra positiva mais escura tinha média 19,32, mas percentil 99 de 62, portanto não foi rejeitada.
Com fumaça preta em fundo claro, a regra antiga exigia 14% de pixels escuros, enquanto o vídeo de 37 segundos mediu 9,03%–11,38%. O limite de 8% só vale quando o P90 do fundo é pelo menos 250; cenas escuras comuns não usam essa compensação.
Resultados de verificação
Os números vêm de registros internos de 26 a 29/07/2026 e valem apenas para versões, modelos, amostras, dispositivo e método informados; não são uma afirmação de precisão geral para qualquer local.
| Item | Resultado e condição |
|---|---|
| Vídeo do cliente | 37 s, 1024×540, 30 FPS, 1.110 quadros, 74 amostras a cada 0,5 s |
| Resultado no dispositivo | Fumaça 74/74, candidatos pretos 73/74, condição simulada atendida |
| Limite de saída | A aceitação usou output_isolated=true; GPIO não acionado |
| Regressão v1.9.4 | TP 57, FN 8, FP 2, TN 83; sem FP adicional |
| Testes v2.0.3 | 70 testes mais 18 subtestes aprovados |
| Imagens escuras | 13 variantes pretas, quase pretas, com ruído, gradiente, JPEG e PNG permaneceram sem fumaça |
| Varredura reversa | A nova regra correspondeu a 0/1.760 imagens |
| Testes no cliente | Três imagens de ruído/gradiente não ativaram a saída vinculada |
| Positivo de fumaça preta | Confiança de fumaça 98,53%, cor 99,99%, positivo preservado |
| Estado final | Seis amostras: stream conectado, sem fumaça, sem alarme, GP0 baixo |
| Integridade | SHA-256 de quatro arquivos conferiu; serviço active/enabled |
Resultado do projeto
- Fluxo concluído de RTSP e inferência ARM64 até decisão em duas etapas e GPIO.
- Stream, algoritmo, limiar, pino e nível ativo gerenciados no console web.
- Separação clara entre teste de mídia, monitoramento ao vivo e saída física.
- Proteções com regressão para cenas escuras, quadros pretos, gráficos binários, ruído, gradiente e fundo claro.
- Pacotes, modelos, scripts, testes, documentação, hashes e pontos de rollback.
Cenários adequados
- Protótipos e verificação de fumaça em visão fixa em instalações industriais.
- Visão de borda e controle LAN em RK3588 ARM64.
- Conversão de decisão visual em entrada de PLC, relé, sinalizador ou sirene.
- Monitoramento local de um canal para reduzir envio de vídeo bruto.
Limites e riscos
O sistema não é um instrumento legal de emissões. Não fornece escala Ringelmann nem concentração de poluentes e não substitui teste ambiental, certificação ou decisão regulatória. Exposição, balanço de branco, compressão, clima, luz, fundo, ângulo e distância afetam a cor.
O MCP2221A fornece apenas nível lógico e não aciona carga de alta corrente diretamente. PLC, relé, luz ou sirene exigem driver ou opto-isolação conforme tensão, corrente, isolamento e fail-safe, além de aceitação elétrica em campo.
O console base destina-se a uma LAN controlada. Acesso público exige autenticação, controle de acesso, HTTPS, proteção das credenciais da câmera e redação de logs. Antes da produção, congele o conjunto local e critérios de Precision, Recall, falsos alarmes, eventos perdidos, recuperação, longa duração e reinício.
Perguntas frequentes
Como o sistema decide que a fumaça é preta?
Detecta fumaça em três quadros e depois classifica a cor durante o dia. Fumaça, cor preta, limiar de confiança e tempo de confirmação devem ser atendidos.
Classifica fumaça preta à noite?
A base detecta apenas fumaça à noite e retorna unknown_night para cor. A classificação noturna precisa de dados e critérios próprios.
Equivale ao monitoramento Ringelmann?
Não. Fumaça preta é um rótulo visual; o sistema não fornece escala Ringelmann, partículas ou resultado legal de emissão.
Pode integrar câmera e PLC existentes?
É necessário avaliar RTSP/HTTP, codec, resolução, FPS, rede e especificação elétrica do PLC. A saída MCP2221A precisa de acionamento e isolamento.
Outro dispositivo RK3588 requer nova verificação?
Sim. Sistema, OpenCV/FFmpeg, stream, rede, temperatura, carga e ângulo podem mudar o resultado. Repita build, função, falsos alarmes, perdas, saída e endurance.

Online
Phone
WeChat
Top