Skip to content

DEMON-coding/EEG-Motion-Classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EEG-Motion-Classifier

EEG Facial Action Classifier | 1D-CNN for blink/frown/rest detection from raw signals

本项目是一个基于一维卷积神经网络(1D-CNN)的脑电信号动作分类器,支持识别三种基本动作:blink(眨眼)frown(皱眉)rest(静息状态)。项目完成了对脑电信号的预处理、特征提取与动作分类。


一、数据说明

项目使用商用EEG采集设备采集原始脑电信号,原始数据存放于 raw_data/ 文件夹中每个 .txt 文件对应一个动作样本。原始数据以时间戳 (Time) 和原始值 (Raw) 两列保存,数据采样率约为 500Hz | Raw 值为 ADC 采样值,范围 -2048 ~ 2048


二、数据预处理

  • 脚本路径:GetDataSet.py
  • 128 个连续数据点作为一个时间窗口,约覆盖 0.25 秒(窗口长度与采样率有关)
  • 根据文件名提取标签,转换为结构化数据
  • 最终构建为标准训练集并保存为 data/eeg_data.csv,用于模型训练

三、模型结构

模型定义在 Model.py,为一个轻量级的一维卷积神经网络,结构如下:

  • 输入层:接收 [batch_size, 1, 128] 的 EEG 序列片段
  • 卷积层 + ReLU 激活 + 最大池化:提取时间序列中的局部特征
  • 展平层(Flatten):将卷积提取的特征展平成一维向量
  • 全连接层:进一步融合特征并输出分类向量
  • 输出层(Softmax):生成三类动作的概率分布,用于预测

四、训练设置

  • 脚本路径:TrainData.py
  • 数据划分比例:训练集 : 测试集 = 4 : 1
  • 数据加载:使用 DataLoader 加载 Tensor 格式数据
  • 损失函数:交叉熵损失 (CrossEntropyLoss)
  • 优化器:Adam
  • 可视化:训练过程中记录并保存损失变化曲线图
  • 输出目录:训练完成的模型文件与可视化图像保存在 models_dict/ 文件夹中

五、后续开发

最新修改发布在 dev/ 文件夹中,若使用稳定版本请忽略此文件夹。


如需运行、测试或修改此项目,请根据自身设备与数据采集方式调整对应参数和路径。

许可协议

本项目基于 MIT License 开源。你可以自由地使用、修改、分发本项目代码,但请保留原始版权声明。

About

EEG Facial Action Classifier | 1D-CNN for blink/frown detection from raw signals

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages