Abstract: Humans approximately spend a third of their life sleeping, which makes monitoring sleep an integral part of well-being. In this paper, a 34-layer deep residual ConvNet architecture for end-to-end sleep staging is proposed. The network takes raw single channel electroencephalogram (Fpz-Cz) signal as input and yields hypnogram annotations for each 30s segments as output. Experiments are carried out for two different scoring standards (5 and 6 stage classification) on the expanded PhysioNet Sleep-EDF dataset, which contains multi-source data from hospital and household polysomnography setups. The performance of the proposed network is compared with that of the state-of-the-art algorithms in patient independent validation tasks. The experimental results demonstrate the superiority of the proposed network compared to the best existing method, providing a relative improvement in epoch-wise average accuracy of 6.8% and 6.3% on the household data and multi-source data, respectively.
For Sleep Stage benchmarking check out the benchmark folder containing filenames for the SC-task & RS-task, detailed in the paper.
Download the Physionet Sleep-EDF Expanded dataset by running the bash script on linux inside the ASSC root:
bash bulkdownload.sh
Download and create .csv files containing EEG Data and hypnogram annotations, place them in the data sub-folder. The .csv files should have rows = number of 30s data epochs. Columns should have a size of 3003 and arranged as:
data points (columns 0-2999) | hypnogram annotation | epoch ID | recording ID
recording ID: Recording filename, i.e SC4192E0-PSG
or ST7011J0-PSG
epoch ID: The index of an epoch within a recording file
Use the train.py file to train the proposed Resnet-34 Architecture for end-to-end sleep staging. Specify the .csv channel file to use from the data and the number of sleep stages to use (5 or 6).
python train.py FpzCz.csv --num_class 5 --epochs 200 --batch_size 64