A crescente complexidade dos sistemas elétricos modernos demanda métodos de diagnóstico cada vez mais precisos e automatizados. No contexto da manutenção preditiva, especialmente em transformadores de potência, a análise de ruídos por magnetostricção — um fenômeno físico relacionado à vibração induzida por variações no campo magnético — tem se mostrado uma ferramenta promissora para identificar falhas incipientes sem a necessidade de desmontar ou interromper o funcionamento do equipamento.
Neste cenário, as Redes Neurais Convolucionais (Convolutional Neural Networks – CNNs) vêm ganhando espaço como uma das abordagens mais eficazes para analisar dados complexos como imagens, espectros de frequência e séries temporais com múltiplas variáveis. Originadas no campo da visão computacional, as CNNs evoluíram para lidar com diversos tipos de sinais, incluindo os acústicos e vibracionais. Sua capacidade de extrair automaticamente características relevantes (features) do sinal as torna ideais para tarefas de classificação, detecção de padrões e diagnóstico.
O presente artigo tem como objetivo apresentar, de forma progressiva e acessível, desde os fundamentos básicos até os conceitos avançados das CNNs, contextualizando sua aplicação na análise de sinais provenientes de sensores acústicos acoplados a transformadores. O texto também detalha como essas redes foram integradas ao simulador desenvolvido no projeto “Análise da Saúde de Transformadores com Base em Ruídos de Magnetostricção”, disponível publicamente no repositório GitHub: rapporttecnologia/simulador_magnetostriccao.
Ao longo do artigo, serão abordados conceitos essenciais de pré-processamento de sinais, arquiteturas de redes neurais, comparação com outros modelos de aprendizado profundo e técnicas específicas para treinar e avaliar CNNs aplicadas a dados vibracionais. A proposta é proporcionar uma compreensão sólida do papel das CNNs neste domínio, estimulando sua adoção em sistemas embarcados e aplicações industriais reais.
O que é uma Rede Neural Convolucional (CNN)?
Redes Neurais Convolucionais (CNNs, do inglês Convolutional Neural Networks) são um tipo específico de rede neural artificial projetada para lidar com dados estruturados espacialmente ou temporalmente, como imagens, sinais de áudio e séries temporais multicanais. Elas se destacam por sua habilidade em extrair automaticamente padrões e características relevantes dos dados, dispensando a necessidade de engenharia manual de atributos — tarefa que, tradicionalmente, exigia profundo conhecimento do domínio de aplicação.
A principal diferença entre uma CNN e uma rede neural densa (ou totalmente conectada) reside na operação de convolução. Em vez de conectar cada neurônio de uma camada a todos os neurônios da camada anterior, a CNN utiliza filtros ou kernels que percorrem localmente os dados de entrada, capturando padrões locais com eficiência. Essa operação simula, de certo modo, o funcionamento da visão em sistemas biológicos, onde diferentes regiões do campo visual são processadas de forma independente e combinadas em níveis superiores de abstração.
Essas redes são compostas por blocos fundamentais: camadas convolucionais, responsáveis por aplicar os filtros e extrair features locais; camadas de ativação, que introduzem não linearidade no sistema (como a função ReLU); camadas de pooling, que reduzem a dimensionalidade e extraem características mais robustas; e camadas totalmente conectadas, que realizam a classificação ou regressão com base nos features aprendidos.
Apesar de serem amplamente conhecidas por sua aplicação em reconhecimento de imagens, as CNNs também se mostraram extremamente eficientes na análise de sinais 1D — como os ruídos de magnetostricção captados por sensores —, desde que os dados sejam corretamente estruturados como vetores temporais ou representações espectrais (ex.: espectrogramas).
No contexto deste artigo e do simulador em desenvolvimento, as CNNs são treinadas para identificar padrões em sinais acústicos complexos, permitindo classificar o estado de saúde dos transformadores com base na vibração que emitem. Isso representa um avanço importante frente a técnicas tradicionais de análise espectral manual ou filtros lineares, especialmente quando se trata de ruídos de baixa amplitude ou de difícil interpretação visual.
O que é uma Rede Neural Convolucional (CNN)?
Redes Neurais Convolucionais (CNNs, do inglês Convolutional Neural Networks) são um tipo específico de rede neural artificial projetada para lidar com dados estruturados espacialmente ou temporalmente, como imagens, sinais de áudio e séries temporais multicanais. Elas se destacam por sua habilidade em extrair automaticamente padrões e características relevantes dos dados, dispensando a necessidade de engenharia manual de atributos — tarefa que, tradicionalmente, exigia profundo conhecimento do domínio de aplicação.
A principal diferença entre uma CNN e uma rede neural densa (ou totalmente conectada) reside na operação de convolução. Em vez de conectar cada neurônio de uma camada a todos os neurônios da camada anterior, a CNN utiliza filtros ou kernels que percorrem localmente os dados de entrada, capturando padrões locais com eficiência. Essa operação simula, de certo modo, o funcionamento da visão em sistemas biológicos, onde diferentes regiões do campo visual são processadas de forma independente e combinadas em níveis superiores de abstração.
Essas redes são compostas por blocos fundamentais: camadas convolucionais, responsáveis por aplicar os filtros e extrair features locais; camadas de ativação, que introduzem não linearidade no sistema (como a função ReLU); camadas de pooling, que reduzem a dimensionalidade e extraem características mais robustas; e camadas totalmente conectadas, que realizam a classificação ou regressão com base nos features aprendidos.
Apesar de serem amplamente conhecidas por sua aplicação em reconhecimento de imagens, as CNNs também se mostraram extremamente eficientes na análise de sinais 1D — como os ruídos de magnetostricção captados por sensores —, desde que os dados sejam corretamente estruturados como vetores temporais ou representações espectrais (ex.: espectrogramas).
No contexto deste artigo e do simulador em desenvolvimento, as CNNs são treinadas para identificar padrões em sinais acústicos complexos, permitindo classificar o estado de saúde dos transformadores com base na vibração que emitem. Isso representa um avanço importante frente a técnicas tradicionais de análise espectral manual ou filtros lineares, especialmente quando se trata de ruídos de baixa amplitude ou de difícil interpretação visual.
Entendendo a Função ReLU
A função ReLU (Rectified Linear Unit – Unidade Linear Retificada) é uma função de ativação amplamente utilizada em redes neurais profundas, especialmente em Redes Neurais Convolucionais (CNNs). Sua popularidade se deve à simplicidade computacional e à eficácia em acelerar o treinamento e melhorar a convergência de modelos profundos.
Matematicamente, a ReLU é definida pela seguinte equação: f(x)=max(0,x)f(x) = \max(0, x)f(x)=max(0,x)
Ou seja, se o valor de entrada xxx for positivo, ele é mantido; se for negativo, é convertido em zero. Esse comportamento cria uma espécie de filtro não linear que elimina valores negativos, preservando apenas os sinais “ativos”.
Por que ReLU é importante?
Nas CNNs, cada filtro convolucional gera uma saída que representa a resposta a certos padrões locais no dado de entrada (por exemplo, bordas em uma imagem, ou frequências específicas em um espectrograma). Após essa operação, a ReLU é aplicada para reforçar a presença desses padrões (valores positivos) e suprimir sinais que não contribuem significativamente (valores negativos).
Além disso, a ReLU evita problemas como o desvanecimento do gradiente (vanishing gradient), comum em funções sigmoides ou tanh, permitindo que os gradientes se propaguem com maior estabilidade durante o treinamento. Isso contribui para redes mais profundas e precisas.
Exemplo prático em sinais
Imagine que uma CNN está processando o espectro acústico de um transformador. Algumas regiões podem apresentar padrões de vibração característicos de falhas incipientes. A convolução aplicada sobre essas regiões produzirá valores maiores, enquanto regiões sem relevância (como ruído de fundo) gerarão valores próximos ou abaixo de zero. Ao aplicar a ReLU, a rede preserva apenas os padrões significativos, facilitando a detecção de anomalias.
Visualização
Gráfico da função ReLU:

