4、传感器数据与特征工程:常见传感器类型、数据预处理与特征提取
在Edge Impulse平台上训练异常检测模型,核心挑战并非模型结构本身,而是如何将原始传感器信号转化为高质量、可学习的特征表示。传感器数据是物理世界的数字化投影,其质量直接决定了模型性能的上限。本章将系统梳理常见传感器类型及其数据特性,深入讲解数据预处理的关键步骤(去噪、归一化、分段),并重点剖析时域与频域特征提取的方法论与工程实践。理解这些内容,是后续阈值设置与模型调优的基石。
4.1 常见传感器类型与数据特性
异常检测任务中,传感器选型决定了可观测的物理量维度。不同传感器具有不同的采样率、量程、噪声特性和失效模式,理解这些差异是设计特征工程方案的前提。
4.1.1 核心传感器类型
| 传感器类型 | 测量物理量 | 典型采样率 | 数据特性 | 异常检测应用场景 |
|---|---|---|---|---|
| 加速度计 (ACC) | 线性加速度 (m/s²) | 50-1000 Hz | 包含重力分量 (静态偏置),高频振动敏感 | 设备振动异常、碰撞检测、跌落识别 |
| 陀螺仪 (GYRO) | 角速度 (rad/s) | 50-1000 Hz | 零偏漂移,温度敏感,积分后产生角度 | 旋转异常、姿态突变、轴承磨损 |
| 磁力计 (MAG) | 磁场强度 (μT) | 10-100 Hz | 易受环境电磁干扰,需要校准 | 电机磁场异常、金属异物检测 |
| 温度传感器 | 温度 (°C) | 0.5-10 Hz | 变化缓慢,惯性大,噪声小 | 过热预警、散热失效、环境异常 |
| 压力传感器 | 压力 (Pa/bar) | 10-100 Hz | 基线漂移,受温度补偿影响 | 液压系统泄漏、气密性检测 |
| 电流/电压传感器 | 电流 (A) / 电压 (V) | 1-10 kHz | 高频谐波丰富,瞬态冲击明显 | 电机堵转、电源异常、电弧故障 |
在Edge Impulse中,传感器数据通常以时间序列形式输入。每个采样点包含一个时间戳和多个轴的数据值。例如,一个6轴IMU(惯性测量单元)的数据格式为:[timestamp, acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z]。理解数据格式是后续处理的基础。
4.1.2 传感器数据的关键属性
- 采样率与奈奎斯特频率:采样率必须大于信号最高频率的2倍,否则会产生混叠。例如,若设备振动频率最高为200Hz,采样率至少需要400Hz。Edge Impulse支持自定义采样率,但需注意内存和功耗限制。
- 量程与分辨率:量程决定了可测量的最大物理量,分辨率决定了最小可检测的变化。加速度计量程通常为±2g到±16g,选择过大的量程会降低小信号的灵敏度。
- 噪声基底:所有传感器都有本底噪声。加速度计的噪声密度通常在100-300 μg/√Hz。噪声过大会掩盖微弱的异常信号,因此去噪是必要的预处理步骤。
- 轴间耦合与校准:IMU的轴间可能存在微小耦合,且受温度影响产生零偏漂移。在部署前应进行静态校准,记录零偏值并在预处理中扣除。
4.2 数据预处理:从原始信号到可用样本
原始传感器数据不能直接输入模型,必须经过一系列预处理步骤,以消除噪声、统一尺度、并切分成适合模型输入的样本窗口。Edge Impulse的预处理流程通常包括去噪、归一化和分段三个核心环节。
4.2.1 去噪(滤波)
去噪的目标是保留与异常相关的信号成分,抑制无关的噪声和干扰。常用的方法包括:
- 低通滤波:去除高频噪声。适用于振动信号,截止频率通常设为信号最高频率的1.5-2倍。Edge Impulse内置了Butterworth低通滤波器,可配置阶数和截止频率。
- 带通滤波:保留特定频带内的信号。例如,轴承故障特征频率通常在1kHz-5kHz,使用带通滤波可以突出该频段。
- 中值滤波:去除脉冲噪声(尖峰)。对于传感器偶发的毛刺信号,中值滤波比均值滤波更有效,因为它不会模糊边缘。
- 去趋势:去除信号中的缓慢漂移(如温度引起的零偏漂移)。可以使用高通滤波或减去滑动平均。
// Edge Impulse 中配置滤波器的示例(伪代码)
// 在 DSP 模块中设置
dsp_config {
filter_type: "lowpass"
cutoff_frequency: 100 // Hz
order: 4
// 或 filter_type: "bandpass", low_freq: 50, high_freq: 500
}
4.2.2 归一化与标准化
不同传感器、不同轴的数据具有不同的量纲和数值范围。例如,加速度计数值在±16g之间,而温度可能在20-80°C之间。如果不进行归一化,模型会偏向数值范围大的特征。常用的方法有:
- Min-Max归一化:将数据缩放到[0,1]区间。公式:
x' = (x - min) / (max - min)。适用于数据分布有明确上下界的情况。 - Z-score标准化:将数据转换为均值为0、标准差为1的分布。公式:
x' = (x - μ) / σ。适用于数据分布近似高斯的情况,对异常值不敏感。 - 鲁棒缩放:使用中位数和四分位距(IQR)进行缩放,对异常值具有更好的鲁棒性。
在Edge Impulse中,归一化参数(min/max或μ/σ)必须从训练集计算,并保存用于后续的验证集和测试集。如果直接对整个数据集计算归一化参数,会导致数据泄漏,使模型评估结果过于乐观。
- 将原始数据划分为训练集、验证集、测试集(例如70%/15%/15%)。
- 仅使用训练集计算归一化参数(min/max或μ/σ)。
- 将相同的参数应用于验证集和测试集。
- 在Edge Impulse中,可以在“Create Impulse”页面设置“Calibration”参数,系统会自动处理。
4.2.3 分段(窗口化)
异常检测模型通常处理固定长度的数据窗口,而不是无限长的流数据。分段将连续时间序列切分为多个样本窗口,每个窗口独立输入模型。窗口设计直接影响模型的时间分辨率和计算开销。
- 窗口长度:窗口应足够长以包含完整的异常事件,但又不能太长导致特征被平均化。对于振动信号,窗口长度通常为2-5秒;对于温度信号,可能需要10-60秒。Edge Impulse默认窗口长度为2秒。
- 重叠率:相邻窗口之间可以重叠,以增加样本数量并平滑边界效应。常见的重叠率为50%-75%。重叠率越高,样本越多,但计算量也越大。
- 滑动步长:步长 = 窗口长度 × (1 - 重叠率)。例如,窗口长度2秒,重叠率50%,则步长为1秒。
| 窗口长度 | 重叠率 | 样本数量(1分钟数据) | 适用场景 |
|---|---|---|---|
| 1s | 50% | 119 | 快速瞬态异常(碰撞、冲击) |
| 2s | 50% | 59 | 振动异常、旋转机械 |
| 5s | 75% | 45 | 缓慢变化信号(温度、压力) |
| 10s | 0% | 6 | 长期趋势监测 |
4.3 时域与频域特征提取
特征提取是将预处理后的窗口数据转换为一组数值特征,这些特征应能有效区分正常与异常状态。Edge Impulse提供了丰富的DSP模块,可以自动提取时域和频域特征。
4.3.1 时域特征
时域特征直接从原始信号的时间序列中计算,计算简单、物理意义明确。常用的时域特征包括:
- 统计特征:均值、方差、标准差、峰峰值、均方根(RMS)。RMS对振动信号的幅值变化敏感,是轴承故障检测的经典指标。
- 波形特征:峰值因子(峰值/RMS)、波形因子(RMS/平均绝对值)、脉冲因子(峰值/平均绝对值)。这些特征对冲击性异常敏感。
- 过零率:信号穿越零点的次数,反映信号的频率变化。对于振动信号,过零率增加可能意味着高频成分增多。
- 自相关函数:描述信号与其自身延迟版本的相关性,可用于检测周期性异常。
4.3.2 频域特征
频域特征通过傅里叶变换(FFT)将信号从时域转换到频域,揭示信号的频率成分。频域特征对周期性异常(如轴承磨损、齿轮故障)特别有效。
- 频谱质心:频谱的加权平均频率,反映信号的主要频率位置。
- 频谱带宽:频谱的扩展程度,带宽增加可能意味着能量分散到更多频率。
- 谱熵:频谱的均匀程度。正常信号的谱熵较低(能量集中在少数频率),异常信号的谱熵可能升高。
- 特定频带能量:计算特定频带(如1kHz-2kHz)内的能量占比。例如,轴承故障特征频率(BPFO、BPFI)处的能量增加是故障的明确信号。
- 峰值频率:频谱中幅值最大的频率。峰值频率的偏移可能意味着转速变化或结构共振。
// Edge Impulse 中特征提取的配置示例
// 在 DSP 模块中,选择 "Spectral Features"
dsp_config {
type: "spectral"
fft_length: 256
window_function: "hann"
features: ["rms", "spectral_centroid", "spectral_entropy", "peak_frequency"]
}
4.3.3 特征选择与降维
提取的特征数量可能非常多(例如,每个轴提取10个特征,6轴IMU就有60个特征)。过多的特征会导致过拟合和计算开销增加。Edge Impulse提供了特征重要性评估工具,可以自动筛选出对分类最有贡献的特征。
- 特征重要性排序:基于随机森林或梯度提升树,计算每个特征对分类准确率的贡献度。
- 主成分分析(PCA):将高维特征投影到低维空间,保留主要方差。Edge Impulse内置了PCA模块,可设置保留的方差比例(如95%)。
- 领域知识约束:根据物理意义选择特征。例如,对于旋转机械,优先选择与转速相关的频域特征(如1倍频、2倍频能量)。
4.4 案例拆解:工业风扇轴承异常检测
下面通过一个完整的案例,展示传感器数据与特征工程在Edge Impulse中的实际应用。
4.4.1 背景与目标
某工厂的冷却风扇需要24小时连续运行。轴承磨损是主要的故障模式,早期表现为微弱的振动异常。目标是在轴承完全失效前提前48小时发出预警。约束条件:使用现有的低成本IMU传感器(采样率400Hz,6轴),边缘设备计算资源有限(Cortex-M4处理器,内存256KB)。
4.4.2 数据采集与预处理
- 数据采集:在风扇轴承座上安装IMU,以400Hz采样率连续采集加速度计和陀螺仪数据。正常运行数据采集7天,模拟故障数据通过人为注入不平衡质量块(模拟磨损)采集2天。
- 去噪:使用4阶Butterworth低通滤波器,截止频率100Hz。因为轴承故障特征频率通常在50-200Hz之间,100Hz截止频率可以保留主要故障成分,同时滤除高频噪声。
- 归一化:使用Z-score标准化,参数从训练集计算。加速度计和陀螺仪分别独立标准化。
- 分段:窗口长度2秒,重叠率50%。每2秒生成一个样本,1分钟数据产生59个样本。训练集包含约5000个正常样本和1000个异常样本。
4.4.3 特征提取与模型训练
在Edge Impulse中,使用“Spectral Features”DSP模块,对每个轴提取以下特征:RMS、频谱质心、谱熵、峰值频率、特定频带能量(50-100Hz、100-150Hz、150-200Hz)。每个轴提取8个特征,6轴共48个特征。
使用K-means聚类(k=2)作为异常检测模型。训练后,模型在验证集上的F1分数为0.92。特征重要性分析显示,加速度计Z轴(垂直于轴承座)的RMS和100-150Hz频带能量是最重要的特征。
4.4.4 结果与复盘
| 指标 | 训练集 | 验证集 | 测试集(模拟故障) |
|---|---|---|---|
| 准确率 | 98.2% | 95.1% | 93.7% |
| 召回率(异常检出) | 97.5% | 94.0% | 91.2% |
| 误报率 | 1.1% | 2.3% | 3.5% |
| 推理时间(Cortex-M4) | - | - | 18ms |
复盘经验:
- 窗口长度的影响:尝试过1秒窗口,召回率下降至85%,因为1秒窗口无法捕捉完整的振动周期(风扇转速1200rpm,周期0.05秒,但轴承故障特征频率需要多个周期才能稳定)。
- 归一化的关键性:如果对整个数据集(包括测试集)计算归一化参数,验证集F1分数会虚高至0.97,但实际部署时性能下降至0.88。使用训练集计算参数后,实际性能与验证集一致。
- 特征冗余:陀螺仪的特征贡献度较低(重要性排名后10位),但保留它们并未显著增加计算开销。在资源受限时,可以移除陀螺仪特征,推理时间从18ms降至14ms。