3、传感器数据采集基础
做AIoT项目,第一步就是跟传感器打交道。说白了,传感器就是嵌入式系统的眼睛和耳朵。你算法再牛,数据质量不行,一切都是白搭。我见过太多项目,花大把时间调模型,最后发现是传感器数据本身就有问题。
这一章,咱们就聊聊传感器数据采集的那些事儿。我会结合Reality AI工具,带你走一遍完整的流程。
3.1 采样率与分辨率:两个核心参数
先搞清楚两个最基础的概念:采样率和分辨率。很多新手容易搞混,其实它们完全是两码事。
采样率
采样率,就是传感器每秒采集多少个数据点。单位是Hz(赫兹)。比如100Hz,就是一秒采100个点。
采样率怎么选?有个著名的奈奎斯特定理:采样率至少要是信号最高频率的2倍。举个例子,人的步频大概在1-3Hz,那用10Hz采样就绰绰有余了。但如果是电机振动,频率可能到几百Hz,那采样率就得往上提。
分辨率
分辨率,指的是传感器能感知到的最小变化量。常见的有8位、10位、12位、16位。位数越高,能区分的等级就越多。
拿12位分辨率来说,它能将测量范围分成4096个等级。如果加速度计量程是±2g,那每个等级代表约0.001g的变化。分辨率越高,数据越精细。
| 分辨率 | 等级数 | 适用场景 |
|---|---|---|
| 8位 | 256 | 简单运动检测 |
| 10位 | 1024 | 姿态识别 |
| 12位 | 4096 | 振动分析 |
| 16位 | 65536 | 高精度测量 |
3.2 使用Reality AI内置工具采集加速度计数据
Reality AI有个很贴心的功能:内置的数据采集工具。你不用写一行代码,就能把传感器数据抓下来。
操作步骤其实很简单:
- 连接好你的开发板(比如STM32或NXP的板子)
- 在Reality AI中打开Data Acquisition模块
- 选择加速度计传感器,配置采样率和量程
- 点击开始采集,晃动板子或者做动作
- 采集完成后,数据会自动保存
我个人习惯是先做一次空采,就是板子静止不动,看看基线噪声有多大。这能帮你判断传感器本身的质量。
3.3 数据格式解析:CSV与BIN
采集完的数据,通常有两种格式:CSV和BIN。你得知道它们各自的特点。
CSV格式
CSV就是逗号分隔的文本文件。用Excel或者记事本就能打开。每一行是一个采样点,列分别是时间戳、X轴、Y轴、Z轴数据。
举个例子:
timestamp,ax,ay,az
0.000,0.12,-0.03,1.02
0.010,0.15,-0.01,1.01
0.020,0.11,-0.04,1.03
...
CSV的好处是直观,方便查看。但缺点也很明显:文件体积大,解析慢。如果你采集了几分钟的数据,CSV文件可能几十MB。
BIN格式
BIN是二进制文件,数据以原始字节形式存储。体积小,读写快,但肉眼看不懂。
BIN文件的结构一般是这样的:
文件头(包含采样率、量程等信息)
数据块1(时间戳 + X + Y + Z)
数据块2(时间戳 + X + Y + Z)
...
每个数据块的大小是固定的。比如时间戳用4字节浮点数,每个轴用2字节整数,那一个数据块就是10字节。
3.4 数据质量检查:缺失值与噪声判断
数据采完了,别急着训练模型。先做质量检查。这一步能帮你省下大量调试时间。
检查缺失值
缺失值就是数据中突然出现的空白或异常值。常见原因有:
- 传感器瞬间掉电或通信中断
- 缓冲区溢出,数据被覆盖
- 时钟不同步,时间戳跳跃
怎么检查?简单的方法就是看时间戳是否连续。如果两个时间戳之间的间隔突然变大,那中间肯定丢了数据。
我写了个小脚本,专门检查缺失值:
import pandas as pd
data = pd.read_csv('sensor_data.csv')
time_diff = data['timestamp'].diff()
missing = time_diff[time_diff > 0.011] # 假设采样间隔是0.01s
print(f"发现 {len(missing)} 个缺失点")
判断噪声水平
噪声是传感器自带的随机波动。完全没有噪声的传感器是不存在的。关键是要判断噪声是否在可接受范围内。
判断方法:
- 让传感器静止,采集一段数据
- 计算数据的标准差
- 标准差越小,噪声越低
举个例子,静止状态下加速度计的标准差如果在0.01g以内,说明噪声控制得不错。如果超过0.05g,那就要检查传感器供电是否稳定,或者有没有电磁干扰。
知识体系总览
下面这张图,把本章的核心知识点串起来了。你可以把它当作一个快速参考。
数据采集是整个AI项目的地基。地基不稳,上面盖的房子再漂亮也没用。我建议你每次采集完数据,都花几分钟做一次质量检查。养成这个习惯,后面会省很多事。
好了,这一章就到这里。记住:采样率决定你能看到什么,分辨率决定你能看多清楚,数据格式决定你怎么存,质量检查决定数据能不能用。这四个点,一个都不能少。
公众号:蓝海资料掘金营,微信deep3321