O gráfico mostra claramente que ReLU é zero para qualquer entrada negativa e cresce linearmente para entradas positivas, o que a torna ideal para ativar seletivamente os neurônios relevantes.
Espectrograma: Visualizando o Sinal no Tempo e na Frequência
O espectrograma é uma representação visual da densidade espectral de potência de um sinal ao longo do tempo. Diferentemente da Transformada de Fourier tradicional, que mostra como a energia do sinal está distribuída em diferentes frequências, o espectrograma adiciona uma dimensão temporal, permitindo observar como essas frequências evoluem ao longo do tempo.
Essa ferramenta é extremamente útil para análise de sinais não estacionários, como os ruídos de magnetostricção em transformadores, que podem apresentar variações abruptas ou padrões periódicos característicos de falhas mecânicas ou elétricas.
Como é calculado um espectrograma?
O espectrograma é obtido por meio da Short-Time Fourier Transform (STFT) — a Transformada de Fourier de Curta Duração. A ideia é dividir o sinal original em pequenas janelas de tempo (chamadas janelas de análise), aplicar a Transformada de Fourier em cada uma delas e, em seguida, empilhar os espectros gerados em sequência.
O resultado é uma matriz bidimensional onde:
- O eixo horizontal representa o tempo (posição da janela),
- O eixo vertical representa as frequências,
- As cores (ou intensidades) representam a amplitude ou energia associada a cada frequência naquele instante.
Matematicamente, a STFT é definida como: \[X(t, f) = \int_{-\infty}^{\infty} x(\tau) w(\tau – t) e^{-j2\pi f \tau} d\tau\]
onde:
- \(x(\tau)\) é o sinal original,
- \(w(\tau – t)\) é a janela centrada no tempo t,
- f é a frequência de interesse.
Aplicação no projeto
No projeto de análise da saúde de transformadores, os sinais acústicos captados pelos sensores são primeiro convertidos em espectrogramas. Esses espectrogramas são tratados como imagens, o que torna possível o uso de CNNs para detectar padrões específicos, como assinaturas de falhas, arcos elétricos, ou vibrações anormais. Essa abordagem é especialmente vantajosa, pois facilita a generalização do modelo para novos tipos de anomalias e diferentes equipamentos.
Além disso, o espectrograma permite destacar componentes harmônicas, ruídos de fundo, variações sazonais ou transitórias — todos elementos difíceis de isolar em análises puramente temporais ou espectrais.
Comparações entre CNNs e Outras Arquiteturas de Redes Neurais
Embora as Redes Neurais Convolucionais (CNNs) sejam extremamente eficazes na análise de dados com estrutura espacial ou temporal, elas não são a única opção. Outras arquiteturas, como Redes Neurais Densas (MLPs), Redes Neurais Recorrentes (RNNs), LSTM (Long Short-Term Memory) e, mais recentemente, Transformers, também são utilizadas para tarefas envolvendo séries temporais, sinais e classificação de padrões. Cada uma possui vantagens e limitações específicas, que merecem ser exploradas no contexto da análise de ruídos por magnetostricção.
Redes Neurais Densas (MLPs)
As redes densas ou Multilayer Perceptrons conectam cada neurônio de uma camada à totalidade da camada anterior. Elas funcionam bem para dados tabulares ou vetores fixos, mas não conseguem explorar relações locais em sinais contínuos. Por exemplo, ao analisar um espectrograma, uma MLP trataria cada ponto como independente, ignorando a estrutura temporal e espectral do dado. Isso leva à perda de contexto e aumento exponencial do número de parâmetros.
Redes Recorrentes (RNNs) e LSTM
As redes recorrentes, como as RNNs e suas variantes LSTM, foram projetadas para lidar com sequências temporais. Elas mantêm uma espécie de “memória” interna que permite capturar dependências ao longo do tempo. Embora sejam boas para tarefas como previsão de séries temporais ou transcrição de áudio, apresentam limitações para sinais muito longos ou com variações espaciais complexas, como os espectrogramas gerados no projeto. Além disso, seu treinamento é mais demorado e sensível a problemas como explosão ou desaparecimento do gradiente.
Transformers
Arquiteturas baseadas em Transformers surgiram como alternativa às RNNs, utilizando mecanismos de atenção para capturar relações de longo alcance em dados sequenciais. Embora extremamente eficazes em NLP (Processamento de Linguagem Natural), sua aplicação em sinais acústicos ainda está em fase de experimentação e exige grande poder computacional. Em sistemas embarcados, seu uso é limitado devido ao alto custo de inferência.
Vantagens das CNNs no projeto
Em contrapartida, as CNNs se mostram altamente adequadas para a tarefa de classificar espectrogramas de ruídos de transformadores. Elas exigem menos recursos computacionais, são mais fáceis de treinar, e capturam automaticamente padrões locais (por exemplo, harmônicos ou transientes). Essa capacidade de extração de features espaciais torna as CNNs ideais para transformar um problema de análise de sinal em um problema de visão computacional — um campo amplamente dominado por essa arquitetura.
No projeto “Análise da Saúde de Transformadores com Base em Ruídos de Magnetostricção”, a CNN supera as demais abordagens pela combinação de desempenho, velocidade de inferência e facilidade de visualização dos resultados — fatores essenciais para sua aplicação em tempo real e em ambientes industriais.
Transformers como Alternativa às CNNs na Análise de Sinais
Os Transformers representam uma arquitetura de rede neural revolucionária originalmente concebida para o processamento de linguagem natural (NLP), mas que rapidamente se estendeu para áreas como visão computacional, áudio e análise de séries temporais. Seu principal diferencial reside no mecanismo de atenção — mais especificamente, a atenção auto-regressiva (self-attention), que permite à rede aprender relações complexas e de longo alcance dentro de uma sequência de dados.
Como funcionam os Transformers?
Diferentemente das CNNs, que processam dados de forma local (janela por janela, filtro por filtro), os Transformers consideram simultaneamente todas as partes da entrada. Isso significa que, ao analisar um espectrograma ou uma série temporal, um Transformer pode, teoricamente, correlacionar eventos distantes no tempo ou no espaço, o que é altamente vantajoso para padrões dispersos — como falhas intermitentes ou ressonâncias harmônicas sutis nos sinais de magnetostricção.
O componente chave é o bloco de atenção: \[\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\]
onde Q (queries), K (keys) e V (values) são derivados da entrada. A saída pondera as diferentes partes do sinal com base na relevância mútua entre elas.
Vantagens no projeto
- Capacidade de capturar relações de longo alcance entre trechos do sinal, o que pode ser útil para detectar padrões que se repetem de forma espaçada.
- Modelagem temporal mais precisa que CNNs puras, especialmente em séries temporais não estacionárias.
- Flexibilidade multimodal — Transformers podem ser adaptados para analisar simultaneamente espectrogramas, dados de sensores e até metadados (como horário ou temperatura).
Desvantagens no projeto
- Alta demanda computacional: Transformers requerem significativamente mais poder de processamento, tanto para treinamento quanto para inferência. Isso ocorre porque o mecanismo de atenção quadrático em relação ao número de entradas exige mais memória e ciclos de CPU/GPU.
- Treinamento mais sensível a overfitting, exigindo bases de dados maiores e técnicas mais avançadas de regularização.
- Inferência mais lenta, o que compromete a aplicação embarcada em dispositivos como Raspberry Pi ou microcontroladores com TensorFlow Lite.
Comparativo prático com CNN
Característica | CNN | Transformer |
---|---|---|
Tipo de dependência | Local (com filtros) | Global (com atenção) |
Velocidade de inferência | Alta (tempo linear) | Mais lenta (tempo quadrático) |
Requisitos de RAM | Moderado | Elevado |
Necessita GPU? | Não obrigatoriamente | Fortemente recomendado |
Uso em embarcados | Amplo (compatível com TFLite, uTensor) | Limitado (não suportado diretamente) |
Bibliotecas recomendadas | TensorFlow , Keras , TFLite | PyTorch , Transformers (HuggingFace) |
Facilidade de treinamento | Alta | Média a baixa (depende do modelo) |
Tamanho típico do modelo | Pequeno a médio | Médio a grande |
Impacto no projeto
No simulador de diagnóstico por magnetostricção disponível em rapporttecnologia/simulador_magnetostriccao, o uso de CNNs permite a execução do modelo em tempo real em sistemas com baixo consumo energético, como Raspberry Pi, Jetson Nano ou até mesmo microcontroladores avançados com suporte a inferência neural (ex.: STM32N6 com acelerador ST-NN).
Já os Transformers, embora promissores, ainda são mais adequados para execução em estações de trabalho com GPU (ex.: Nvidia RTX, Google Colab) ou servidores em nuvem, o que limita sua aplicação em cenários de campo onde recursos são restritos. Sua adoção pode ser interessante em etapas offline do projeto, como na análise posterior de grandes volumes de dados coletados, ou em um sistema híbrido onde a CNN atua embarcada e o Transformer opera em segundo plano para casos complexos.
Preparação do Sinal para Análise com CNNs
A eficácia de uma Rede Neural Convolucional depende, em grande parte, da qualidade da entrada fornecida. No caso da análise de ruídos de magnetostricção captados por sensores acústicos, é essencial transformar esses sinais brutos em representações que preservem as características relevantes para a detecção de falhas. Este processo envolve diversas etapas de pré-processamento e conversão, até que os dados estejam prontos para serem utilizados no treinamento ou inferência com CNNs.
1. Aquisição do Sinal
O primeiro passo é a aquisição dos dados acústicos com amostragem adequada. No projeto, utilizam-se microfones piezoelétricos ou MEMS de alta sensibilidade, conectados a microcontroladores com ADC (Conversor Analógico-Digital) de alta resolução. A frequência de amostragem recomendada deve ser ao menos o dobro da maior frequência esperada no sinal (teorema de Nyquist), o que normalmente significa 20 kHz ou mais para ruídos industriais.
Exemplo de código para captura com ADC + DMA no RP2040 ou STM32:
// pseudo-código simplificado
adc_config();
dma_config();
start_sampling();
2. Filtragem e Normalização
Uma vez captado, o sinal pode conter ruídos externos, como interferência elétrica ou vibração ambiental. A filtragem passa-baixa, passa-banda ou notch (anti-ruído) pode ser aplicada para isolar as frequências de interesse. Além disso, a normalização do sinal para o intervalo [0,1] ou [-1,1] garante que o treinamento da rede não seja afetado por amplitudes desbalanceadas.
# Exemplo de normalização em Python
signal = signal / np.max(np.abs(signal))
3. Segmentação Temporal
O sinal contínuo é então dividido em janelas (segmentos) fixos de tempo, geralmente entre 0,5s a 2s. Cada janela representará uma amostra independente para o treinamento da CNN. Isso facilita a criação de datasets balanceados, inclusive com múltiplos exemplos por gravação de campo.
# Segmentação do sinal
window_size = 2048
segments = [signal[i:i+window_size] for i in range(0, len(signal)-window_size, step)]
4. Conversão em Espectrogramas
Cada segmento é transformado em um espectrograma, utilizando a STFT (Short-Time Fourier Transform) ou a escala de Mel (no caso de sinais perceptivos). O espectrograma gerado é então salvo como uma imagem (em tons de cinza ou RGB), compatível com a entrada de CNNs.
import matplotlib.pyplot as plt
from scipy.signal import spectrogram
f, t, Sxx = spectrogram(segment, fs=fs)
plt.pcolormesh(t, f, 10 * np.log10(Sxx))
plt.axis('off')
plt.savefig("sample.png", bbox_inches='tight', pad_inches=0)
5. Criação dos Conjuntos de Dados
As imagens geradas são organizadas em diretórios por classes: por exemplo, normal/
, falha_leve/
, falha_grave/
. Essa estrutura é compatível com funções de carregamento automático de imagens em bibliotecas como TensorFlow, Keras e PyTorch, que assumem um modelo de classificação supervisada.
dataset/
├── normal/
│ ├── 001.png
│ ├── 002.png
├── falha_leve/
│ ├── 001.png
│ ├── 002.png
Treinando uma CNN para Diagnóstico de Transformadores
Após o preparo do sinal e conversão dos segmentos em espectrogramas, o próximo passo é treinar uma Rede Neural Convolucional (CNN) capaz de classificar automaticamente o estado dos transformadores com base nos padrões acústicos. Essa etapa envolve a definição da arquitetura da rede, o carregamento dos dados, o treinamento supervisionado e a validação dos resultados.
1. Bibliotecas e Ambiente
Para esse processo, as bibliotecas mais indicadas são:
- TensorFlow/Keras – para construção e treinamento do modelo;
- NumPy e Matplotlib – para manipulação de dados e visualização;
- scikit-learn – para métricas de avaliação.
O ambiente pode ser um Jupyter Notebook, Google Colab (com GPU ativada), ou uma estação de trabalho com Python ≥ 3.8.
bashCopiarEditarpip install tensorflow numpy matplotlib scikit-learn
2. Carregando os Dados de Imagem
Assumindo que os espectrogramas estejam organizados em diretórios por classe, é possível utilizarImageDataGenerator
do Keras para leitura automática e normalização das imagens.from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(validation_split=0.2, rescale=1./255)
train_generator = datagen.flow_from_directory(
'dataset/',
target_size=(128, 128),
batch_size=32,
class_mode='categorical',
subset='training'
)
val_generator = datagen.flow_from_directory(
'dataset/',
target_size=(128, 128),
batch_size=32,
class_mode='categorical',
subset='validation'
)
3. Definindo a Arquitetura da CNN
Aqui está um exemplo básico de CNN adequada para espectrogramas monocromáticos 128×128:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 3)),
MaxPooling2D(2, 2),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Flatten(),
Dense(128, activation='relu'),
Dropout(0.5),
Dense(train_generator.num_classes, activation='softmax')
])
4. Compilando e Treinando o Modelo
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
history = model.fit(
train_generator,
epochs=20,
validation_data=val_generator
)
Durante o treinamento, o modelo ajusta os filtros convolucionais para reconhecer padrões específicos de cada classe (ruído normal, falhas leves, falhas críticas), aprendendo diretamente dos dados sem necessidade de rotinas manuais de extração de features.
5. Avaliação e Interpretação dos Resultados
Após o treinamento, os resultados podem ser avaliados com base em métricas como acurácia, matriz de confusão e curva ROC. O modelo pode ser salvo em formato .h5
para inferência posterior, inclusive embarcada.
model.save("modelo_transformador.h5")
Implementando a Inferência em Sistemas Embarcados
Após o treinamento da Rede Neural Convolucional (CNN) em um ambiente de alto desempenho (como uma estação com GPU ou Google Colab), o próximo desafio é implementar o modelo em dispositivos embarcados que realizam a inferência localmente, como Raspberry Pi, Jetson Nano, ESP32 com coprocessador, ou MCUs STM32 com suporte a unidades neurais. Essa etapa exige a conversão e otimização do modelo, visando reduzir seu tamanho, consumo de energia e tempo de resposta.
1. Conversão para TensorFlow Lite
O TensorFlow Lite (TFLite) é uma versão compacta do TensorFlow voltada para inferência em dispositivos embarcados. Ele permite converter o modelo .h5
treinado em um formato binário leve (.tflite
), que pode ser carregado diretamente no dispositivo.
import tensorflow as tf
# Carregar modelo treinado
model = tf.keras.models.load_model('modelo_transformador.h5')
# Converter para TFLite
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
# Salvar em disco
with open('modelo_transformador.tflite', 'wb') as f:
f.write(tflite_model)
Opcionalmente, é possível aplicar técnicas de quantização (como float16
, int8
) para reduzir ainda mais o tamanho do modelo e acelerar sua execução:
pythonCopiarEditarconverter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model_quant = converter.convert()
2. Inferência em Raspberry Pi ou Jetson
Em dispositivos Linux embarcados como o Raspberry Pi 4, a inferência com TFLite pode ser feita com Python ou C++. Bibliotecas como tflite_runtime
ou o próprio TensorFlow permitem carregar o modelo e executar a classificação.
import numpy as np
import tensorflow as tf
from PIL import Image
interpreter = tf.lite.Interpreter(model_path="modelo_transformador.tflite")
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Pré-processar imagem
img = Image.open("espectrograma.png").resize((128, 128))
input_data = np.expand_dims(np.array(img, dtype=np.float32) / 255.0, axis=0)
# Inferência
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
output = interpreter.get_tensor(output_details[0]['index'])
3. Execução em Microcontroladores
Para MCUs como os da família STM32N6 (com acelerador ST-Neural ART) ou até RP2040 com interfaces externas, é possível usar o TensorFlow Lite for Microcontrollers. Nesse caso, o modelo é convertido para um array C/C++ com xxd
ou xxd -i
:
bashCopiarEditarxxd -i modelo_transformador.tflite > modelo.h
E o modelo é embutido no firmware:
#include "modelo.h"
// Código para inicializar o interpretador e executar a inferência
A biblioteca TFLite-Micro cuida da execução do modelo mesmo sem sistema operacional, embora com algumas limitações: apenas quantização int8, sem suporte a camadas complexas (ex: convoluções dilatadas).
4. Impactos e Otimizações
- Velocidade: A inferência com TFLite é rápida (tipicamente < 100ms) em Raspberry Pi, e até < 10ms com GPU/Coprocessador.
- Consumo: O uso local evita comunicação contínua com servidores, reduzindo energia e melhorando privacidade.
- Custo: Dispositivos baratos (< R$ 300) podem rodar o modelo com precisão próxima ao ambiente de treinamento.
- Escalabilidade: A abordagem permite replicar sensores autônomos em diversos pontos da rede elétrica.
Conclusão
A aplicação de Redes Neurais Convolucionais (CNNs) à análise de ruídos de magnetostricção representa um avanço significativo no diagnóstico não invasivo da saúde de transformadores. Ao transformar sinais acústicos em representações espectrais, e posteriormente aplicar técnicas de aprendizado profundo, torna-se possível detectar padrões sutis que indicam falhas mecânicas ou elétricas incipientes, com precisão superior às abordagens tradicionais.
Neste artigo, percorremos desde os fundamentos das CNNs até as suas aplicações práticas no projeto “Análise da Saúde de Transformadores com Base em Ruídos de Magnetostricção”. Discutimos em detalhes o processo de preparação do sinal, a construção do espectrograma, o treinamento supervisionado da rede, e sua posterior implementação em sistemas embarcados. Também comparamos, de forma crítica, as CNNs com outras arquiteturas como Transformers, destacando seus pontos fortes e limitações no contexto de execução em tempo real e em ambientes com recursos restritos.
A integração com o simulador disponível em rapporttecnologia/simulador_magnetostriccao permite que pesquisadores e engenheiros explorem e reproduzam os resultados obtidos, promovendo reprodutibilidade científica e abrindo espaço para otimizações contínuas.
Ao democratizar o uso de inteligência artificial em sistemas de monitoramento industriais, especialmente em dispositivos de baixo custo, este trabalho contribui não apenas para o avanço tecnológico, mas também para a sustentabilidade e confiabilidade da infraestrutura elétrica. Com a contínua evolução das arquiteturas de redes neurais, espera-se que soluções ainda mais eficientes e precisas estejam ao alcance de projetos similares nos próximos anos.