2025 年那个春夏,日子被两件毫不相干的事填满了。
第一件是竞赛小车。项目全称”目标射击巡航无人小车”,听起来唬人,拆开就是底盘、主控、视觉、射击四个模块。底盘是我从零焊的,四轮差速,悬挂用最简陋的弹簧。主控 Jetson Nano,视觉 YOLOv5,训练集是自己拍的五百多张靶标照片,射击机构是电磁阀带的气动发射器。
最崩溃的是赛前三天。视觉模块在赛场灯光下识别率掉到 40% 不到,我和队友连夜重新标数据、调参、做数据增强,天亮前拉到 85%。那晚茶水间的速溶咖啡被我一个人喝了半罐。
比赛当天车在赛道跑起来、在靶标前停下、命中,那一刻感觉没法形容。虽然只拿了二等奖,但那辆车从螺丝到代码都是我的指纹。
竞赛教会我的一件事后来一直记得:demo 只要在理想条件跑通一次,项目要在各种边缘情况下稳定工作。从那天起我对”鲁棒性”这个词有了全新敬畏。
第二件是暑假扎进实验室采脑电。
暑假的校园安静得不像话,实验室里只有空调压缩机和脑电放大器的滴答声。贴电极这事看着最没技术含量,坑最多——导电膏涂少了阻抗下不来,涂多了相邻电极短路。第一次贴完 16 个湿电极花了 40 分钟,被试都快睡着了。手上永远一股导电膏的咸味。
实验设计参考清华的 SSVEP Benchmark,40 个目标频率,8Hz 到 15.8Hz 间隔 0.2Hz,每个 trial 注视 4 秒。做完一轮一个半小时,中间得不停确认被试没有视觉疲劳。
数据回来才是真正的痛苦——人工标注。40 频率 × 6 重复 × 6 被试,命名规则稍微一乱就全乱了。我用 Python 写了个校验脚本交叉比对,发现三个被试的 trial 顺序乱了,还好发现得早。
最兴奋的是跑 FBCCA 那一刻。之前只在公开数据集上跑过,这次是自己的数据。第一个被试跑完,8 电极 4 秒窗口 78%——不高,但远超 1/40 的显著性水平。调优后——换枕叶 6 电极、加 ICA、微调滤波器组——稳定在 91%。
那晚我截了张混淆矩阵发朋友圈:“自己的脑电数据跑通了 FBCCA。” 朋友评论:“你是真的科幻起来了。”
其实那时脑子里已经有个念头在长:把这个算法嵌进实时系统,做成在线 SSVEP-BCI,让渐冻症患者靠注视闪烁按钮和外界沟通。项目还没名字,但方向已经在心里了。九月初它有了名字——声桥。
这一年在博客里零星记过这些事。翻回去看,竟有点不太相信都是同一个人干的。
