Project

ICU-EEG Pattern Detection

Read the publication

The goal of this project was to assess the performance of a lightweight CNN for the detection of abnormal EEG patterns in critical care settings.

The Details

I will not go into many details regarding the training database and all the preprocessing steps, BUT a bunch of things are worth mentioning:

  1. The CNN was trained on 19 channelsThis can be tecnically reduced... but will require a retraining. It's on a to do list so that it can be easily applied to the standard 10-20 EEG montage used in ICUs.
  2. Six different patterns were included in the training (LPD, GPD, GRDA, LRDA, seizures and other) and the network was trained to output a probability for 50s windowsa simple sliding window can be used to increase temporal resolution... given that you know you will induce quite some autocorrelation ofc of EEG.
  3. The code is ready on GitHub but for hospital reasons I can only share it after a email request.
  4. Chunks of ideas were developed from the work of Chris Deotte.
CNN architecture diagram
Pipeline used for training the CNN generating the 5 ensemble models. Each of the 5 CNN was a EffNet model B0 (the lightest of the family)

The above figure shows that the input images were a concatenation of the spectrograms of the chains including transverse and double banana montagesto see some details look here. Then a simple normalization was addedd and finally all was plugged in the CNN. The performance obtained was pretty decent cosidering the numbers of paramters of the EffNetB0. we got AUROC score of 93.52 (94.18, 92.86)% for SZ, 91.48 (92.19, 90.77)% for LPD, 93.67 (94.31, 93.02)% for GPD, 87.00 (87.93, 86.06)% for LRDA, 89.15 (89.89, 88.42)% for GRDA, and 88.16 (88.83, 87.49)% for other. The score for the AUPR was instead of 83.62 (84.96, 82.28)% for SZ, 73.94 (75.79, 72.10)% for LPD, 72.50 (74.59, 70.41)% for GPD, 29.36 (31.26, 27.46)% for LRDA, 52.58 (55.02, 50.15)% for GRDA, and 78.71 (79.92, 77.50)% for other. BUT... what was remarcably good was the consistency in terms of temporal resolution. As mentioned before you can add a sliding window of choice while keeping a fixed windows of 50s for the prediction and the CNN was performing quite well at detecting onsets of seizures even if the trining was basically done on only static frames. I think the main reason for this is the fact the DB is quite good in terms of SNR, especially for the instances that have at least 20 annotations. Anyway, this is a very good news for the future of this kind of models... especially if one is interested in low-power/low-resource devices.

Seizure EEG pattern animation
The CNN detection of a seizure. Compared to a stable pattern like the LPD we can see that the probability starts peaking only after seizure onset. -little side note- just before the seizure onset you can see a small bump of LPD detection... this is nicely consistent with a cortical buildup before the network spreading of the seizure
Status — Published